Merge "Fix image push for python3"

This commit is contained in:
Zuul 2018-05-30 14:39:01 +00:00 committed by Gerrit Code Review
commit ba57c8b8b3
2 changed files with 8 additions and 8 deletions

View File

@ -341,7 +341,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.
@ -350,12 +350,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):

View File

@ -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')