Send email alert when tempmon server marks a client as offline
courtesy of Cole Chaney <cole@mamajeansmarket.com>
This commit is contained in:
parent
8a1551e0f5
commit
5df3379995
|
@ -44,6 +44,7 @@ class TempmonBase(object):
|
||||||
probe = model.TempmonProbe(config_key='testprobe', description="Test Probe")
|
probe = model.TempmonProbe(config_key='testprobe', description="Test Probe")
|
||||||
client.probes.append(probe)
|
client.probes.append(probe)
|
||||||
return {
|
return {
|
||||||
|
'client': client,
|
||||||
'probe': probe,
|
'probe': probe,
|
||||||
'status': self.enum.TEMPMON_PROBE_STATUS[self.enum.TEMPMON_PROBE_STATUS_ERROR],
|
'status': self.enum.TEMPMON_PROBE_STATUS[self.enum.TEMPMON_PROBE_STATUS_ERROR],
|
||||||
'reading': model.TempmonReading(),
|
'reading': model.TempmonReading(),
|
||||||
|
@ -78,6 +79,13 @@ class tempmon_error(TempmonBase, Email):
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
class tempmon_client_offline(TempmonBase, Email):
|
||||||
|
"""
|
||||||
|
Sent when a tempmon client has been marked offline.
|
||||||
|
"""
|
||||||
|
default_subject = "Client Offline"
|
||||||
|
|
||||||
|
|
||||||
class tempmon_good_temp(TempmonBase, Email):
|
class tempmon_good_temp(TempmonBase, Email):
|
||||||
"""
|
"""
|
||||||
Sent whenever a tempmon probe first takes a "good temp" reading, after
|
Sent whenever a tempmon probe first takes a "good temp" reading, after
|
||||||
|
|
|
@ -83,6 +83,8 @@ class TempmonServerDaemon(Daemon):
|
||||||
if not online and client.online:
|
if not online and client.online:
|
||||||
log.info("marking client as OFFLINE: {}".format(client))
|
log.info("marking client as OFFLINE: {}".format(client))
|
||||||
client.online = False
|
client.online = False
|
||||||
|
send_email(self.config, 'tempmon_client_offline', {"client":client, "now":localtime(self.config,self.now,from_utc=True)})
|
||||||
|
|
||||||
|
|
||||||
def check_readings_for_probe(self, session, probe, cutoff):
|
def check_readings_for_probe(self, session, probe, cutoff):
|
||||||
readings = session.query(tempmon.Reading)\
|
readings = session.query(tempmon.Reading)\
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
## -*- coding: utf-8 -*-
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<p>At ${now.strftime("%Y-%m-%d %I:%M %p")} the Tempmon server failed to locate readings for ${client}.<br>
|
||||||
|
This client is now marked as offline. Investigate asap.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in a new issue