$overlimit_missing_cust_svc_nonfatal_kludge );
use Carp qw( cluck carp croak confess ); #specify cluck have to specify them all
use Scalar::Util qw( blessed );
+use FS::Conf;
use FS::Record qw( qsearch qsearchs fields dbh );
use FS::cust_main_Mixin;
use FS::cust_svc;
use FS::cust_main;
use FS::inventory_item;
use FS::inventory_class;
+use FS::NetworkMonitoringSystem;
@ISA = qw( FS::cust_main_Mixin FS::Record );
}
+ my $nms_ip_error = $self->nms_ip_insert;
+ if ( $nms_ip_error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "error queuing IP insert: $nms_ip_error";
+ }
+
if ( exists $options{'jobnums'} ) {
push @{ $options{'jobnums'} }, @jobnums;
}
my %defaults = ();
my $error = $self->export('getsettings', \%settings, \%defaults);
if ( $error ) {
- #XXX bubble this up better
warn "error running export_getsetings: $error";
- return ( {}, {} );
+ return ( { 'error' => $error }, {} );
}
( \%settings, \%defaults );
}
my %hash = ();
my $error = $self->export('getstatus', \$html, \%hash);
if ( $error ) {
- #XXX bubble this up better
warn "error running export_getstatus: $error";
- return ( '', {} );
+ return ( '', { 'error' => $error } );
}
( $html, \%hash );
}
+=item export_setstatus
+
+Runs export_setstatus callbacks. If there is an error, returns the error,
+otherwise returns false.
+
+=cut
+
+sub export_setstatus {
+ my( $self, @args ) = @_;
+ my $error = $self->export('setstatus', @args);
+ if ( $error ) {
+ warn "error running export_setstatus: $error";
+ return $error;
+ }
+ '';
+}
+
+
=item export HOOK [ EXPORT_ARGS ]
Runs the provided export hook (i.e. "suspend", "unsuspend") for this service.
}
+=item nms_ip_insert
+
+=cut
+
+sub nms_ip_insert {
+ my $self = shift;
+ my $conf = new FS::Conf;
+ return '' unless grep { $self->table eq $_ }
+ $conf->config('nms-auto_add-svc_ips');
+ my $ip_field = $self->table_info->{'ip_field'};
+
+ my $queue = FS::queue->new( {
+ 'job' => 'FS::NetworkMonitoringSystem::queued_add_router',
+ 'svcnum' => $self->svcnum,
+ } );
+ $queue->insert( 'FS::NetworkMonitoringSystem',
+ $self->$ip_field(),
+ $conf->config('nms-auto_add-community')
+ );
+}
+
+=item nms_delip
+
+=cut
+
+sub nms_ip_delete {
+#XXX not yet implemented
+}
+
=back
=head1 BUGS