import gear import sys import json import distbuild gear.Server() class aGearmanClient(gear.Client): def __init__(self): super(aGearmanClient, self).__init__() print "init" self.finished = False def handleWorkComplete(self, packet): job = super(aGearmanClient, self).handleWorkComplete(packet) print "workcomplete" self.finished = True artifact = distbuild.decode_artifact_reference(job.data[-1]) print artifact.dependencies[0].dependencies return job def handleWorkData(self, packet): job = super(aGearmanClient, self).handleWorkData(packet) print job.data[-1] job.data = [] return job def handleWorkFail(self, packet): job = super(aGearmanClient, self).handleWorkFail(packet) print "workfail" return job def handleWorkException(self, packet): job = super(aGearmanClient, self).handleWorkException(packet) print "workexception" return job def handleDisconnect(self, job): job = super(aGearmanClient, self).handleDisconnect(job) print "disconnect" client = aGearmanClient() client.addServer('localhost') client.waitForServer() # Wait for at least one server to be connected print "server connected" #job = gear.Job("reverse", "test string") build_graph_request = {} build_graph_request['repo'] = "baserock:baserock/definitions" build_graph_request['ref'] = "master" build_graph_request['system'] = "systems/minimal-system-x86_64-generic.morph" s=json.dumps(build_graph_request) print s print "json produced" job = gear.Job("build-graph", s) client.submitJob(job) # loop so that client doesn't die while True: import time time.sleep(2)