/[omni_gantt]/omni2db.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /omni2db.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (hide annotations)
Fri Sep 13 12:38:25 2002 UTC (21 years, 7 months ago) by dpavlin
Branch: MAIN
Changes since 1.4: +32 -6 lines
File MIME type: text/plain
added device, host and cache-ing of those results.

1 dpavlin 1.1 #!/usr/bin/perl -w
2    
3     use strict;
4     use DBI;
5 dpavlin 1.5 use Cache::FileCache;
6 dpavlin 1.1
7     my $debug = 0;
8    
9     my $dbh = DBI->connect("DBI:Pg:dbname=gantt","","") || die $DBI::errstr;
10 dpavlin 1.5 my $cache = new Cache::FileCache();
11 dpavlin 1.1
12     my %omni;
13    
14     sub db {
15 dpavlin 1.3 return if (scalar keys %omni != 6);
16    
17 dpavlin 1.4 my $sql = "update gantt
18 dpavlin 1.1 set finish=now() where
19     sessionid='$omni{SessionID}' and
20     type='$omni{Session_type}' and
21     status='$omni{Session_status}' and
22 dpavlin 1.4 user_group_host='".$omni{'User.Group@Host'}."' and
23     specification='$omni{Backup_Specification}'";
24 dpavlin 1.1
25 dpavlin 1.4 my $rv = $dbh->do($sql);
26    
27     print "sql:\n$sql\nrv: $rv\n" if ($debug);
28 dpavlin 1.2
29 dpavlin 1.5 my ($device,$host);
30    
31     if ($rv eq "0E0" || !$rv) {
32     my $c = $cache->get( $omni{SessionID} );
33    
34     if (defined $c) {
35     ($device,$host) = split(/\t/,$c,2);
36     print STDERR "cache hit for $omni{SessionID} - $host:$device\n" if ($debug);
37     } else {
38     print STDERR "cache miss for $omni{SessionID}" if ($debug);
39     open(O, "/usr/omni/bin/omnistat -session $omni{SessionID} |") || die "omnistat: $!";
40     while(<O>) {
41     chomp;
42     next if (/^$/ || /^Device/ || /^=+$/);
43     ($device,$host,undef) = split(/\s+/,$_,3);
44     $cache->set( $omni{SessionID}, "$device\t$host", "24 hours" );
45     print STDERR " = $host:$device\n" if ($debug);
46     last;
47     }
48     close(O);
49     }
50    
51     $dbh->do ("insert into gantt (sessionid,type,status,
52     user_group_host,specification,device,host) values
53     ('$omni{SessionID}','$omni{Session_type}',
54     '$omni{Session_status}',
55     '".$omni{'User.Group@Host'}."',
56     '$omni{Backup_Specification}',
57     '$device','$host')")
58     }
59 dpavlin 1.1 }
60    
61     open(O, "/usr/omni/bin/omnistat -detail |") || die "omnistat: $!";
62     while(<O>) {
63     chomp;
64     if (/^$/) {
65 dpavlin 1.3 db();
66 dpavlin 1.1 %omni = ();
67     print "------------\n" if ($debug);
68     next;
69     }
70     s/^[\t\s]+//;
71     my ($l,$r) = split (/\s*:\s*/,$_,2);
72 dpavlin 1.3 if ($r) {
73     $l =~ s/\s+/_/g;
74     $r =~ s/\s+$//g;
75     print "$l -> $r\n" if ($debug);
76     $omni{$l} = $r;
77     }
78 dpavlin 1.1 }
79     db();
80     close(O);

  ViewVC Help
Powered by ViewVC 1.1.26