#
# $Id: monitor.py,v 1.7 2007/07/03 19:59:02 soltesz Exp $
-import database
-
-from monitor_policy import *
-import rt
import sys
-import plc
-api = plc.getAuthAPI()
+from monitor import database
+from monitor.wrapper import rt
+from monitor.wrapper import plc
+from monitor.policy import *
+from monitor.database.info.model import *
-from clean_policy import *
+api = plc.getAuthAPI()
def reboot(hostname):
- print "calling reboot!!! %s " % hostname
+ print "CALLING: mailmonitor.reboot(%s)" % hostname
l_nodes = api.GetNodes(hostname)
if len(l_nodes) == 0:
raise Exception("No such host: %s" % hostname)
- l_blacklist = database.if_cached_else(1, "l_blacklist", lambda : [])
- l_ticket_blacklist = database.if_cached_else(1,"l_ticket_blacklist",lambda : [])
+ q_blacklist = BlacklistRecord.query.all()
+ l_blacklist = [ n.hostname for n in q_blacklist ]
l_nodes = filter(lambda x : not x['hostname'] in l_blacklist, l_nodes)
if len(l_nodes) == 0:
raise Exception("Host removed via blacklist: %s" % hostname)
- ad_dbTickets = database.if_cached_else_refresh(True, False, "ad_dbTickets", lambda : [])
- if ad_dbTickets == None:
- raise Exception("Could not find cached dbTickets")
-
- print "starting new thing"
mon = MonitorMergeDiagnoseSendEscellate(hostname, True)
mon.run()
- #print "merge"
- #merge = Merge( [node['hostname'] for node in l_nodes])
- #record_list = merge.run()
- ##print "rt"
- #rt = RT(record_list, ad_dbTickets, l_ticket_blacklist)
- #record_list = rt.run()
- ##print "diagnose"
- #diag = Diagnose(record_list)
- #diagnose_out = diag.run()
- #print diagnose_out
- #print "action"
- #action = Action(diagnose_out)
- #action.run()
-
- return True
-
-def reboot2(hostname):
- l_nodes = api.GetNodes(hostname)
- if len(l_nodes) == 0:
- raise Exception("No such host: %s" % hostname)
-
- l_blacklist = database.if_cached_else(1, "l_blacklist", lambda : [])
- l_ticket_blacklist = database.if_cached_else(1,"l_ticket_blacklist",lambda : [])
-
- l_nodes = filter(lambda x : not x['hostname'] in l_blacklist, l_nodes)
- if len(l_nodes) == 0:
- raise Exception("Host removed via blacklist: %s" % hostname)
-
- ad_dbTickets = database.if_cached_else_refresh(True, False, "ad_dbTickets", lambda : None)
- if ad_dbTickets == None:
- raise Exception("Could not find cached dbTickets")
-
-
- args = {}
- args['hostname'] = "%s" % hostname
- args['hostname_list'] = "%s" % hostname
- args['loginbase'] = plc.siteId(hostname)
-
- m = PersistMessage(hostname, "Please Update Boot Image for %s" % hostname,
- mailtxt.newalphacd_one[1] % args, True, db='bootcd_persistmessages')
-
- #print "merge"
- merge = Merge( [node['hostname'] for node in l_nodes])
- record_list = merge.run()
- #print "rt"
- rt = RT(record_list, ad_dbTickets, l_ticket_blacklist)
- record_list = rt.run()
- #print "diagnose"
- diag = Diagnose(record_list)
- diagnose_out = diag.run()
- #print diagnose_out
- #print "action"
- action = Action(diagnose_out)
- action.run()
-
return True
-
def main():
for host in sys.argv[1:]:
reboot(host)