summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/Cron/nms_report.pm21
-rw-r--r--FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm15
-rwxr-xr-xFS/bin/freeside-daily4
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);