summaryrefslogtreecommitdiff
path: root/FS/FS/part_export/broadband_shellcommands.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-08-19 15:49:12 -0700
committerIvan Kohler <ivan@freeside.biz>2017-08-19 15:49:12 -0700
commitea5ea999cbd41dba4801091a3b096551e69d813d (patch)
treee8d3c6aa27e16d1cee2c78a64e388a1c9b1fc164 /FS/FS/part_export/broadband_shellcommands.pm
parent263ace9f4ee5762e3897bbb747ab162e6b7d88f7 (diff)
expect-style ssh interaction, for interation w/cisco and other networking eqipment, RT#77180
Diffstat (limited to 'FS/FS/part_export/broadband_shellcommands.pm')
-rw-r--r--FS/FS/part_export/broadband_shellcommands.pm41
1 files changed, 26 insertions, 15 deletions
diff --git a/FS/FS/part_export/broadband_shellcommands.pm b/FS/FS/part_export/broadband_shellcommands.pm
index 44280a2..d3e495c 100644
--- a/FS/FS/part_export/broadband_shellcommands.pm
+++ b/FS/FS/part_export/broadband_shellcommands.pm
@@ -70,7 +70,18 @@ sub _export_command {
my $command = $self->option($action);
return '' if $command =~ /^\s*$/;
- #set variables for the command
+ my $command_string = $self->_export_subvars( $svc_broadband, $command );
+
+ $self->shellcommands_queue( $svc_broadband->svcnum,
+ user => $self->option('user')||'root',
+ host => $self->machine,
+ command => $command_string,
+ );
+}
+
+sub _export_subvars {
+ my( $self, $svc_broadband, $command ) = @_;
+
no strict 'vars';
{
no strict 'refs';
@@ -85,20 +96,25 @@ sub _export_command {
$locationnum = $cust_pkg ? $cust_pkg->locationnum : '';
$custnum = $cust_pkg ? $cust_pkg->custnum : '';
- #done setting variables for the command
+ eval(qq("$command"));
+}
- $self->shellcommands_queue( $svc_broadband->svcnum,
+sub _export_replace {
+ my($self, $new, $old ) = (shift, shift, shift);
+ my $command = $self->option('replace');
+
+ my $command_string = $self->_export_subvars_replace( $new, $old, $command );
+
+ $self->shellcommands_queue( $new->svcnum,
user => $self->option('user')||'root',
host => $self->machine,
- command => eval(qq("$command")),
+ command => $command_string,
);
}
-sub _export_replace {
- my($self, $new, $old ) = (shift, shift, shift);
- my $command = $self->option('replace');
+sub _export_subvars_replace {
+ my( $self, $new, $old, $command ) = @_;
- #set variable for the command
no strict 'vars';
{
no strict 'refs';
@@ -120,15 +136,10 @@ sub _export_replace {
$new_locationnum = $new_cust_pkg ? $new_cust_pkg->locationnum : '';
$new_custnum = $new_cust_pkg ? $new_cust_pkg->custnum : '';
- #done setting variables for the command
-
- $self->shellcommands_queue( $new->svcnum,
- user => $self->option('user')||'root',
- host => $self->machine,
- command => eval(qq("$command")),
- );
+ eval(qq("$command"));
}
+
#a good idea to queue anything that could fail or take any time
sub shellcommands_queue {
my( $self, $svcnum ) = (shift, shift);