fix #1625 where ImageCollection.build() could return early with incorrect image_id depending on docer build output Signed-off-by: Chris Ottinger <chris.ottinger@team.telstra.com>

This commit is contained in:
Chris Ottinger 2017-05-27 00:21:19 +10:00
parent dc2b24dcdd
commit 45aec93089
1 changed files with 4 additions and 3 deletions

View File

@ -169,19 +169,20 @@ class ImageCollection(Collection):
if isinstance(resp, six.string_types):
return self.get(resp)
last_event = None
image_id = None
for chunk in json_stream(resp):
if 'error' in chunk:
raise BuildError(chunk['error'])
if 'stream' in chunk:
match = re.search(
r'(Successfully built |sha256:)([0-9a-f]+)',
r'(^Successfully built |sha256:)([0-9a-f]+)$',
chunk['stream']
)
if match:
image_id = match.group(2)
return self.get(image_id)
last_event = chunk
if image_id:
return self.get(image_id)
raise BuildError(last_event or 'Unknown')
def get(self, name):