blob: 0a5d1ce54dd678da20a16deea96f893d66639f5d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#!/usr/bin/env python3
import logging
from twisted.python.filepath import FilePath
from twisted.web import server, resource, http
class StatusSite(resource.Resource):
isLeaf = True
def __init__(self, statusTracker):
resource.Resource.__init__(self)
self.statusTracker = statusTracker
def render_GET(self, request):
if self.statusTracker.isMailGood() and self.statusTracker.isJobsGood():
logging.debug("Indicating that everything seems to be okay")
s = "True"
elif not self.statusTracker.isMailGood():
logging.warn("Indicating that we have a problem with Mail")
s = "MailProblem"
elif not self.statusTracker.isJobsGood():
logging.warn("Indicating that we have a problem with Jobs")
s = "JobProblem"
request.setResponseCode(200)
return s.encode("utf-8")
class PingSite(resource.Resource):
isLeaf = True
def __init__(self, statusTracker):
resource.Resource.__init__(self)
self.statusTracker = statusTracker
def render_POST(self, request):
self.statusTracker.markJobRan()
emailStatus = request.content.read().decode("utf-8")
emailStatus = "True" in emailStatus
logging.debug("Got notification of jobs ran")
if emailStatus:
logging.debug("Email is working")
else:
logging.warn("Email is _not_ working")
self.statusTracker.markEmailStatus(emailStatus)
request.setResponseCode(200)
return "OK".encode("utf-8")
|