From 076166fd200b3e21772e7fb834416b39ee383b60 Mon Sep 17 00:00:00 2001 From: Eric Nichols Date: Fri, 17 Feb 2017 14:14:40 -0700 Subject: [PATCH] fix docker build output parser to handle multiple lines per loop and update docker-py to docker for newer API support --- dmake/build.py | 19 ++++++++++--------- dmake/utils.py | 2 +- requirements.pip | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/dmake/build.py b/dmake/build.py index 0e3b24c..8696133 100644 --- a/dmake/build.py +++ b/dmake/build.py @@ -212,15 +212,16 @@ def _attach_labels(self): def _do_build(self, params): response = self.docker.build(**params) image_id = None - for line in response: - ret = json.loads(line) - if 'stream' in ret: - msg = ret['stream'] - LOG.debug("%s: %s" % (self.name, msg)) - if 'errorDetail' in ret: - raise BuildFailed(ret['errorDetail']['message']) - if 'Successfully built' in ret.get('stream', ''): - image_id = ret['stream'].strip().split()[-1] + for data in response: + for line in data.splitlines(): + ret = json.loads(line) + if 'stream' in ret: + msg = ret['stream'] + LOG.debug("%s: %s" % (self.name, msg)) + if 'errorDetail' in ret: + raise BuildFailed(ret['errorDetail']['message']) + if 'Successfully built' in ret.get('stream', ''): + image_id = ret['stream'].strip().split()[-1] return image_id def _do_push(self, repo, tag): diff --git a/dmake/utils.py b/dmake/utils.py index c951dd3..f088169 100644 --- a/dmake/utils.py +++ b/dmake/utils.py @@ -41,7 +41,7 @@ def docker_client(): if _docker is None: params = docker_utils.kwargs_from_env() params['version'] = 'auto' - _docker = docker.client.Client(**params) + _docker = docker.api.client.APIClient(**params) return _docker diff --git a/requirements.pip b/requirements.pip index f3e0d18..626f624 100644 --- a/requirements.pip +++ b/requirements.pip @@ -1,2 +1,2 @@ PyYAML >= 3.10, < 4 -docker-py >= 1.8.1, < 2 +docker >= 2.1.0, < 3