diff options
author | Mark Wells <mark@freeside.biz> | 2015-12-30 18:51:09 -0800 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2015-12-30 18:51:09 -0800 |
commit | 62e6a2b1c99086f3a9097f2d9d29fd8c414564b8 (patch) | |
tree | 786731c983966562e39e5905af31b56c319baf8e /FS/FS/svc_Common.pm | |
parent | 44e840908ac339de1c9d430e9565e03d4bfa5ec3 (diff) |
add option for exports to avoid suspending services, #20739
Diffstat (limited to 'FS/FS/svc_Common.pm')
-rw-r--r-- | FS/FS/svc_Common.pm | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 35415a26f..73658f67a 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -1154,7 +1154,9 @@ Runs the provided export hook (i.e. "suspend", "unsuspend") for this service. sub export { my( $self, $method ) = ( shift, shift ); + # $method must start with export_, $action must be the part after that $method = "export_$method" unless $method =~ /^export_/; + my ($action) = $method =~ /^export_(\w+)/; local $SIG{HUP} = 'IGNORE'; local $SIG{INT} = 'IGNORE'; @@ -1171,6 +1173,7 @@ sub export { unless ( $noexport_hack ) { foreach my $part_export ( $self->cust_svc->part_svc->part_export ) { next unless $part_export->can($method); + next if $part_export->get("no_$action"); # currently only 'no_suspend' my $error = $part_export->$method($self, @_); if ( $error ) { $dbh->rollback if $oldAutoCommit; |