X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nodebad.py;h=f9f6edfeda04f42321a937d5d93b84c4440bc2d0;hb=4d67defe979b409f82bbee2168bfe90ffc184867;hp=57f23c0d9363c1fbb06861a7c5e7a85ab60a144d;hpb=19414270cf2c8429daab02fdebbd8081d9ba0db0;p=monitor.git diff --git a/nodebad.py b/nodebad.py index 57f23c0..f9f6edf 100755 --- a/nodebad.py +++ b/nodebad.py @@ -8,15 +8,15 @@ from datetime import datetime,timedelta from nodequery import verify,query_to_dict,node_select -import syncplcdb from nodecommon import * from monitor import config -from monitor.wrapper import plc +from monitor.wrapper import plc,plccache from monitor.const import MINUP -from monitor.database import FindbadNodeRecord, HistoryNodeRecord +from monitor.database.info.model import FindbadNodeRecord, HistoryNodeRecord +from monitor.database.dborm import mon_session as session -from unified_model import * +from monitor.model import * api = plc.getAuthAPI() @@ -25,8 +25,7 @@ count = 0 def main(config): - l_nodes = syncplcdb.create_plcdb() - l_plcnodes = database.dbLoad("l_plcnodes") + l_plcnodes = plccache.l_nodes l_nodes = get_nodeset(config) checkAndRecordState(l_nodes, l_plcnodes) @@ -49,13 +48,17 @@ def checkAndRecordState(l_nodes, l_plcnodes): try: # Find the most recent record noderec = FindbadNodeRecord.query.filter(FindbadNodeRecord.hostname==nodename).order_by(FindbadNodeRecord.date_checked.desc()).first() - print "NODEREC: ", noderec.date_checked + #print "NODEREC: ", noderec.date_checked except: print "COULD NOT FIND %s" % nodename import traceback print traceback.print_exc() continue + if not noderec: + print "none object for %s"% nodename + continue + node_state = noderec.observed_status if noderec.plc_node_stats: boot_state = noderec.plc_node_stats['boot_state'] @@ -82,6 +85,7 @@ def checkAndRecordState(l_nodes, l_plcnodes): # replace with another operations that also commits all pending ops, such # as session.commit() or flush() or something print HistoryNodeRecord.query.count() + session.flush() return True