fix db consistency 'IntegryErrors'
[monitor.git] / nodequery.py
index 7a53df0..e9001a6 100755 (executable)
@@ -16,7 +16,7 @@ import string
 from monitor.wrapper import plc, plccache
 api = plc.getAuthAPI()
 
-from monitor.database.info.model import FindbadNodeRecordSync, FindbadNodeRecord, FindbadPCURecord, session
+from monitor.database.info.model import FindbadNodeRecord, FindbadPCURecord, session
 from monitor import util
 from monitor import config
 
@@ -412,13 +412,14 @@ def main():
 
                try:
                        # Find the most recent record
-                       fb_noderec = FindbadNodeRecord.query.filter(FindbadNodeRecord.hostname==node).order_by(FindbadNodeRecord.date_checked.desc()).first()
+                       fb_noderec = FindbadNodeRecord.get_latest_by(hostname=node) 
+                       if not fb_noderec: continue
+                       fb_nodeinfo = fb_noderec.to_dict()
                except:
                        print traceback.print_exc()
-                       pass
+                       continue
 
                if config.listkeys:
-                       fb_nodeinfo = fb_noderec.to_dict()
                        print "Primary keys available in the findbad object:"
                        for key in fb_nodeinfo.keys():
                                print "\t",key
@@ -431,7 +432,6 @@ def main():
                        if config.daysdown:
                                daysdown_print_nodeinfo(fb_nodeinfo, node)
                        else:
-                               fb_nodeinfo = fb_noderec.to_dict()
                                if config.select:
                                        if config.fields:
                                                fields = config.fields.split(",")