diff options
Diffstat (limited to 'distbuild/worker_build_scheduler.py')
-rw-r--r-- | distbuild/worker_build_scheduler.py | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/distbuild/worker_build_scheduler.py b/distbuild/worker_build_scheduler.py index 833d5587..64a547cc 100644 --- a/distbuild/worker_build_scheduler.py +++ b/distbuild/worker_build_scheduler.py @@ -276,7 +276,8 @@ class WorkerBuildQueuer(distbuild.StateMachine): self.mainloop.queue_event(WorkerConnection, progress) else: logging.debug('WBQ: Creating job for: %s' % event.artifact.name) - job = self._jobs.create(event.root_artifact, event.artifact, event.initiator_id) + job = self._jobs.create(event.root_artifact, event.artifact, + event.initiator_id) if self._available_workers: self._give_job(job) @@ -476,26 +477,27 @@ class WorkerConnection(distbuild.StateMachine): '--build-log-on-stdout', ] - repo = job.root_artifact.repo_name - original_ref = job.root_artifact.original_ref - sha1 = job.root_artifact.sha1 - system_morph = job.root_artifact.filename + repo = job.root_artifact.source.repo_name + original_ref = job.root_artifact.source.original_ref + sha1 = job.root_artifact.source.sha1 + system_morph = job.root_artifact.source.filename - argv.extend([definitions_repo, repo, original_ref, sha1, system_morph]) + argv.extend([repo, original_ref, sha1, system_morph]) def find_stratum_for_chunk_artifact(root_artifact, chunk): # FIXME: This is horribly inefficient. strata = {a.source for a in root_artifact.walk() - if a.source.kind == 'source'} + if a.source.morphology['kind'] == 'stratum'} for stratum in strata: for dep in stratum.dependencies: - if dep.source.kind == 'chunk' and dep.source == chunk: - return stratum + if dep.source.morphology['kind'] == 'chunk': + if dep.source == chunk.source: + return stratum raise KeyError('Didn\'t find stratum for chunk %s' % chunk) - if job.artifact.source.kind == 'stratum': + if job.artifact.source.morphology['kind'] == 'stratum': argv.append(job.artifact.source.name) - elif job.artifact.source.kind == 'chunk': + elif job.artifact.source.morphology['kind'] == 'chunk': stratum = find_stratum_for_chunk_artifact(job.root_artifact, job.artifact) argv.append(stratum.name) @@ -504,6 +506,7 @@ class WorkerConnection(distbuild.StateMachine): msg = distbuild.message('exec-request', id=self._job.id, argv=argv, + stdin_contents='', ) self._jm.send(msg) |