diff options
author | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2012-03-01 14:39:27 +0000 |
---|---|---|
committer | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2012-03-02 17:13:29 +0000 |
commit | 8c9369d86d0168e9509ec06d7bb5f4f9b5e82311 (patch) | |
tree | 23858d7aafdc1aa332bc040bd306bc987ff76745 /morphlib/builder.py | |
parent | 3cb0e37549a360135030ed96357b9c01b93a9184 (diff) | |
download | morph-8c9369d86d0168e9509ec06d7bb5f4f9b5e82311.tar.gz |
Simplify how BlobBuilder.builds gets implemented/inherited
It needs to be different for each subclass, yet SystemBuilder was
sharing the implementation with ChunkBuilder, which worked, but only
by happenstance. Now each class has their own implementation and the
base class has a NotImplemented implementation.
Diffstat (limited to 'morphlib/builder.py')
-rw-r--r-- | morphlib/builder.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/morphlib/builder.py b/morphlib/builder.py index a158a3ea..ed7b4378 100644 --- a/morphlib/builder.py +++ b/morphlib/builder.py @@ -171,10 +171,7 @@ class BlobBuilder(object): # pragma: no cover self.logfile.write('%s\n' % text) def builds(self): - ret = {} - for chunk_name in self.blob.chunks: - ret[chunk_name] = self.filename(chunk_name) - return ret + raise NotImplemented() def build(self): self.prepare_logfile() @@ -275,6 +272,12 @@ class ChunkBuilder(BlobBuilder): # pragma: no cover }, } + def builds(self): + ret = {} + for chunk_name in self.blob.chunks: + ret[chunk_name] = self.filename(chunk_name) + return ret + def do_build(self): self.msg('Creating build tree at %s' % self.builddir) @@ -495,6 +498,9 @@ class StratumBuilder(BlobBuilder): # pragma: no cover class SystemBuilder(BlobBuilder): # pragma: no cover + def builds(self): + return {} + def do_build(self): self.ex = morphlib.execute.Execute(self.tempdir.dirname, self.msg) |