AM nagios/plc2nagios.py
[monitor.git] / pcuinfo.py
1 #!/usr/bin/python
2
3 import soltesz
4 import plc
5 from optparse import OptionParser
6 import sys
7 from reboot import pcu_name, get_pcu_values
8
9 import sys
10 from config import config
11
12 def print_dict(dict):
13         for key in dict.keys():
14                 print "%30s : %s" % (key, dict[key])
15
16 parser = OptionParser()
17 parser.set_defaults(withpcu=False,
18                                         refresh=False)
19 parser.add_option("-f", "--nodelist",dest="filename",default="", metavar="FILE",
20                                   help="Provide the input file for the downnode list")
21 parser.add_option("", "--refresh", action="store_true", dest="refresh",
22                                         help="Refresh the cached values")
23
24
25 config = config(parser)
26 config.parse_args()
27
28 if not config.run:
29         k = config.__dict__.keys()
30         k.sort()
31         for o in k:
32                 print o, "=", config.__dict__[o]
33         print "Add --run to actually perform the command"
34         sys.exit(1)
35
36 pculist = soltesz.if_cached_else_refresh(1, 
37                                                         config.refresh, 
38                                                         "pculist", 
39                                                         lambda : plc.GetPCUs())
40 for pcu in pculist:
41         #print pcu
42         #sys.exit(1)
43         if pcu['model'] == None:
44                 continue
45
46         if True: # pcu['model'].find("APC AP79xx/Masterswitch") >= 0:
47                 host = pcu_name(pcu)
48                 values = get_pcu_values(pcu['pcu_id'])
49                 if 'portstatus' not in values:
50                         portstatus = ""
51                 else:
52                         if values['reboot'] == 0 or (not isinstance(values['reboot'],int) and values['reboot'].find("error") >= 0):
53                                 portstatus = "22:%(22)s 23:%(23)s" % values['portstatus']
54                 if values['reboot'] == 0:
55                         print "%6d %20s %50s %s" % (pcu['pcu_id'], pcu['password'], "%s@%s" % (pcu['username'], host), portstatus)
56
57 #soltesz.dbDump("pculist", pculist, 'php')