Ejegg has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/344046 )
Change subject: Move some things into global config
......................................................................
Move some things into global config
Change-Id: I402b4f65af2c6a4e75edd5ebd787a2ebaf78c3cd
---
M process-control.yaml
M processcontrol/crontab.py
M processcontrol/job_wrapper.py
M processcontrol/mailer.py
4 files changed, 20 insertions(+), 25 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/process-control
refs/changes/46/344046/1
diff --git a/process-control.yaml b/process-control.yaml
index 7084186..78f684e 100644
--- a/process-control.yaml
+++ b/process-control.yaml
@@ -1,3 +1,9 @@
+cron_template: "# Generated from {source}\n{schedule} {user} {command}\n"
+
default_job_config:
- from_address: "Fail Mail <[email protected]>"
- to_address: "[email protected]"
+ failmail:
+ from_address: "Fail Mail <[email protected]>"
+ to_address: "[email protected]"
+
+ timeout: 600
+ user: jenkins
diff --git a/processcontrol/crontab.py b/processcontrol/crontab.py
index c3d1703..e6d3ff9 100644
--- a/processcontrol/crontab.py
+++ b/processcontrol/crontab.py
@@ -3,14 +3,7 @@
import job_wrapper
-# FIXME: Move to global config
-DEFAULT_USER = "jenkins"
-
-CRON_TEMPLATE = """# Generated from {source}
-{schedule} {user} {command}
-"""
-
-RUNNER_PATH = os.path.dirname(__file__) + "/crash-override"
+RUNNER_PATH = os.path.dirname(__file__) + "/bin/run-job"
def make_cron(config_dir):
@@ -45,11 +38,13 @@
command = "{runner} {conf}".format(
runner=RUNNER_PATH,
conf=self.job.config_path)
+
+ template = self.job.global_config.get("cron_template")
- out = CRON_TEMPLATE.format(
+ out = template.format(
source=self.job.config_path,
schedule=self.job.config.get("schedule"),
- user=DEFAULT_USER,
+ user=self.job.config.get("user"),
command=command)
return out
diff --git a/processcontrol/job_wrapper.py b/processcontrol/job_wrapper.py
index 6b8423e..fefcf25 100644
--- a/processcontrol/job_wrapper.py
+++ b/processcontrol/job_wrapper.py
@@ -9,9 +9,6 @@
from . import lock
from . import mailer
-# FIXME: move to global config
-DEFAULT_TIMEOUT = 600
-
class JobWrapper(object):
def __init__(self, config_path=None):
@@ -22,11 +19,7 @@
self.name = self.config.get("name")
self.start_time = datetime.datetime.utcnow().isoformat()
self.mailer = mailer.Mailer(self.config)
-
- if self.config.has("timeout"):
- self.timeout = self.config.get("timeout")
- else:
- self.timeout = DEFAULT_TIMEOUT
+ self.timeout = self.config.get("timeout")
if self.config.has("disabled") and self.config.get("disabled") is True:
self.enabled = False
diff --git a/processcontrol/mailer.py b/processcontrol/mailer.py
index 35e3a07..08bb432 100644
--- a/processcontrol/mailer.py
+++ b/processcontrol/mailer.py
@@ -4,7 +4,8 @@
class Mailer(object):
def __init__(self, config):
- self.config = config
+ self.from_address = config.get("failmail/from_address")
+ self.to_address = config.get("failmail/to_address")
# FIXME: this is set to ensure one failmail per instance. Should
# do something more sophisticated to collect all calls and send
# the mail before exiting.
@@ -17,13 +18,13 @@
msg = MIMEText(body)
msg["Subject"] = "Fail Mail : " + subject
- msg["From"] = self.config.get("from_address")
- msg["To"] = self.config.get("to_address")
+ msg["From"] = self.from_address
+ msg["To"] = self.to_address
mailer = smtplib.SMTP("localhost")
mailer.sendmail(
- self.config.get("from_address"),
- self.config.get("to_address"),
+ self.from_address,
+ self.to_address,
msg.as_string()
)
mailer.quit()
--
To view, visit https://gerrit.wikimedia.org/r/344046
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I402b4f65af2c6a4e75edd5ebd787a2ebaf78c3cd
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/process-control
Gerrit-Branch: master
Gerrit-Owner: Ejegg <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits