Fix the kolla_docker issue with docker 1.12
After docker 1.12, the RepoTags will be None rather than [] in the image list API. This PS will handle the both case. Change-Id: Ie2da44b44229c2f190550755b50876f607f9cc0c Closes-Bug: #1608358
This commit is contained in:
parent
e5ca547f37
commit
ae34973d35
@ -242,7 +242,10 @@ class DockerWorker(object):
|
||||
def check_image(self):
|
||||
find_image = ':'.join(self.parse_image())
|
||||
for image in self.dc.images():
|
||||
for image_name in image['RepoTags']:
|
||||
repo_tags = image.get('RepoTags')
|
||||
if not repo_tags:
|
||||
continue
|
||||
for image_name in repo_tags:
|
||||
if image_name == find_image:
|
||||
return image
|
||||
|
||||
|
@ -388,6 +388,28 @@ class TestImage(base.BaseTestCase):
|
||||
self.dw.dc.images.assert_called_once_with()
|
||||
self.assertEqual(self.fake_data['images'][0], return_data)
|
||||
|
||||
def test_check_image_before_docker_1_12(self):
|
||||
self.dw = get_DockerWorker(
|
||||
{'image': 'myregistrydomain.com:5000/centos:7.0'})
|
||||
self.fake_data['images'][0]['RepoTags'] = []
|
||||
self.dw.dc.images.return_value = self.fake_data['images']
|
||||
|
||||
return_data = self.dw.check_image()
|
||||
self.assertFalse(self.dw.changed)
|
||||
self.dw.dc.images.assert_called_once_with()
|
||||
self.assertEqual(self.fake_data['images'][1], return_data)
|
||||
|
||||
def test_check_image_docker_1_12(self):
|
||||
self.dw = get_DockerWorker(
|
||||
{'image': 'myregistrydomain.com:5000/centos:7.0'})
|
||||
self.fake_data['images'][0]['RepoTags'] = None
|
||||
self.dw.dc.images.return_value = self.fake_data['images']
|
||||
|
||||
return_data = self.dw.check_image()
|
||||
self.assertFalse(self.dw.changed)
|
||||
self.dw.dc.images.assert_called_once_with()
|
||||
self.assertEqual(self.fake_data['images'][1], return_data)
|
||||
|
||||
def test_compare_image(self):
|
||||
self.dw = get_DockerWorker(
|
||||
{'image': 'myregistrydomain.com:5000/ubuntu:16.04'})
|
||||
|
Loading…
Reference in New Issue
Block a user