summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2008-08-21 23:22:04 +0000
committerivan <ivan>2008-08-21 23:22:04 +0000
commitc1297541457bdfce910e7013cd6dc24254347852 (patch)
tree63fa7efbba22084d7a1237c47a3500177dedd419
parent9080a8d56896cfa2fe3f696fe087d7283d13f52c (diff)
add the client-side reporting for MCP mode
-rw-r--r--FS/FS/Yori.pm65
-rw-r--r--FS/MANIFEST1
-rw-r--r--FS/bin/freeside-yori16
3 files changed, 82 insertions, 0 deletions
diff --git a/FS/FS/Yori.pm b/FS/FS/Yori.pm
new file mode 100644
index 0000000..01f36b1
--- /dev/null
+++ b/FS/FS/Yori.pm
@@ -0,0 +1,65 @@
+package FS::Yori;
+# a reporting program, to report information to the MCP
+
+use strict;
+use base 'Exporter';
+
+our @EXPORT_OK = qw( reports report );
+
+sub reports { #should be autogenerated i guess
+ qw( freeside_version debian_version pg_version
+ apache_version apache_mpm
+ );
+ #ssh_vulnkey
+}
+
+sub report {
+ my $report = shift;
+ $report =~ /^(\w+)$/ or die;
+ eval "report_$report();";
+}
+
+sub report_all {
+ foreach my $report ( reports() ) {
+ print "$report: ". report($report). "\n";
+ }
+}
+
+sub report_freeside_version {
+ chomp( my $fs_version =
+ `grep '^VERSION=' /home/ivan/freeside/Makefile | cut -d= -f2`
+ );
+ $fs_version;
+}
+
+sub report_debian_version {
+ chomp( my $deb_version = `cat /etc/debian_version` );
+ $deb_version;
+}
+
+sub report_pg_version {
+ chomp( my $pg_version = `echo 'show server_version' | psql -t freeside` );
+ chomp($pg_version); #two?
+ $pg_version =~ s/^ +//;
+ $pg_version;
+}
+
+sub report_apache_version {
+ chomp( my $apache_version =
+ `/usr/sbin/apache2 -v | head -1 | cut -d: -f2 | cut -d/ -f2 | cut -d' ' -f1`
+ );
+ $apache_version;
+}
+
+sub report_apache_mpm {
+ chomp( my $apache_mpm =
+ `/usr/sbin/apache2 -V | grep '^Server MPM' | cut -d: -f2`
+ );
+ $apache_mpm =~ s/^ +//;
+ $apache_mpm;
+}
+
+#sub report_ssh_vulnkey{
+# my $ssh_vulnkey = `ssh-vulnkey -a | grep COMPROMISED`;
+# $ssh_vulnkey;
+#}
diff --git a/FS/MANIFEST b/FS/MANIFEST
index aa07d01..d83bf1d 100644
--- a/FS/MANIFEST
+++ b/FS/MANIFEST
@@ -417,3 +417,4 @@ FS/pkg_category.pm
t/pkg_category.t
FS/phone_avail.pm
t/phone_avail.t
+FS/Yori.pm
diff --git a/FS/bin/freeside-yori b/FS/bin/freeside-yori
new file mode 100644
index 0000000..d113799
--- /dev/null
+++ b/FS/bin/freeside-yori
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use FS::Yori qw(reports report);
+
+if ( @ARGV ) {
+ while ( my $report = shift ) {
+ print report($report). "\n";
+ }
+} else {
+ print join("\n", reports() ). "\n";
+}
+
+
+1;