X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fsvc_Common.pm;h=fbab64d49def4b29ef624f63ebe6eaa54f0354f3;hb=7f5e32275a5a2674fd1d220cd651b222b9831476;hp=5c6e16b826b1ddf74ce3b1e59eb844b4cccfdc46;hpb=5fdd19665fb7c0ad425a99d3dbf9ad7e27fbf44a;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 5c6e16b82..fbab64d49 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -5,6 +5,7 @@ use vars qw( @ISA $noexport_hack $DEBUG $me $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; @@ -13,6 +14,7 @@ use FS::queue; use FS::cust_main; use FS::inventory_item; use FS::inventory_class; +use FS::NetworkMonitoringSystem; @ISA = qw( FS::cust_main_Mixin FS::Record ); @@ -316,6 +318,8 @@ sub insert { } + $self->nms_ip_insert; + if ( exists $options{'jobnums'} ) { push @{ $options{'jobnums'} }, @jobnums; } @@ -985,6 +989,26 @@ sub export_getsettings { ( \%settings, \%defaults ); } +=item export_getstatus + +Runs export_getstatus callbacks and returns a two item list consisting of an +HTML status and a status hashref. + +=cut + +sub export_getstatus { + my $self = shift; + my $html = ''; + my %hash = (); + my $error = $self->export('getstatus', \$html, \%hash); + if ( $error ) { + #XXX bubble this up better + warn "error running export_getstatus: $error"; + return ( '', {} ); + } + ( $html, \%hash ); +} + =item export HOOK [ EXPORT_ARGS ] Runs the provided export hook (i.e. "suspend", "unsuspend") for this service. @@ -1118,8 +1142,53 @@ sub find_duplicates { return grep { $conflict_svcparts{$_->cust_svc->svcpart} } @dup; } +=item getstatus_html + +=cut + +sub getstatus_html { + my $self = shift; + + my $part_svc = $self->cust_svc->part_svc; + my $html = ''; + foreach my $export ( grep $_->can('export_getstatus'), $part_svc->part_export ) { + my $export_html = ''; + my %hash = (); + $export->export_getstatus( $self, \$export_html, \%hash ); + $html .= $export_html; + } + + $html; + +} + +=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'}; + + #XXX perhaps i should be job-queued, i take awhile, right? + my $nms = new FS::NetworkMonitoringSystem; + $nms->add_router( $self->$ip_field(), + $conf->config('nms-auto_add-community') + ); +} + +=item nms_delip + +=cut + +sub nms_ip_delete { +#XXX not yet implemented +} =back