diff options
| author | ivan <ivan> | 2011-02-09 08:57:23 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2011-02-09 08:57:23 +0000 | 
| commit | b9cf39b5041702b3211a4ea5b471a3b059cd81ea (patch) | |
| tree | b31c9f73630ee1b8183f4c01018e4c63d8fb406c /FS | |
| parent | 1833cbb8c9a99ac9e650dda0a51bba492ad25c04 (diff) | |
automatically generate monthly torrus reports before 1st of the month billing, RT#10574
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/Cron/nms_report.pm | 21 | ||||
| -rw-r--r-- | FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm | 15 | ||||
| -rwxr-xr-x | FS/bin/freeside-daily | 4 | 
3 files changed, 40 insertions, 0 deletions
| diff --git a/FS/FS/Cron/nms_report.pm b/FS/FS/Cron/nms_report.pm new file mode 100644 index 000000000..a34ebe180 --- /dev/null +++ b/FS/FS/Cron/nms_report.pm @@ -0,0 +1,21 @@ +packages FS::Cron::nms_report; + +use strict; +use base 'Exporter'; +use FS::Conf; +use FS::NetworkMonitoringSystem; + +our @EXPORT_OK = qw( nms_report ); + +sub nms_report { +  #my %opt = @_; + +  my $conf = new FS::Conf; +  return unless $conf->config('network_monitoring_system'); + +  my $nms = new FS::NetworkMonitoringSystem; +  $nms->report; #(%opt); + +} + +1; diff --git a/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm b/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm index d55bfc35b..e48b6a6f8 100644 --- a/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm +++ b/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm @@ -94,6 +94,21 @@ sub find_svc {      return $svc_port[0];  } +sub report { +  my $self = shift; + +  my @lt = localtime(time); +  my ($d,$m,$y) = ($ls[3], $ls[4]+1, $ls[5]+1900); +  if ( $ls[3] == 1 ) { +    $m--; +    if ($m == 0) { $m=12; $y-- } +    #i should have better error checking +    system('torrus', 'report', '--report=MonthlyUsage', "--date=$y-$m-01"); +    system('torrus', 'report', '--genhtml', '--tree=main'); +  } + +} +  sub add_router {    my($self, $ip) = @_; diff --git a/FS/bin/freeside-daily b/FS/bin/freeside-daily index 09ae132df..3e4843b12 100755 --- a/FS/bin/freeside-daily +++ b/FS/bin/freeside-daily @@ -12,6 +12,10 @@ getopts("p:a:d:vl:sy:nmrkg:u", \%opt);  my $user = shift or die &usage;  adminsuidsetup $user; +#you can skip this by not having a NetworkMonitoringSystem configured +use FS::Cron::nms qw(nms_report); +nms_report(%opt); +  #you can skip this by setting the disable_cron_billing config  use FS::Cron::bill qw(bill);  bill(%opt); | 
