From 71f7328aa45339b0a15a7f4076bb7bcfe1a6d98b Mon Sep 17 00:00:00 2001 From: Pedro Alvarez Date: Tue, 29 Mar 2016 10:36:25 +0000 Subject: WIP comunication to client Change-Id: I64d639ba9e5935e0351d4363588e64edb6e94087 --- gear/client.py | 1 + gear/controller.py | 15 +++++++++++---- 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" -- cgit v1.2.1