import struct
from monitor import reboot
from monitor import util
-from monitor import database
-from monitor.wrapper import plc, plccache
+from monitor import query
+from monitor.wrapper import plc
from datetime import datetime, timedelta
from monitor.model import Message
rb = values['reboot']
if rb == 0 or rb == "0":
return fbnode['pcu'] + "OK "
- #return fbnode['pcu'] + "OK "
- #return green(fbnode['pcu'])
elif "NetDown" == rb or "Not_Run" == rb:
return fbnode['pcu'] + "DOWN"
- #return yellow(fbnode['pcu'])
else:
return fbnode['pcu'] + "BAD "
- #return red(fbnode['pcu'])
else:
- #return red(fbnode['pcu'])
return fbnode['pcu'] + "BAD "
def color_boot_state(l):
if l == "dbg": return yellow("debg")
elif l == "dbg ": return yellow("debg")
+ elif l == "failboot": return yellow("debg")
elif l == "diag": return lightblue(l)
+ elif l == "diagnose": return lightblue(l)
+ elif l == "safeboot": return lightblue(l)
elif l == "disable": return red("dsbl")
+ elif l == "disabled": return red("dsbl")
elif l == "down": return red(l)
elif l == "boot": return green(l)
elif l == "rins": return blue(l)
+ elif l == "reinstall": return blue(l)
else:
return l
Given the config values passed in, return the set of hostnames that it
evaluates to.
"""
+ from monitor.wrapper import plccache
api = plc.getAuthAPI()
l_nodes = plccache.l_nodes
# perform this query after the above options, so that the filter above
# does not break.
if config.nodeselect:
- fbquery = FindbadNodeRecord.get_all_latest()
+ fbquery = HistoryNodeRecord.query.all()
node_list = [ n.hostname for n in fbquery ]
- l_nodes = node_select(config.nodeselect, node_list, None)
+ l_nodes = query.node_select(config.nodeselect, node_list, None)
return l_nodes
-def email_exception(content=None):
+def email_exception(content=None, title=None):
import config
from monitor.model import Message
import traceback
msg=traceback.format_exc()
if content:
msg = content + "\n" + msg
- m=Message("exception running monitor", msg, False)
- m.send([config.cc_email])
+
+ full_title = "exception running monitor"
+ if title:
+ full_title = "exception running monitor %s" % title
+
+ m=Message(full_title, msg, False)
+ m.send([config.exception_email])
return
def changed_lessthan(last_changed, days):
return False
def changed_greaterthan(last_changed, days):
+ if last_changed is None:
+ return False
+
if datetime.now() - last_changed > timedelta(days):
#print "last changed more than %s" % timedelta(days)
return True