git://git.onelab.eu
/
monitor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add upload stub, expose query functions with plain text templates,
[monitor.git]
/
nodequery.py
diff --git
a/nodequery.py
b/nodequery.py
index
dfe3f95
..
2fe0e4a
100755
(executable)
--- a/
nodequery.py
+++ b/
nodequery.py
@@
-13,12
+13,11
@@
import time
import re
import string
import re
import string
-from pcucontrol import reboot
-from monitor.wrapper import plc, plccache
+from monitor.wrapper import plc
api = plc.getAuthAPI()
api = plc.getAuthAPI()
-from monitor.database.info.model import
FindbadNodeRecordSync
, FindbadNodeRecord, FindbadPCURecord, session
-from monitor
import util
+from monitor.database.info.model import
HistoryNodeRecord
, FindbadNodeRecord, FindbadPCURecord, session
+from monitor
.util import file as utilfile
from monitor import config
from monitor import config
@@
-270,6
+269,8
@@
def pcu_select(str_query, nodelist=None):
fbquery = FindbadNodeRecord.get_all_latest()
fb_nodelist = [ n.hostname for n in fbquery ]
if True:
fbquery = FindbadNodeRecord.get_all_latest()
fb_nodelist = [ n.hostname for n in fbquery ]
if True:
+ # NOTE: this doesn't work when there are only a few records current.
+ # pcu_select should apply to all pcus globally, not just the most recent records.
fbpcuquery = FindbadPCURecord.get_all_latest()
fbpcu_list = [ p.plc_pcuid for p in fbpcuquery ]
fbpcuquery = FindbadPCURecord.get_all_latest()
fbpcu_list = [ p.plc_pcuid for p in fbpcuquery ]
@@
-316,6
+317,9
@@
def node_select(str_query, nodelist=None, fb=None):
fb_noderec = None
#fb_noderec = FindbadNodeRecord.query.filter(FindbadNodeRecord.hostname==node).order_by(FindbadNodeRecord.date_checked.desc()).first()
fb_noderec = FindbadNodeRecord.get_latest_by(hostname=node)
fb_noderec = None
#fb_noderec = FindbadNodeRecord.query.filter(FindbadNodeRecord.hostname==node).order_by(FindbadNodeRecord.date_checked.desc()).first()
fb_noderec = FindbadNodeRecord.get_latest_by(hostname=node)
+ except KeyboardInterrupt:
+ print "Exiting at user request: Ctrl-C"
+ sys.exit(1)
except:
print traceback.print_exc()
continue
except:
print traceback.print_exc()
continue
@@
-327,7
+331,6
@@
def node_select(str_query, nodelist=None, fb=None):
#if 'plcnode' in fb_nodeinfo:
# fb_nodeinfo.update(fb_nodeinfo['plcnode'])
#if 'plcnode' in fb_nodeinfo:
# fb_nodeinfo.update(fb_nodeinfo['plcnode'])
- #if verifyDBrecord(dict_query, fb_nodeinfo):
if verify(dict_query, fb_nodeinfo):
#print fb_nodeinfo.keys()
#print node #fb_nodeinfo
if verify(dict_query, fb_nodeinfo):
#print fb_nodeinfo.keys()
#print node #fb_nodeinfo
@@
-381,16
+384,13
@@
def main():
#fbnodes = FindbadNodeRecord.select(FindbadNodeRecord.q.hostname, orderBy='date_checked',distinct=True).reversed()
fb = None
#fbnodes = FindbadNodeRecord.select(FindbadNodeRecord.q.hostname, orderBy='date_checked',distinct=True).reversed()
fb = None
- #reboot.fb = fbpcu
-
if config.nodelist:
if config.nodelist:
- nodelist = util
.
file.getListFromFile(config.nodelist)
+ nodelist = utilfile.getListFromFile(config.nodelist)
else:
# NOTE: list of nodes should come from findbad db. Otherwise, we
# don't know for sure that there's a record in the db..
else:
# NOTE: list of nodes should come from findbad db. Otherwise, we
# don't know for sure that there's a record in the db..
- plcnodes = plccache.l_nodes
- nodelist = [ node['hostname'] for node in plcnodes ]
- #nodelist = ['planetlab-1.cs.princeton.edu']
+ fbquery = HistoryNodeRecord.query.all()
+ nodelist = [ n.hostname for n in fbquery ]
pculist = None
if config.select is not None and config.pcuselect is not None:
pculist = None
if config.select is not None and config.pcuselect is not None:
@@
-413,13
+413,17
@@
def main():
try:
# Find the most recent record
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 KeyboardInterrupt:
+ print "Exiting at user request: Ctrl-C"
+ sys.exit(1)
except:
print traceback.print_exc()
except:
print traceback.print_exc()
- pass
+ continue
if config.listkeys:
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
print "Primary keys available in the findbad object:"
for key in fb_nodeinfo.keys():
print "\t",key
@@
-432,7
+436,6
@@
def main():
if config.daysdown:
daysdown_print_nodeinfo(fb_nodeinfo, node)
else:
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(",")
if config.select:
if config.fields:
fields = config.fields.split(",")