Awight has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/343921 )

Change subject: Merge branch 'debian-packaging' of 
github.com:adamwight/process-control into debian-packaging
......................................................................

Merge branch 'debian-packaging' of github.com:adamwight/process-control into 
debian-packaging

Change-Id: Ifb70d4530512ba454a2c4450f6269c9ac788917f
---
M bin/cron-generate
M bin/run-job
M processcontrol/job_wrapper.py
M setup.py
4 files changed, 0 insertions(+), 99 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/process-control 
refs/changes/21/343921/1

diff --git a/bin/cron-generate b/bin/cron-generate
index 469035a..52655aa 100755
--- a/bin/cron-generate
+++ b/bin/cron-generate
@@ -3,7 +3,6 @@
 import sys
 
 import processcontrol.crontab
-<<<<<<< HEAD   (2a6dbe Debian packaging)
 
 
 def usage():
@@ -20,22 +19,3 @@
        config_dir = sys.argv[1]
 
        print(processcontrol.crontab.make_cron(config_dir))
-=======
-import processcontrol.job_wrapper
-
-
-def usage():
-       print("Must give a job description directory as the only argument.")
-
-
-if __name__ == "__main__":
-    # TODO: Parse CLI args.
-
-       if len(sys.argv) != 2:
-               usage()
-               sys.exit(-1)
-
-       config_dir = sys.argv[1]
-
-       print(crontab.make_cron(config_dir))
->>>>>>> BRANCH (469870 House modules under a package)
diff --git a/bin/run-job b/bin/run-job
index 95852da..8a35f6c 100755
--- a/bin/run-job
+++ b/bin/run-job
@@ -18,9 +18,5 @@
 
        conf_file = sys.argv[1]
 
-<<<<<<< HEAD   (2a6dbe Debian packaging)
        wrapper = processcontrol.job_wrapper.JobWrapper(config_path=conf_file)
-=======
-       wrapper = job_wrapper.JobWrapper(config_path=conf_file)
->>>>>>> BRANCH (469870 House modules under a package)
        wrapper.run()
diff --git a/processcontrol/job_wrapper.py b/processcontrol/job_wrapper.py
index 3d8e307..4c3cae6 100644
--- a/processcontrol/job_wrapper.py
+++ b/processcontrol/job_wrapper.py
@@ -7,7 +7,6 @@
 import yaml
 
 import lock
-<<<<<<< HEAD   (2a6dbe Debian packaging)
 import mailer
 
 # TODO: Global config.
@@ -80,72 +79,6 @@
         message = "Job {name} timed out after {timeout} 
seconds".format(name=self.name, timeout=self.timeout)
         print(message, file=sys.stderr)
         self.mailer.fail_mail(message)
-=======
-
-
-# TODO: Global config.
-DEFAULT_TIMEOUT = 600
-
-
-class JobWrapper(object):
-    def __init__(self, config_path=None):
-        self.config_path = config_path
-        self.config = yaml.safe_load(open(config_path, "r"))
-        self.validate_config()
-
-        self.name = self.config["name"]
-        self.start_time = datetime.datetime.utcnow().isoformat()
-
-        if "timeout" in self.config:
-            self.timeout = self.config["timeout"]
-        else:
-            self.timeout = DEFAULT_TIMEOUT
-
-        if "disabled" in self.config and self.config["disabled"] is True:
-            self.enabled = False
-        else:
-            self.enabled = True
-
-        if "schedule" not in self.config:
-            self.enabled = False
-
-    def run(self):
-        lock.begin(job_tag=self.name)
-
-        command = shlex.split(self.config["command"])
-
-        self.process = subprocess.Popen(command, stdout=subprocess.PIPE, 
stderr=subprocess.PIPE)
-        timer = threading.Timer(self.timeout, self.fail_timeout)
-        timer.start()
-
-        try:
-            # FIXME: This doesn't stream, so large output will be buffered in 
memory.
-            (stdout_data, stderr_data) = self.process.communicate()
-
-            self.store_job_output(stdout_data)
-
-            if len(stderr_data) > 0:
-                self.fail_has_stderr(stderr_data)
-        finally:
-            timer.cancel()
-            lock.end()
-
-        return_code = self.process.returncode
-        if return_code != 0:
-            self.fail_exitcode(return_code)
-
-    def fail_exitcode(self, return_code):
-        print("Job {name} failed with code {code}".format(name=self.name, 
code=return_code), file=sys.stderr)
-        # TODO: Prevent future jobs according to config.
-
-    def fail_has_stderr(self, stderr_data):
-        print("Job {name} printed things to stderr:".format(name=self.name), 
file=sys.stderr)
-        print(stderr_data.decode("utf-8"), file=sys.stderr)
-
-    def fail_timeout(self):
-        self.process.kill()
-        print("Job {name} timed out after {timeout} 
seconds".format(name=self.name, timeout=self.timeout), file=sys.stderr)
->>>>>>> BRANCH (469870 House modules under a package)
         # FIXME: Job will return SIGKILL now, fail_exitcode should ignore that 
signal now?
 
     def store_job_output(self, stdout_data):
diff --git a/setup.py b/setup.py
index 3b2df76..306aeea 100755
--- a/setup.py
+++ b/setup.py
@@ -8,15 +8,7 @@
     author='Adam Roses Wight',
     author_email='awi...@wikimedia.org',
     url='https://github.com/adamwight/process-control',
-<<<<<<< HEAD   (2a6dbe Debian packaging)
-    py_modules=[
-        'crontab',
-        'job_wrapper',
-        'lock',
-    ],
-=======
     packages=['processcontrol'],
->>>>>>> BRANCH (469870 House modules under a package)
     scripts=[
         'bin/cron-generate',
         'bin/run-job',

-- 
To view, visit https://gerrit.wikimedia.org/r/343921
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifb70d4530512ba454a2c4450f6269c9ac788917f
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/process-control
Gerrit-Branch: master
Gerrit-Owner: Awight <awi...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to