Massive commit of all changes, and added files for the Monitor-server package.
[monitor.git] / pcuinfo.py
diff --git a/pcuinfo.py b/pcuinfo.py
new file mode 100755 (executable)
index 0000000..3c61cd1
--- /dev/null
@@ -0,0 +1,57 @@
+#!/usr/bin/python
+
+import soltesz
+import plc
+from optparse import OptionParser
+import sys
+from reboot import pcu_name, get_pcu_values
+
+import sys
+from config import config
+
+def print_dict(dict):
+       for key in dict.keys():
+               print "%30s : %s" % (key, dict[key])
+
+parser = OptionParser()
+parser.set_defaults(withpcu=False,
+                                       refresh=False)
+parser.add_option("-f", "--nodelist",dest="filename",default="", metavar="FILE",
+                                 help="Provide the input file for the downnode list")
+parser.add_option("", "--refresh", action="store_true", dest="refresh",
+                                       help="Refresh the cached values")
+
+
+config = config(parser)
+config.parse_args()
+
+if not config.run:
+       k = config.__dict__.keys()
+       k.sort()
+       for o in k:
+               print o, "=", config.__dict__[o]
+       print "Add --run to actually perform the command"
+       sys.exit(1)
+
+pculist = soltesz.if_cached_else_refresh(1, 
+                                                       config.refresh, 
+                                                       "pculist", 
+                                                       lambda : plc.GetPCUs())
+for pcu in pculist:
+       #print pcu
+       #sys.exit(1)
+       if pcu['model'] == None:
+               continue
+
+       if True: # pcu['model'].find("APC AP79xx/Masterswitch") >= 0:
+               host = pcu_name(pcu)
+               values = get_pcu_values(pcu['pcu_id'])
+               if 'portstatus' not in values:
+                       portstatus = ""
+               else:
+                       if values['reboot'] == 0 or (not isinstance(values['reboot'],int) and values['reboot'].find("error") >= 0):
+                               portstatus = "22:%(22)s 23:%(23)s" % values['portstatus']
+               if values['reboot'] == 0:
+                       print "%6d %20s %50s %s" % (pcu['pcu_id'], pcu['password'], "%s@%s" % (pcu['username'], host), portstatus)
+
+#soltesz.dbDump("pculist", pculist, 'php')