modified findbad and findbadpcu to use scanapi. need to combine these files.
[monitor.git] / nodebad.py
index 57f23c0..f9f6edf 100755 (executable)
@@ -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