X-Git-Url: http://git.onelab.eu/?p=monitor.git;a=blobdiff_plain;f=nagios%2Factions%2Fescalation.py;h=4bebe5a67a84d9254f8059296bbc210a76ef323b;hp=c4979b6e283f38ccc3f594216484615a3fcca92d;hb=3b9ead50a3cb587677eb550dbd59732ec108ddbc;hpb=5f22fdfd8456bfcf0a050e1bb31b0bd0bf3c3d74 diff --git a/nagios/actions/escalation.py b/nagios/actions/escalation.py index c4979b6..4bebe5a 100755 --- a/nagios/actions/escalation.py +++ b/nagios/actions/escalation.py @@ -2,9 +2,68 @@ import time import sys +import plc +def argv_to_dict(argv): + """ + NOTE: very bare-bones, no error checking, will fail easily. + """ + d = {} + prev=None + for a in argv: + if "--" == a[0:2]: + prev = a[2:] + elif "-" == a[0:1]: + prev = a[1:] + else: + d[prev] = a + return d + +def main(f): + d = argv_to_dict(sys.argv[1:]) + + site = None + if 'site' in d: + site = d['site'].replace('site-cluster-for-','') + else: + print "No site specified" + sys.exit(1) + + notificationnumber = 1 + if 'notificationnumber' in d or 'n' in d: + try: + notificationnumber = int(d['notificationnumber']) + except: + notificationnumber = int(d['n']) + + interval = 1 + if 'interval' in d: + interval = int(d['interval']) + + type = None + if 'notificationtype' in d: + type = d['notificationtype'] + + if type == "RECOVERY": + f.write("\t %s %s\n" % (time.time(), "enableSiteSliceCreation(%s)" % site )) + f.write("\t %s %s\n" % (time.time(), "enableSiteSlices(%s)" % site )) + #plc.enableSiteSliceCreation(site) + #plc.enableSiteSlices(site) + + elif type == "PROBLEM": + if notificationnumber <= 3: + pass + elif notificationnumber <= 6: + f.write("\t %s %s\n" % (time.time(), "removeSiteSliceCreation(%s)" % site )) + #plc.removeSiteSliceCreation(site) + elif notificationnumber > 6: + f.write("\t %s %s\n" % (time.time(), "removeSiteSliceCreation(%s)" % site )) + f.write("\t %s %s\n" % (time.time(), "suspendSiteSlices(%s)" % site )) + #plc.removeSiteSliceCreation(site) + #plc.suspendSiteSlices(site) if __name__ == '__main__': - f = open("/tmp/escalation", 'a') - f.write("escalation %s %s\n" % (time.time(), " ".join(sys.argv[1:]))) - f.close() + f = open("/tmp/escalation", 'a') + f.write("escalation %s %s\n" % (time.time(), " ".join(sys.argv[1:]))) + main(f) + f.close()