aboutsummaryrefslogtreecommitdiff
path: root/kolla
diff options
context:
space:
mode:
authorMichal Nasiadka <michal.nasiadka@nokia.com>2018-05-16 10:24:56 +0200
committerMichal Nasiadka <michal.nasiadka@nokia.com>2018-05-16 15:17:46 +0200
commit4c91f67662171989f1297113db9cc131a3e05dc6 (patch)
tree3a00a3caebe09e21e4c3450a0db8994070e4ed11 /kolla
parent42117a49e3b8730c106533e1c30f0fa248e01e93 (diff)
downloadkolla-4c91f67662171989f1297113db9cc131a3e05dc6.tar.gz
kolla-4c91f67662171989f1297113db9cc131a3e05dc6.zip
Fix image push for python3
Rework push_image function to use docker client push function with decode=True, to decode automatically to dict. Change-Id: I28d38e968c3809a1074347271e49dc07dc861f11 Closes-Bug: 1771514
Diffstat (limited to 'kolla')
-rwxr-xr-xkolla/image/build.py11
-rw-r--r--kolla/tests/test_build.py5
2 files changed, 8 insertions, 8 deletions
diff --git a/kolla/image/build.py b/kolla/image/build.py
index cd59aa260..db388b32b 100755
--- a/kolla/image/build.py
+++ b/kolla/image/build.py
@@ -338,7 +338,7 @@ class PushTask(DockerTask):
self.success = False
def push_image(self, image):
- kwargs = dict(stream=True)
+ kwargs = dict(stream=True, decode=True)
# Since docker 3.0.0, the argument of 'insecure_registry' is removed.
# To be compatible, set 'insecure_registry=True' for old releases.
@@ -347,12 +347,11 @@ class PushTask(DockerTask):
kwargs['insecure_registry'] = True
for response in self.dc.push(image.canonical_name, **kwargs):
- stream = json.loads(response)
- if 'stream' in stream:
- self.logger.info(stream['stream'])
- elif 'errorDetail' in stream:
+ if 'stream' in response:
+ self.logger.info(response['stream'])
+ elif 'errorDetail' in response:
image.status = STATUS_ERROR
- self.logger.error(stream['errorDetail']['message'])
+ self.logger.error(response['errorDetail']['message'])
class BuildTask(DockerTask):
diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py
index 9c3dc8abd..d5c7e77dc 100644
--- a/kolla/tests/test_build.py
+++ b/kolla/tests/test_build.py
@@ -65,7 +65,8 @@ class TasksTest(base.TestCase):
pusher = build.PushTask(self.conf, self.image)
pusher.run()
mock_client().push.assert_called_once_with(
- self.image.canonical_name, stream=True, insecure_registry=True)
+ self.image.canonical_name, decode=True,
+ stream=True, insecure_registry=True)
@mock.patch('docker.version', '3.0.0')
@mock.patch.dict(os.environ, clear=True)
@@ -75,7 +76,7 @@ class TasksTest(base.TestCase):
pusher = build.PushTask(self.conf, self.image)
pusher.run()
mock_client().push.assert_called_once_with(
- self.image.canonical_name, stream=True)
+ self.image.canonical_name, decode=True, stream=True)
@mock.patch.dict(os.environ, clear=True)
@mock.patch('docker.APIClient')