Subversion Repositories computer_asset_manager_v1

Rev

Rev 68 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
68 rodolico 1
#!/usr/bin/env perl
2
 
3
use strict;
4
use warnings;
5
 
6
#
7
# v0.8.1 20160218 RWR
8
# removed print statement to STDOUT (just commented it out)
9
#
10
# v0.8.2 20160407 RWR
11
# Added checking for missing sysinfo reports
12
# if a report is not shown in current day, but has been seen in the 
13
# past five days, an entry is made on the report
14
 
15
use DBI;
16
use Cwd 'abs_path';
17
#use Data::Dumper;
18
use File::Basename;
19
use YAML::XS;
20
 
21
 
22
my $VERSION = '0.8.1';
23
my $MY_DIRECTORY = abs_path(dirname(__FILE__) );
24
my $query = qq/select 
25
   hyper.name DOM0,
26
   virt.name DOMU
27
from 
28
   device hyper join device virt
29
   join device_type on (virt.device_type_id = device_type.device_type_id)
30
where 
31
   device_type.show_as_system = "Y"
32
   and hyper.device_id = virt.part_of 
33
   and hyper.removed_date is null 
34
   and virt.removed_date is null
35
order by 
36
   hyper.name,
37
   virt.name/;
38
 
39
 
40
# following are used to find the configuration file
41
my $confFileName = "sysinfoRead.conf.yaml";
42
my @searchPaths = ( '/etc/camp', '/opt/camp', '/opt/camp/sysinfo', $MY_DIRECTORY );
43
 
44
 
45
sub loadConfig {
46
   my ( $confFileName, @searchPaths ) = @_;
47
   my $configuration;
48
   for ( my $i = 0; $i < @searchPaths; $i++ ) {
49
      my $filename = $searchPaths[$i] . '/' . $confFileName;
50
      if ( -e $filename ) {
51
         #print "Found $filename\n";
52
         open CONF, "<$filename" or warn "Could not read $filename: $!\n";
53
         $configuration = Load( join( '', <CONF> ) );
54
         close CONF;
55
         last; # exit out of the loop; we don't try to load it more than once
56
      } # if
57
   } # foreach
58
   return $configuration;
59
} # sub loadConfig
60
 
61
my $configuration = &loadConfig( $confFileName, @searchPaths );
62
die "Could not find configuration file $confFileName in " . join( ', ', @searchPaths) . "\n" unless $configuration;
63
 
64
my $dbh = DBI->connect('DBI:mysql:' . $$configuration{'database'}{'database'},
65
                       $$configuration{'database'}{'databaseUsername'}, 
66
                       $$configuration{'database'}{'databasePassword'} )
67
         || die "Could not connect to database: $DBI::errstr";
68
 
69
my $sth = $dbh->prepare( $query );
70
$sth->execute();
71
 
72
open REPORT, ">$$configuration{'domuOutput'}" or die "Could not open $$configuration{'domuOutput'} for DOMU Report: $!\n";
74 rodolico 73
print REPORT "DOM0\tDOMU\n";
68 rodolico 74
while ( my $row =  $sth->fetchrow_hashref() ) {
74 rodolico 75
   print REPORT $row->{"DOM0"} . "\t" . $row->{"DOMU"} . "\n";
68 rodolico 76
}
77
close REPORT;
74 rodolico 78
`chown www-data:www-data $$configuration{"domuOutput"}`;
68 rodolico 79
1;