X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nodebad.py;h=d9b6b4c2003f1e12926f63487c3b800be2f639c6;hb=refs%2Fheads%2F1.0;hp=c274f494c2ce8bf554bde5c0885f4dff8a6db899;hpb=c51ad794e8dc07072d705b508e79ba06849aa408;p=monitor.git diff --git a/nodebad.py b/nodebad.py index c274f49..d9b6b4c 100755 --- a/nodebad.py +++ b/nodebad.py @@ -11,11 +11,12 @@ import comon import threadpool import syncplcdb from nodequery import verify,query_to_dict,node_select +from nodecommon import * import plc api = plc.getAuthAPI() from unified_model import * -from monitor_policy import MINUP +from const import MINUP round = 1 externalState = {'round': round, 'nodes': {}} @@ -31,10 +32,12 @@ def main(config): l_nodes = syncplcdb.create_plcdb() l_plcnodes = database.dbLoad("l_plcnodes") - if config.node: - l_nodes = [config.node] - else: - l_nodes = [node['hostname'] for node in l_plcnodes] + l_nodes = get_nodeset(config) + print len(l_nodes) + #if config.node: + # l_nodes = [config.node] + ##else: + # l_nodes = [node['hostname'] for node in l_plcnodes] checkAndRecordState(l_nodes, l_plcnodes) @@ -55,6 +58,9 @@ def checkAndRecordState(l_nodes, l_plcnodes): externalState['nodes'][nodename]['values'] = values externalState['nodes'][nodename]['round'] = global_round else: + pf = PersistFlags(nodename, 1, db='node_persistflags') + print "%d %35s %s since %s" % (count, nodename, pf.status, pf.last_changed) + del pf count += 1 if count % 20 == 0: @@ -63,7 +69,6 @@ def checkAndRecordState(l_nodes, l_plcnodes): database.dbDump(config.dbname, externalState) fb = database.dbLoad('findbad') -hn2lb = database.dbLoad("plcdb_hn2lb") def getnodesup(nodelist): up = 0 @@ -132,28 +137,25 @@ def collectStatusAndState(nodename, l_plcnodes): return True if __name__ == '__main__': - from config import config - from optparse import OptionParser - parser = OptionParser() + import parser as parsermodule + parser = parsermodule.getParser(['nodesets']) parser.set_defaults(filename=None, node=None, nodeselect=False, nodegroup=None, increment=False, dbname="nodebad", cachenodes=False) - parser.add_option("", "--node", dest="node", metavar="hostname", - help="Provide a single node to operate on") - parser.add_option("", "--nodelist", dest="nodelist", metavar="file.list", - help="Provide a list of files to operate on") - + parser.add_option("", "--dbname", dest="dbname", metavar="FILE", help="Specify the name of the database to which the information is saved") parser.add_option("-i", "--increment", action="store_true", dest="increment", help="Increment round number to force refresh or retry") - config = config(parser) - config.parse_args() + parser = parsermodule.getParser(['defaults'], parser) + config = parsermodule.parse_args(parser) try: main(config) except Exception, err: import traceback print traceback.print_exc() + from nodecommon import email_exception + email_exception() print "Exception: %s" % err print "Saving data... exitting." database.dbDump(config.dbname, externalState)