X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sitebad.py;h=513223314b8bb1a71e25d6e6743d97d5bf5dd278;hb=ca65ff1cd55b2a285320ec8562e8ca1e29fbc4f0;hp=aff044439275a06f79f280d9ec01e46223e1b866;hpb=90b2e8e7cb145cb1f6b3780867617084441b6ca9;p=monitor.git diff --git a/sitebad.py b/sitebad.py index aff0444..5132233 100755 --- a/sitebad.py +++ b/sitebad.py @@ -7,16 +7,16 @@ import time from datetime import datetime,timedelta from monitor import database -from monitor.pcu import reboot +from pcucontrol import reboot from monitor import parser as parsermodule from monitor import config -from monitor.database import HistorySiteRecord, FindbadNodeRecord +from monitor.database.info.model import HistorySiteRecord, FindbadNodeRecord, session from monitor.wrapper import plc, plccache from monitor.const import MINUP -from nodecommon import * +from monitor.common import * from nodequery import verify,query_to_dict,node_select -from unified_model import * +from monitor.model import * api = plc.getAuthAPI() @@ -32,6 +32,19 @@ def main(config): checkAndRecordState(l_sites, l_plcsites) +def getnewsite(nodelist): + new = True + for node in nodelist: + try: + noderec = FindbadNodeRecord.query.filter(FindbadNodeRecord.hostname==node['hostname']).order_by(FindbadNodeRecord.date_checked.desc()).first() + if noderec is not None and \ + noderec.plc_node_stats['last_contact'] != None: + new = False + except: + import traceback + print traceback.print_exc() + return new + def getnodesup(nodelist): up = 0 for node in nodelist: @@ -62,9 +75,12 @@ def checkAndRecordState(l_sites, l_plcsites): pf = HistorySiteRecord.findby_or_create(loginbase=sitename) pf.last_checked = datetime.now() + pf.slices_total = d_site['max_slices'] pf.slices_used = len(d_site['slice_ids']) pf.nodes_total = len(lb2hn[sitename]) pf.nodes_up = getnodesup(lb2hn[sitename]) + pf.new = getnewsite(lb2hn[sitename]) + pf.enabled = d_site['enabled'] if pf.nodes_up >= MINUP: if pf.status != "good": pf.last_changed = datetime.now() @@ -76,7 +92,10 @@ def checkAndRecordState(l_sites, l_plcsites): count += 1 print "%d %15s slices(%2s) nodes(%2s) up(%2s) %s" % (count, sitename, pf.slices_used, pf.nodes_total, pf.nodes_up, pf.status) + pf.flush() + print HistorySiteRecord.query.count() + session.flush() return True