Send email alert when tempmon server marks a client as offline

courtesy of Cole Chaney <cole@mamajeansmarket.com>
This commit is contained in:
Lance Edgar 2018-02-07 17:47:00 -06:00
parent 8a1551e0f5
commit 5df3379995
3 changed files with 18 additions and 0 deletions

View file

@ -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

View file

@ -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)\

View file

@ -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>