diff options
Diffstat (limited to 'morphlib/builder.py')
-rw-r--r-- | morphlib/builder.py | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/morphlib/builder.py b/morphlib/builder.py index b0c95bb3..44e26d06 100644 --- a/morphlib/builder.py +++ b/morphlib/builder.py @@ -28,7 +28,6 @@ import tempfile import cliapp import morphlib -from morphlib.artifactcachereference import ArtifactCacheReference from morphlib.util import error_message_for_containerised_commandline import morphlib.gitversion @@ -558,29 +557,12 @@ class SystemBuilder(BuilderBase): # pragma: no cover self.save_build_times() return self.source.artifacts.itervalues() - def load_stratum(self, stratum_artifact): - '''Load a stratum from the local artifact cache. - - Returns a list of ArtifactCacheReference instances for the chunks - contained in the stratum. - - ''' - cache = self.local_artifact_cache - with open(cache.get(stratum_artifact), 'r') as stratum_file: - try: - artifact_list = json.load(stratum_file, - encoding='unicode-escape') - except ValueError as e: - raise cliapp.AppException( - 'Corruption detected: %s while loading %s' % - (e, cache.artifact_filename(stratum_artifact))) - return [ArtifactCacheReference(a) for a in artifact_list] - def unpack_one_stratum(self, stratum_artifact, target): '''Unpack a single stratum into a target directory''' cache = self.local_artifact_cache - for chunk in self.load_stratum(stratum_artifact): + chunks = morphlib.util.get_stratum_contents(cache, stratum_artifact) + for chunk in chunks: self.app.status(msg='Checkout chunk %(basename)s', basename=chunk.basename(), chatty=True) cache.get(chunk, target) @@ -606,7 +588,8 @@ class SystemBuilder(BuilderBase): # pragma: no cover # download the chunk artifacts if necessary for stratum_artifact in self.source.dependencies: - chunks = self.load_stratum(stratum_artifact) + chunks = morphlib.util.get_stratum_contents( + self.local_artifact_cache, stratum_artifact) download_depends(chunks, self.local_artifact_cache, self.remote_artifact_cache) |