From b9cf39b5041702b3211a4ea5b471a3b059cd81ea Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 9 Feb 2011 08:57:23 +0000 Subject: [PATCH] automatically generate monthly torrus reports before 1st of the month billing, RT#10574 --- FS/FS/Cron/nms_report.pm | 21 +++++++++++++++++++++ FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm | 15 +++++++++++++++ FS/bin/freeside-daily | 4 ++++ 3 files changed, 40 insertions(+) create mode 100644 FS/FS/Cron/nms_report.pm 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); -- 2.11.0