X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=findbadpcu.py;h=f7a3576130d33bd8c01538829f80e4cdff9aecf4;hb=6ed9d7d32f53f2346c4d04e1251628d5ed30af3f;hp=48b17617582b663879ee0c4c6917a02402da946b;hpb=19414270cf2c8429daab02fdebbd8081d9ba0db0;p=monitor.git diff --git a/findbadpcu.py b/findbadpcu.py index 48b1761..f7a3576 100755 --- a/findbadpcu.py +++ b/findbadpcu.py @@ -15,10 +15,9 @@ import threading import monitor from monitor.pcu import reboot from monitor import config -from monitor.database import FindbadPCURecordSync, FindbadPCURecord +from monitor.database.info.model import FindbadPCURecordSync, FindbadPCURecord, session from monitor import util -from monitor.wrapper import plc -import syncplcdb +from monitor.wrapper import plc, plccache from nodequery import pcu_select plc_lock = threading.Lock() @@ -50,7 +49,7 @@ def get_pcu(pcuname): except: try: #print "GetPCU from file %s" % pcuname - l_pcus = database.dbLoad("pculist") + l_pcus = plccache.l_pcus for i in l_pcus: if i['pcu_id'] == pcuname: l_pcu = i @@ -68,7 +67,7 @@ def get_nodes(node_ids): l_node = plc.getNodes(node_ids, ['hostname', 'last_contact', 'node_id', 'ports']) except: try: - plc_nodes = database.dbLoad("l_plcnodes") + plc_nodes = plccache.l_plcnodes for n in plc_nodes: if n['node_id'] in node_ids: l_node.append(n) @@ -124,7 +123,7 @@ def get_plc_site_values(site_id): d_site = d_site[0] except: try: - plc_sites = database.dbLoad("l_plcsites") + plc_sites = plccache.l_plcsites for site in plc_sites: if site['site_id'] == site_id: d_site = site @@ -275,6 +274,7 @@ def recordPingAndSSH(request, result): fbrec = FindbadPCURecord( date_checked=datetime.fromtimestamp(values['date_checked']), + round=fbsync.round, plc_pcuid=pcu_id, plc_pcu_stats=values['plc_pcu_stats'], dns_status=values['dnsmatch'], @@ -283,6 +283,11 @@ def recordPingAndSSH(request, result): reboot_trial_status="%s" % values['reboot'], ) fbnodesync.round = global_round + + fbnodesync.flush() + fbsync.flush() + fbrec.flush() + count += 1 print "%d %s %s" % (count, nodename, values) @@ -308,6 +313,7 @@ def checkAndRecordState(l_pcus, cohash): for pcuname in l_pcus: pcu_id = int(pcuname) fbnodesync = FindbadPCURecordSync.findby_or_create(plc_pcuid=pcu_id, if_new_set={'round' : 0}) + fbnodesync.flush() node_round = fbnodesync.round if node_round < global_round: @@ -340,12 +346,14 @@ def checkAndRecordState(l_pcus, cohash): print FindbadPCURecordSync.query.count() print FindbadPCURecord.query.count() + session.flush() def main(): global global_round - l_pcus = monitor.database.if_cached_else_refresh(1, config.refresh, "pculist", lambda : plc.GetPCUs()) + # monitor.database.if_cached_else_refresh(1, config.refresh, "pculist", lambda : plc.GetPCUs()) + l_pcus = plccache.l_pcus cohash = {} fbsync = FindbadPCURecordSync.findby_or_create(plc_pcuid=0, if_new_set={'round' : global_round}) @@ -357,6 +365,8 @@ def main(): global_round += 1 fbsync.round = global_round + fbsync.flush() + if config.site is not None: api = plc.getAuthAPI() site = api.GetSites(config.site)