summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alvarez <pedro.alvarez@codethink.co.uk>2016-03-29 10:36:25 +0000
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2016-03-29 10:36:25 +0000
commit71f7328aa45339b0a15a7f4076bb7bcfe1a6d98b (patch)
tree85c023d3080ad1998581ede4cb3660b78dc27031
parent15c3e24302d176b5f582ad0f06270dd87c7f5655 (diff)
downloadmorph-71f7328aa45339b0a15a7f4076bb7bcfe1a6d98b.tar.gz
WIP comunication to client
Change-Id: I64d639ba9e5935e0351d4363588e64edb6e94087
-rw-r--r--gear/client.py1
-rw-r--r--gear/controller.py15
2 files changed, 12 insertions, 4 deletions
diff --git a/gear/client.py b/gear/client.py
index 29c0df93..cfbc912d 100644
--- a/gear/client.py
+++ b/gear/client.py
@@ -40,6 +40,7 @@ class GearRequestClient(gear.Client):
def handleWorkData(self, packet):
job = super(GearRequestClient, self).handleWorkData(packet)
+ print job.data[-1]
job.data = []
return job
diff --git a/gear/controller.py b/gear/controller.py
index 9dc1df60..dd3a1499 100644
--- a/gear/controller.py
+++ b/gear/controller.py
@@ -276,7 +276,7 @@ class RequestsController(threading.Thread):
self.build_status_lock = threading.Lock()
self.stopped = False
- def add_request(self, request):
+ def add_request(self, request, job=None):
json_request = json.dumps(request)
print "DEBUG: adding request - %s" % json_request
request_data = {}
@@ -286,6 +286,7 @@ class RequestsController(threading.Thread):
# TODO: is this the right place to do this?
request_data['controller'].start_build(json_request)
request_data['request'] = request
+ request_data['job'] = job
self.next_id += 1
self.build_requests.append(request_data)
@@ -312,11 +313,16 @@ class RequestsController(threading.Thread):
artifacts = request['controller']._find_artifacts(cache_key)
for artifact in artifacts:
artifact.state = BUILT
- print "TO %s: Artifact %s built" % (request['id'],artifact.name)
+ info = "TO %s: Artifact %s built" % (request['id'], artifact.name)
+ self.send_data_to_client(request['job'], info)
with self.lock_queue:
self.lock_queue.notify()
+ def send_data_to_client(self, job, msg):
+ if job:
+ job.sendWorkData(msg)
+ print msg
def mark_as_building(self, cache_key):
with self.build_status_lock:
@@ -328,7 +334,8 @@ class RequestsController(threading.Thread):
artifacts = request['controller']._find_artifacts(cache_key)
for artifact in artifacts:
artifact.state = BUILDING
- print "TO %s: Artifact %s building" % (request['id'],artifact.name)
+ info = "TO %s: Artifact %s building" % (request['id'],artifact.name)
+ self.send_data_to_client(request['job'], info)
def shutdown(self):
self.stopped = True
@@ -367,7 +374,7 @@ class RequestsManager(threading.Thread):
def _handle_job(self, job):
build_request=json.loads(job.arguments)
- self.requests_controller.add_request(build_request)
+ self.requests_controller.add_request(build_request, job)
request = {}
request['repo'] = "baserock:baserock/definitions"