summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Coldrick <adam.coldrick@codethink.co.uk>2015-03-10 10:17:00 +0000
committerAdam Coldrick <adam.coldrick@codethink.co.uk>2015-03-10 15:13:34 +0000
commit302ad6d43515ff73e9ae329d88e31a1c9792680f (patch)
treefb80dc6b68da4771fac469384572e7a7315c164a
parent65b28f8bbeba0ad46dbd1a07159a7e87e3970909 (diff)
downloadmorph-302ad6d43515ff73e9ae329d88e31a1c9792680f.tar.gz
WIP: Changes to worker_build_scheduler
-rw-r--r--distbuild/worker_build_scheduler.py37
1 files changed, 20 insertions, 17 deletions
diff --git a/distbuild/worker_build_scheduler.py b/distbuild/worker_build_scheduler.py
index 4f7ff98f..e3c7f1db 100644
--- a/distbuild/worker_build_scheduler.py
+++ b/distbuild/worker_build_scheduler.py
@@ -271,13 +271,13 @@ class WorkerBuildQueuer(distbuild.StateMachine):
logging.debug('Worker build step already started: %s' %
event.artifact.basename())
progress = WorkerBuildStepAlreadyStarted(event.initiator_id,
- event.artifact.source.cache_key, job.who.name())
+ event.artifact.cache_key, job.who.name())
else:
logging.debug('Job created but not building yet '
'(waiting for a worker to become available): %s' %
event.artifact.basename())
progress = WorkerBuildWaiting(event.initiator_id,
- event.artifact.source.cache_key)
+ event.artifact.cache_key)
self.mainloop.queue_event(WorkerConnection, progress)
else:
@@ -288,7 +288,7 @@ class WorkerBuildQueuer(distbuild.StateMachine):
self._give_job(job)
else:
progress = WorkerBuildWaiting(event.initiator_id,
- event.artifact.source.cache_key)
+ event.artifact.cache_key)
self.mainloop.queue_event(WorkerConnection, progress)
def _handle_cancel(self, event_source, event):
@@ -496,12 +496,17 @@ class WorkerConnection(distbuild.StateMachine):
self._morph_instance,
'worker-build',
'--build-log-on-stdout',
- self._job.artifact.name,
+ self._job.artifact.name
]
+
+
+ serialised = distbuild.serialise_artifact(self._job.artifact,
+ self._job.artifact.repo,
+ self._job.artifact.ref)
msg = distbuild.message('exec-request',
id=self._job.id,
argv=argv,
- stdin_contents=distbuild.serialise_artifact(self._job.artifact),
+ stdin_contents=serialised,
)
self._jm.send(msg)
@@ -510,7 +515,7 @@ class WorkerConnection(distbuild.StateMachine):
% (self._worker_name, msg))
started = WorkerBuildStepStarted(self._job.initiators,
- self._job.artifact.source.cache_key, self.name())
+ self._job.artifact.cache_key, self.name())
self.mainloop.queue_event(WorkerConnection, _JobStarted(self._job))
self.mainloop.queue_event(WorkerConnection, started)
@@ -537,7 +542,7 @@ class WorkerConnection(distbuild.StateMachine):
logging.debug('WC: emitting: %s', repr(new))
self.mainloop.queue_event(
WorkerConnection,
- WorkerBuildOutput(new, self._job.artifact.source.cache_key))
+ WorkerBuildOutput(new, self._job.artifact.cache_key))
def _handle_exec_response(self, msg):
logging.debug('WC: finished building: %s' % self._job.artifact.name)
@@ -549,8 +554,7 @@ class WorkerConnection(distbuild.StateMachine):
if new['exit'] != 0:
# Build failed.
- new_event = WorkerBuildFailed(new,
- self._job.artifact.source.cache_key)
+ new_event = WorkerBuildFailed(new, self._job.artifact.cache_key)
self.mainloop.queue_event(WorkerConnection, new_event)
self.mainloop.queue_event(WorkerConnection, _JobFailed(self._job))
self.mainloop.queue_event(self, _BuildFailed())
@@ -571,12 +575,11 @@ class WorkerConnection(distbuild.StateMachine):
logging.debug('Requesting shared artifact cache to get artifacts')
- kind = self._job.artifact.source.morphology['kind']
+ kind = self._job.artifact.kind
if kind == 'chunk':
- source_artifacts = self._job.artifact.source.artifacts
-
- suffixes = ['%s.%s' % (kind, name) for name in source_artifacts]
+ source_artifacts = self._job.artifact.source_artifacts
+ suffixes = ['%s.%s' % (kind, a) for a in source_artifacts]
suffixes.append('build-log')
else:
filename = '%s.%s' % (kind, self._job.artifact.name)
@@ -595,7 +598,7 @@ class WorkerConnection(distbuild.StateMachine):
'/1.0/fetch?host=%s:%d&cacheid=%s&artifacts=%s' %
(urllib.quote(worker_host),
self._worker_cache_server_port,
- urllib.quote(self._job.artifact.source.cache_key),
+ urllib.quote(self._job.artifact.cache_key),
suffixes))
msg = distbuild.message(
@@ -606,7 +609,7 @@ class WorkerConnection(distbuild.StateMachine):
self.mainloop.queue_event(distbuild.HelperRouter, req)
progress = WorkerBuildCaching(self._job.initiators,
- self._job.artifact.source.cache_key)
+ self._job.artifact.cache_key)
self.mainloop.queue_event(WorkerConnection, progress)
def _maybe_handle_helper_result(self, event_source, event):
@@ -619,7 +622,7 @@ class WorkerConnection(distbuild.StateMachine):
new_event = WorkerBuildFinished(
self._exec_response_msg,
- self._job.artifact.source.cache_key)
+ self._job.artifact.cache_key)
self.mainloop.queue_event(WorkerConnection, new_event)
self.mainloop.queue_event(self, _Cached())
else:
@@ -638,7 +641,7 @@ class WorkerConnection(distbuild.StateMachine):
new_event = WorkerBuildFailed(
self._exec_response_msg,
- self._job.artifact.source.cache_key)
+ self._job.artifact.cache_key)
self.mainloop.queue_event(WorkerConnection, new_event)
self.mainloop.queue_event(self, _BuildFailed())