[freeside-commits] branch master updated. 2ddf0a1199ce6399bbab1ebf91588435f515571c
Ivan
ivan at 420.am
Sun Mar 10 16:45:26 PDT 2013
The branch, master has been updated
via 2ddf0a1199ce6399bbab1ebf91588435f515571c (commit)
from 4dcb9e2a1b0e36b42debae95f88593148d4f9cf8 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 2ddf0a1199ce6399bbab1ebf91588435f515571c
Author: Ivan Kohler <ivan at freeside.biz>
Date: Sun Mar 10 16:45:25 2013 -0700
add support for phone devices to phone_shellcommands export, RT#21626
diff --git a/FS/FS/part_export/phone_shellcommands.pm b/FS/FS/part_export/phone_shellcommands.pm
index 9ace213..161ffe0 100644
--- a/FS/FS/part_export/phone_shellcommands.pm
+++ b/FS/FS/part_export/phone_shellcommands.pm
@@ -13,16 +13,18 @@ use FS::part_export;
#- suspension/unsuspension
tie my %options, 'Tie::IxHash',
- 'user' => { label=>'Remote username', default=>'root', },
- 'useradd' => { label=>'Insert command', },
- 'userdel' => { label=>'Delete command', },
- 'usermod' => { label=>'Modify command', },
- 'suspend' => { label=>'Suspension command', },
- 'unsuspend' => { label=>'Unsuspension command', },
+ 'user' => { label=>'Remote username', default=>'root', },
+ 'useradd' => { label=>'Insert command', },
+ 'userdel' => { label=>'Delete command', },
+ 'usermod' => { label=>'Modify command', },
+ 'suspend' => { label=>'Suspension command', },
+ 'unsuspend' => { label=>'Unsuspension command', },
+ 'mac_insert' => { label=>'Device MAC address insert command', },
+ 'mac_delete' => { label=>'Device MAC address delete command', },
;
%info = (
- 'svc' => 'svc_phone',
+ 'svc' => [qw( svc_phone part_device )],
'desc' => 'Run remote commands via SSH, for phone numbers',
'options' => \%options,
'notes' => <<'END'
@@ -50,6 +52,7 @@ old_ for replace operations):
<LI><code>$pin</code> - Personal identification number
<LI><code>$cust_name</code> - Customer name (quoted for the shell)
<LI><code>$pkgnum</code> - Internal package number
+ <LI><code>$mac_addr</code> - MAC address (Device MAC address insert and delete commands only)
</UL>
END
);
@@ -57,27 +60,41 @@ END
sub rebless { shift; }
sub _export_insert {
- my($self) = shift;
+ my $self = shift;
$self->_export_command('useradd', @_);
}
sub _export_delete {
- my($self) = shift;
+ my $self = shift;
$self->_export_command('userdel', @_);
}
sub _export_suspend {
- my($self) = shift;
+ my $self = shift;
$self->_export_command('suspend', @_);
}
sub _export_unsuspend {
- my($self) = shift;
+ my $self = shift;
$self->_export_command('unsuspend', @_);
}
+sub export_device_insert {
+ my( $self, $svc_phone, $phone_device ) = @_;
+ $self->_export_command('mac_insert', $svc_phone,
+ 'mac_addr'=>$phone_device->mac_addr
+ );
+}
+
+sub export_device_delete {
+ my( $self, $svc_phone, $phone_device ) = @_;
+ $self->_export_command('mac_delete', $svc_phone,
+ 'mac_addr'=>$phone_device->mac_addr
+ );
+}
+
sub _export_command {
- my ( $self, $action, $svc_phone) = (shift, shift, shift);
+ my ( $self, $action, $svc_phone, %addl_vars) = @_;
my $command = $self->option($action);
return '' if $command =~ /^\s*$/;
@@ -86,6 +103,7 @@ sub _export_command {
{
no strict 'refs';
${$_} = $svc_phone->getfield($_) foreach $svc_phone->fields;
+ ${$_} = $addl_vars{$_} foreach keys %addl_vars;
}
my $cust_pkg = $svc_phone->cust_svc->cust_pkg;
my $pkgnum = $cust_pkg ? $cust_pkg->pkgnum : '';
-----------------------------------------------------------------------
Summary of changes:
FS/FS/part_export/phone_shellcommands.pm | 42 +++++++++++++++++++++--------
1 files changed, 30 insertions(+), 12 deletions(-)
More information about the freeside-commits
mailing list