X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nodebad.py;h=d9b6b4c2003f1e12926f63487c3b800be2f639c6;hb=refs%2Fheads%2F1.0;hp=74117a1a8a08e5b7b1cc6f6e9cd58fe8d1664c34;hpb=d0652340b89d51c6115edb13d5c7c72b34dea66f;p=monitor.git diff --git a/nodebad.py b/nodebad.py index 74117a1..d9b6b4c 100755 --- a/nodebad.py +++ b/nodebad.py @@ -6,17 +6,17 @@ import string import time -import soltesz +import database import comon import threadpool import syncplcdb from nodequery import verify,query_to_dict,node_select +from nodecommon import * import plc -import auth -api = plc.PLC(auth.auth, auth.plc) +api = plc.getAuthAPI() from unified_model import * -from monitor_policy import MINUP +from const import MINUP round = 1 externalState = {'round': round, 'nodes': {}} @@ -24,18 +24,20 @@ count = 0 def main(config): global externalState - externalState = soltesz.if_cached_else(1, config.dbname, lambda : externalState) + externalState = database.if_cached_else(1, config.dbname, lambda : externalState) if config.increment: # update global round number to force refreshes across all nodes externalState['round'] += 1 l_nodes = syncplcdb.create_plcdb() - l_plcnodes = soltesz.dbLoad("l_plcnodes") - - if config.node: - l_nodes = [config.node] - else: - l_nodes = [node['hostname'] for node in l_plcnodes] + l_plcnodes = database.dbLoad("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) @@ -56,15 +58,17 @@ 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: - soltesz.dbDump(config.dbname, externalState) + database.dbDump(config.dbname, externalState) - soltesz.dbDump(config.dbname, externalState) + database.dbDump(config.dbname, externalState) -fb = soltesz.dbLoad('findbad') -hn2lb = soltesz.dbLoad("plcdb_hn2lb") +fb = database.dbLoad('findbad') def getnodesup(nodelist): up = 0 @@ -133,29 +137,26 @@ 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." - soltesz.dbDump(config.dbname, externalState) + database.dbDump(config.dbname, externalState) sys.exit(0)