from monitor import database
-import plc
-api = plc.getAuthAPI()
-
-import mailer
+from monitor.wrapper import plc
+from monitor.wrapper import mailer
import time
from model import *
-from const import *
-import util.file
-import config
+from monitor.const import *
+from monitor import util
+from monitor import config
def gethostlist(hostlist_file):
return util.file.getListFromFile(hostlist_file)
-
- #nodes = api.GetNodes({'peer_id' : None}, ['hostname'])
- #return [ n['hostname'] for n in nodes ]
def array_to_priority_map(array):
""" Create a mapping where each entry of array is given a priority equal
#print "creating new object"
obj = super(PersistMessage, typ).__new__(typ, [id, subject, message, via_rt], **kwargs)
obj.id = id
- obj.actiontracker = Recent(3*60*60*24)
+ obj.actiontracker = Recent(1*60*60*24)
obj.ticket_id = None
if 'ticket_id' in kwargs and kwargs['ticket_id'] is not None:
self.save()
else:
# NOTE: only send a new message every week, regardless.
+ # NOTE: can cause thank-you messages to be lost, for instance when node comes back online within window.
print "Not sending to host b/c not within window of %s days" % (self.actiontracker.withintime // (60*60*24))
class MonitorMessage(object):
def getDaysDown(cls, diag_record):
daysdown = -1
- if diag_record['comonstats']['uptime'] != "null":
+ if diag_record['comonstats']['uptime'] != "null" and diag_record['comonstats']['uptime'] != "-1":
daysdown = - int(float(diag_record['comonstats']['uptime'])) // (60*60*24)
#elif diag_record['comonstats']['sshstatus'] != "null":
# daysdown = int(diag_record['comonstats']['sshstatus']) // (60*60*24)
# return "%d days up"% -daysdown
#getStrDaysDown = classmethod(getStrDaysDown)
- def takeAction(self):
+ def takeAction(self, index=0):
pp = PersistSitePenalty(self.hostname, 0, db='persistpenalty_hostnames')
if 'improvement' in self.data['stage'] or self.improved() or \
'monitor-end-record' in self.data['stage']:
else:
print "takeAction: increasing penalty for %s"%self.hostname
pp.increase()
+ pp.index = index
pp.apply(self.hostname)
pp.save()
self.data['message'][1] % self.data['args'],
True, db='monitor_persistmessages',
ticket_id=ticket_id)
+ if self.data['stage'] == "improvement":
+ message.reset()
return message
else:
return None