summaryrefslogtreecommitdiff
path: root/gear/worker.py
diff options
context:
space:
mode:
Diffstat (limited to 'gear/worker.py')
-rw-r--r--gear/worker.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/gear/worker.py b/gear/worker.py
new file mode 100644
index 00000000..1c02a112
--- /dev/null
+++ b/gear/worker.py
@@ -0,0 +1,31 @@
+import gear
+worker = gear.Worker('reverser')
+worker.addServer('localhost')
+worker.registerFunction("reverse")
+worker.registerFunction("build-graph")
+import time
+import json
+from subprocess import Popen, PIPE, STDOUT
+
+
+while True:
+ print "waiting for job"
+ job = worker.getJob()
+ print "received job"
+ if job.name == "reverse":
+ for x in range(0, 100000):
+ job.sendWorkData("This is: %s" % x)
+ job.sendWorkComplete("answer")
+ elif job.name == "build-graph":
+ bg_request=json.loads(job.arguments)
+ print "build graph!!!"
+ print bg_request['repo']
+ print bg_request['ref']
+ print bg_request['system']
+ cmd = ['morph', 'calculate-build-graph', '--quiet', bg_request['repo'], bg_request['ref'], bg_request['system']]
+ print cmd
+ p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
+ output = p.stdout.read()
+ print "finished computing build graph"
+ job.sendWorkComplete(output)
+