Merge "Be specific about protected being bool"

This commit is contained in:
Jenkins 2016-11-15 01:31:24 +00:00 committed by Gerrit Code Review
commit cfeb8c4e77
2 changed files with 35 additions and 3 deletions

View File

@ -3103,11 +3103,11 @@ class OpenStackCloud(_normalize.Normalizer):
for k, v in iter(properties.items()):
if k in ('min_disk', 'min_ram', 'size', 'virtual_size'):
ret[k] = int(v)
elif k == 'protected':
ret[k] = v
else:
if v is None:
ret[k] = None
elif isinstance(v, bool):
ret[k] = v
else:
ret[k] = str(v)
ret.update(meta)

View File

@ -507,6 +507,36 @@ class TestMemoryCache(base.TestCase):
fake_image_dict = self._image_dict(fake_image)
self.assertEqual([fake_image_dict], self.cloud.list_images())
@mock.patch.object(occ.cloud_config.CloudConfig, 'get_api_version')
@mock.patch.object(shade.OpenStackCloud, 'glance_client')
def test_create_image_put_protected(self, glance_mock, mock_api_version):
mock_api_version.return_value = '2'
self.cloud.image_api_use_tasks = False
glance_mock.images.list.return_value = []
self.assertEqual([], self.cloud.list_images())
fake_image = fakes.FakeImage('42', '42 name', 'success')
glance_mock.images.create.return_value = fake_image
glance_mock.images.list.return_value = [fake_image]
self._call_create_image(
'42 name', min_disk='0', min_ram=0, properties={'int_v': 12345},
protected=False)
args = {'name': '42 name',
'container_format': 'bare', 'disk_format': u'qcow2',
'owner_specified.shade.md5': mock.ANY,
'owner_specified.shade.sha256': mock.ANY,
'owner_specified.shade.object': 'images/42 name',
'protected': False,
'int_v': '12345',
'visibility': 'private',
'min_disk': 0, 'min_ram': 0}
glance_mock.images.create.assert_called_with(**args)
glance_mock.images.upload.assert_called_with(
image_data=mock.ANY, image_id=fake_image.id)
fake_image_dict = self._image_dict(fake_image)
self.assertEqual([fake_image_dict], self.cloud.list_images())
@mock.patch.object(occ.cloud_config.CloudConfig, 'get_api_version')
@mock.patch.object(shade.OpenStackCloud, 'glance_client')
def test_create_image_put_user_prop(self, glance_mock, mock_api_version):
@ -520,13 +550,15 @@ class TestMemoryCache(base.TestCase):
glance_mock.images.create.return_value = fake_image
glance_mock.images.list.return_value = [fake_image]
self._call_create_image(
'42 name', min_disk='0', min_ram=0, properties={'int_v': 12345})
'42 name', min_disk='0', min_ram=0, properties={'int_v': 12345},
xenapi_use_agent=False)
args = {'name': '42 name',
'container_format': 'bare', 'disk_format': u'qcow2',
'owner_specified.shade.md5': mock.ANY,
'owner_specified.shade.sha256': mock.ANY,
'owner_specified.shade.object': 'images/42 name',
'int_v': '12345',
'xenapi_use_agent': 'False',
'visibility': 'private',
'min_disk': 0, 'min_ram': 0}
glance_mock.images.create.assert_called_with(**args)