diff options
author | Tom Ritter <tom@ritter.vg> | 2016-01-31 14:56:27 -0500 |
---|---|---|
committer | Tom Ritter <tom@ritter.vg> | 2016-01-31 14:56:27 -0500 |
commit | e7c15ef06e7886f69cee15863d7f75dc75c9ecec (patch) | |
tree | a0c8a89062e62d61db24c025e51e3dfe731c2660 | |
parent | 618c3606a1f5f230124a937201e53589dbab1260 (diff) |
Get custom state names for each of the jobs now
-rw-r--r-- | README.md | 4 | ||||
-rwxr-xr-x | jobmanager.py | 2 | ||||
-rwxr-xr-x | jobs/HTTPServerChecker.py | 1 | ||||
-rwxr-xr-x | jobs/JobBase.py | 6 | ||||
-rwxr-xr-x | jobs/PeerChecker.py | 1 | ||||
-rwxr-xr-x | jobs/TCPServerChecker.py | 1 |
6 files changed, 11 insertions, 4 deletions
@@ -48,7 +48,9 @@ JobBase is the base for a job, and should be used when you have a single, custom ### Inherit JobSpawner -JobSpawner should be used when you want to run the same logic for multiple servers. Look at HTTPServerChecker and TCPServerChecker for examples of how one can use it. +JobSpawner should be used when you want to run the same logic for multiple servers. Look at HTTPServerChecker and TCPServerChecker for examples of how one can use it. + +Be sure to call JobBase.__init__(self, config, ...) in the inner JobBase's init (with all of your arguements); otherwise the job state file will get messed up and be unable to distinguish between your individual spawned jobs. # Install diff --git a/jobmanager.py b/jobmanager.py index a53a84e..9bfb2d3 100755 --- a/jobmanager.py +++ b/jobmanager.py @@ -50,7 +50,7 @@ class JobManager: ", making up a dummy state for it.") lastRunStatus = self.state[thisJob.getStateName()] = JobState.Empty(thisJob.getStateName()) - logging.info("Executing " + thisJob.getName()) + logging.info("Executing " + thisJob.getName() + "(" + thisJob.getStateName() + ")") if not thisJob.execute(): #Unsuccessful run logging.info("Execution of " + thisJob.getName() + " failed") diff --git a/jobs/HTTPServerChecker.py b/jobs/HTTPServerChecker.py index ec2a9d6..965e977 100755 --- a/jobs/HTTPServerChecker.py +++ b/jobs/HTTPServerChecker.py @@ -14,6 +14,7 @@ class HTTPServerChecker(JobSpawner.JobSpawner): class ServerChecker(JobBase.JobBase):
def __init__(self, config, url, frequency, failureNotificationFrequency):
+ JobBase.JobBase.__init__(self, config, url, frequency, failureNotificationFrequency)
self.config = config
self.url = url
self.frequency = frequency
diff --git a/jobs/JobBase.py b/jobs/JobBase.py index 29ca443..416f28d 100755 --- a/jobs/JobBase.py +++ b/jobs/JobBase.py @@ -2,6 +2,7 @@ import time import random +import hashlib import logging import datetime @@ -21,8 +22,9 @@ class JobFailureNotificationFrequency: ONSTATECHANGE = "state_change" class JobBase: - def __init__(self, config): + def __init__(self, config, *args): self.config = config + self.stateName = hashlib.sha1(self.getName() + "|" + "|".join(args)).hexdigest() """ Return a friendly name to identify this Job""" def getName(self): @@ -32,7 +34,7 @@ class JobBase: Needed to keep track of the job's run history. Takes into account the contructor arguments to uniquely identify JobSpawner-jobs""" def getStateName(self): - return self.getName() + return self.stateName """Returns True if the job should execute this cron-run""" def shouldExecute(self, cronmode): diff --git a/jobs/PeerChecker.py b/jobs/PeerChecker.py index 12ce8d8..d271419 100755 --- a/jobs/PeerChecker.py +++ b/jobs/PeerChecker.py @@ -13,6 +13,7 @@ import JobSpawner class PeerChecker(JobSpawner.JobSpawner):
class IndividualPeerChecker(JobBase.JobBase):
def __init__(self, config, checkurl, notificationAddress):
+ JobBase.JobBase.__init__(self, config, checkurl, notificationAddress)
self.checkurl = checkurl
self.notificationAddress = notificationAddress
diff --git a/jobs/TCPServerChecker.py b/jobs/TCPServerChecker.py index 642e188..bdb914c 100755 --- a/jobs/TCPServerChecker.py +++ b/jobs/TCPServerChecker.py @@ -14,6 +14,7 @@ class TCPServerChecker(JobSpawner.JobSpawner): class ServerChecker(JobBase.JobBase):
def __init__(self, config, ip, port, friendlyName, frequency, failureNotificationFrequency):
+ JobBase.JobBase.__init__(self, config, ip, port, friendlyName, frequency, failureNotificationFrequency)
self.config = config
self.ip = ip
self.port = port
|