From f25aa728184e0b63998f0c1d8a37df5a2e449568 Mon Sep 17 00:00:00 2001 From: Richard Ipsum Date: Wed, 23 Apr 2014 16:05:39 +0100 Subject: WorkerBuildQueuer: Use job's artifact and id Each job is given a unique id, so we don't need to generate an id for each exec request this means we can remove use of route map since we can use the job's id for the exec request --- distbuild/worker_build_scheduler.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/distbuild/worker_build_scheduler.py b/distbuild/worker_build_scheduler.py index d8b1ae93..e58cfb11 100644 --- a/distbuild/worker_build_scheduler.py +++ b/distbuild/worker_build_scheduler.py @@ -343,31 +343,34 @@ class WorkerConnection(distbuild.StateMachine): def _start_build(self, event_source, event): distbuild.crash_point() - self._artifact = event.artifact - self._initiator_id = event.initiator_id + self._job = event.job + self._helper_id = None + self._exec_response_msg = None + logging.debug('WC: starting build: %s for %s' % - (self._artifact.name, self._initiator_id)) + (self._job.artifact.name, self._job.initiators)) argv = [ self._morph_instance, 'worker-build', - self._artifact.name, + self._job.artifact.name, ] msg = distbuild.message('exec-request', - id=self._request_ids.next(), + id=self._job.id, argv=argv, - stdin_contents=distbuild.serialise_artifact(self._artifact), + stdin_contents=distbuild.serialise_artifact(self._job.artifact), ) self._jm.send(msg) - logging.debug('WC: sent to worker %s: %r' % (self._worker_name, msg)) - self._route_map.add(self._initiator_id, msg['id']) - self._initiator_request_map[self._initiator_id].add(msg['id']) - logging.debug( - 'WC: route map from %s to %s', - self._artifact.cache_key, msg['id']) - started = WorkerBuildStepStarted( - self._initiator_id, self._artifact.cache_key, self.name()) + if self._debug_json: + logging.debug('WC: sent to worker %s: %r' + % (self._worker_name, msg)) + + started = WorkerBuildStepStarted(self._job.initiators, + self._job.artifact.cache_key, self.name()) + + self._job.is_building = True + self.mainloop.queue_event(WorkerConnection, started) def _handle_json_message(self, event_source, event): -- cgit v1.2.1