diff options
author | ivan <ivan> | 2002-07-06 07:30:38 +0000 |
---|---|---|
committer | ivan <ivan> | 2002-07-06 07:30:38 +0000 |
commit | 5c5006bb59066f59270cdb5b916c1f3d857e5782 (patch) | |
tree | 944840fa6f411741739c9d9b74a72640009842a4 /FS/FS/part_export/www_shellcommands.pm | |
parent | 1302ec4f2c77dbfd53d9e1c92decf40bfe9d2806 (diff) |
move svc_www ssh jobs to the job queue & exports, and make them configurable
Diffstat (limited to 'FS/FS/part_export/www_shellcommands.pm')
-rw-r--r-- | FS/FS/part_export/www_shellcommands.pm | 68 |
1 files changed, 55 insertions, 13 deletions
diff --git a/FS/FS/part_export/www_shellcommands.pm b/FS/FS/part_export/www_shellcommands.pm index e95939b..84c1627 100644 --- a/FS/FS/part_export/www_shellcommands.pm +++ b/FS/FS/part_export/www_shellcommands.pm @@ -1,5 +1,6 @@ -package FS::part_export::shellcommands; +package FS::part_export::www_shellcommands; +use strict; use vars qw(@ISA); use FS::part_export; @@ -18,31 +19,72 @@ sub _export_delete { } sub _export_command { - my ( $self, $action, $svc_acct) = (shift, shift, shift); + my ( $self, $action, $svc_www) = (shift, shift, shift); my $command = $self->option($action); - my $stdin = $self->option($action."_stdin"); - no strict 'refs'; - ${$_} = $svc_acct->getfield($_) foreach $svc_acct->fields; - $self->shellcommands_queue( $svc_acct->svcnum, + + #set variable for the command + { + no strict 'refs'; + ${$_} = $svc_www->getfield($_) foreach $svc_www->fields; + } + my $domain_record = $svc_www->domain_record; # or die ? + my $zone = $domain_record->reczone; # or die ? + unless ( $zone =~ /\.$/ ) { + my $svc_domain = $domain_record->svc_domain; # or die ? + $zone .= '.'. $svc_domain->domain; + } + + my $svc_acct = $svc_www->svc_acct; # or die ? + my $username = $svc_acct->username; + my $homedir = $svc_acct->dir; # or die ? + + #done setting variables for the command + + $self->shellcommands_queue( $svc_www->svcnum, user => $self->option('user')||'root', host => $self->machine, command => eval(qq("$command")), - stdin_string => eval(qq("$stdin")), ); } sub _export_replace { my($self, $new, $old ) = (shift, shift, shift); my $command = $self->option('usermod'); - my $stdin = $self->option('usermod_stdin'); - no strict 'refs'; - ${"old_$_"} = $old->getfield($_) foreach $old->fields; - ${"new_$_"} = $new->getfield($_) foreach $new->fields; + + #set variable for the command + { + no strict 'refs'; + ${"old_$_"} = $old->getfield($_) foreach $old->fields; + ${"new_$_"} = $new->getfield($_) foreach $new->fields; + } + my $old_domain_record = $old->domain_record; # or die ? + my $old_zone = $old_domain_record->reczone; # or die ? + unless ( $old_zone =~ /\.$/ ) { + my $old_svc_domain = $old_domain_record->svc_domain; # or die ? + $old_zone .= '.'. $old_svc_domain->domain; + } + + my $old_svc_acct = $old->svc_acct; # or die ? + my $old_username = $old_svc_acct->username; + my $old_homedir = $old_svc_acct->dir; # or die ? + + my $new_domain_record = $new->domain_record; # or die ? + my $new_zone = $new_domain_record->reczone; # or die ? + unless ( $new_zone =~ /\.$/ ) { + my $new_svc_domain = $new_domain_record->svc_domain; # or die ? + $new_zone .= '.'. $new_svc_domain->domain; + } + + my $new_svc_acct = $new->svc_acct; # or die ? + my $new_username = $new_svc_acct->username; + my $new_homedir = $new_svc_acct->dir; # or die ? + + #done setting variables for the command + $self->shellcommands_queue( $new->svcnum, user => $self->option('user')||'root', host => $self->machine, command => eval(qq("$command")), - stdin_string => eval(qq("$stdin")), ); } @@ -51,7 +93,7 @@ sub shellcommands_queue { my( $self, $svcnum ) = (shift, shift); my $queue = new FS::queue { 'svcnum' => $svcnum, - 'job' => "FS::part_export::shellcommands::ssh_cmd", + 'job' => "FS::part_export::www_shellcommands::ssh_cmd", }; $queue->insert( @_ ); } |