add the client-side reporting for MCP mode
[freeside.git] / FS / FS / Yori.pm
1 package FS::Yori;
2 # a reporting program, to report information to the MCP
3
4 use strict;
5 use base 'Exporter';
6
7 our @EXPORT_OK = qw( reports report );
8
9 sub reports { #should be autogenerated i guess
10   qw( freeside_version debian_version pg_version
11       apache_version apache_mpm
12     );
13       #ssh_vulnkey
14 }
15
16 sub report {
17   my $report = shift;
18   $report =~ /^(\w+)$/ or die;
19   eval "report_$report();";
20 }
21
22 sub report_all {
23   foreach my $report ( reports() ) {
24     print "$report: ". report($report). "\n";
25   }
26 }
27
28 sub report_freeside_version {
29   chomp( my $fs_version =
30     `grep '^VERSION=' /home/ivan/freeside/Makefile | cut -d= -f2`
31   );
32   $fs_version;
33 }
34
35 sub report_debian_version {
36   chomp( my $deb_version = `cat /etc/debian_version` );
37   $deb_version;
38 }
39
40 sub report_pg_version {
41   chomp( my $pg_version = `echo 'show server_version' | psql -t freeside` );
42   chomp($pg_version); #two?
43   $pg_version =~ s/^ +//;
44   $pg_version;
45 }
46
47 sub report_apache_version {
48   chomp( my $apache_version =
49     `/usr/sbin/apache2 -v | head -1 | cut -d: -f2 | cut -d/ -f2 | cut -d' ' -f1`
50   );
51   $apache_version;
52 }
53
54 sub report_apache_mpm {
55   chomp( my $apache_mpm =
56     `/usr/sbin/apache2 -V | grep '^Server MPM' | cut -d: -f2`
57   );
58   $apache_mpm =~ s/^ +//;
59   $apache_mpm;
60 }
61
62 #sub report_ssh_vulnkey{
63 #  my $ssh_vulnkey = `ssh-vulnkey -a | grep COMPROMISED`;
64 #  $ssh_vulnkey;
65 #}