summaryrefslogtreecommitdiff
path: root/morphlib/buildcommand.py
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2015-05-13 16:46:34 +0000
committerAdam Coldrick <adam.coldrick@codethink.co.uk>2015-05-14 12:08:52 +0000
commit1da8ee6f66718de5d5dd413e188425ee4bdcfb47 (patch)
treefd2aba3c1437818d8012549d3cc025839c293bf1 /morphlib/buildcommand.py
parentd7e86046706680828b141a21a77ab95419dfb58f (diff)
downloadmorph-1da8ee6f66718de5d5dd413e188425ee4bdcfb47.tar.gz
Fix prototype of create_source_pool()
This fixes an issue in `morph list-artifacts` and probably other commands: ERROR: Command failed: morph list-artifacts --quiet file:///ws/master/git.baserock.org/baserock/baserock/definitions HEAD systems/build-system-armv7lhf-jetson.morph systems/weston-system-armv7lhf-jetson.morph systems/genivi-baseline-system-armv7lhf-jetson.morph Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/cliapp/app.py", line 190, in _run self.process_args(args) File "/usr/lib/python2.7/site-packages/morphlib/app.py", line 290, in process_args cliapp.Application.process_args(self, args) File "/usr/lib/python2.7/site-packages/cliapp/app.py", line 539, in process_args method(args[1:]) File "/usr/lib/python2.7/site-packages/morphlib/plugins/list_artifacts_plugin.py", line 67, in list_artifacts repo, ref, system_filename) File "/usr/lib/python2.7/site-packages/morphlib/plugins/list_artifacts_plugin.py", line 91, in list_artifacts_for_system status_cb=self.app.status) File "/usr/lib/python2.7/site-packages/morphlib/sourceresolver.py", line 641, in create_source_pool definitions_original_ref=original_ref) File "/usr/lib/python2.7/site-packages/morphlib/sourceresolver.py", line 583, in traverse_morphs definitions_absref, definitions_tree, visit) File "/usr/lib/python2.7/site-packages/morphlib/sourceresolver.py", line 408, in _process_definitions_with_children definitions_queue = collections.deque(system_filenames) TypeError: 'NoneType' object is not iterable The issue is that the sourceresolver.create_source_pool() function did not work correctly if passed a single filename. This was a regression from commit 4cc75039a78bd8aef9ef464bc0eb6c3ff16809d0. In order to have a logical function prototype, the create_source_pool() function now only takes a list of systems, instead of taking either a single system or a list. Change-Id: I8f5ec8859a7e26d8107ed1c268fe925818d080a5
Diffstat (limited to 'morphlib/buildcommand.py')
-rw-r--r--morphlib/buildcommand.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/morphlib/buildcommand.py b/morphlib/buildcommand.py
index c5d86a08..46c3104f 100644
--- a/morphlib/buildcommand.py
+++ b/morphlib/buildcommand.py
@@ -58,7 +58,7 @@ class BuildCommand(object):
self.app.status(msg='Deciding on task order')
srcpool = self.create_source_pool(
- repo_name, ref, filename, original_ref)
+ repo_name, ref, [filename], original_ref)
self.validate_sources(srcpool)
root_artifact = self.resolve_artifacts(srcpool)
self.build_in_order(root_artifact)
@@ -84,8 +84,8 @@ class BuildCommand(object):
return morphlib.buildenvironment.BuildEnvironment(self.app.settings,
arch)
- def create_source_pool(self, repo_name, ref, filename=None,
- original_ref=None, filenames=None):
+ def create_source_pool(self, repo_name, ref, filenames,
+ original_ref=None):
'''Find the source objects required for building a the given artifact
The SourcePool will contain every stratum and chunk dependency of the
@@ -94,14 +94,12 @@ class BuildCommand(object):
'''
self.app.status(msg='Creating source pool', chatty=True)
- if filenames is None and filename is not None:
- filenames = (filename,)
srcpool = morphlib.sourceresolver.create_source_pool(
- self.lrc, self.rrc, repo_name, ref, filename=None,
+ self.lrc, self.rrc, repo_name, ref, filenames,
cachedir=self.app.settings['cachedir'],
original_ref=original_ref,
update_repos=not self.app.settings['no-git-update'],
- status_cb=self.app.status, filenames=filenames)
+ status_cb=self.app.status)
return srcpool
def validate_sources(self, srcpool):