diff --git a/glanceclient/v1/images.py b/glanceclient/v1/images.py index ca4ff1e9..d2af5954 100644 --- a/glanceclient/v1/images.py +++ b/glanceclient/v1/images.py @@ -305,13 +305,12 @@ class ImageManager(base.ManagerWithFind): kwargs.setdefault('size', image_size) hdrs = {} - try: - purge_props = 'true' if kwargs.pop('purge_props') else 'false' - except KeyError: - pass - else: - hdrs['x-glance-registry-purge-props'] = purge_props + purge_props = 'false' + purge_props_bool = kwargs.pop('purge_props', None) + if purge_props_bool: + purge_props = 'true' + hdrs['x-glance-registry-purge-props'] = purge_props fields = {} for field in kwargs: if field in UPDATE_PARAMS: diff --git a/tests/v1/test_images.py b/tests/v1/test_images.py index 6c0fde15..777bbec6 100644 --- a/tests/v1/test_images.py +++ b/tests/v1/test_images.py @@ -703,6 +703,7 @@ class ImageManagerTest(testtools.TestCase): 'x-image-meta-property-a': 'b', 'x-image-meta-property-c': 'd', 'x-image-meta-deleted': 'False', + 'x-glance-registry-purge-props': 'false', } expect = [('PUT', '/v1/images/1', expect_hdrs, None)] self.assertEqual(expect, self.api.calls) @@ -715,7 +716,8 @@ class ImageManagerTest(testtools.TestCase): def test_update_with_data(self): image_data = six.StringIO('XXX') self.mgr.update('1', data=image_data) - expect_headers = {'x-image-meta-size': '3'} + expect_headers = {'x-image-meta-size': '3', + 'x-glance-registry-purge-props': 'false'} expect = [('PUT', '/v1/images/1', expect_headers, image_data)] self.assertEqual(expect, self.api.calls) @@ -725,6 +727,12 @@ class ImageManagerTest(testtools.TestCase): expect = [('PUT', '/v1/images/1', expect_headers, None)] self.assertEqual(expect, self.api.calls) + def test_update_with_purge_props_false(self): + self.mgr.update('1', purge_props=False) + expect_headers = {'x-glance-registry-purge-props': 'false'} + expect = [('PUT', '/v1/images/1', expect_headers, None)] + self.assertEqual(expect, self.api.calls) + def test_update_req_id(self): fields = { 'purge_props': True, @@ -817,6 +825,7 @@ class ImageManagerTest(testtools.TestCase): 'x-image-meta-name': 'bar', 'x-image-meta-container_format': 'bare', 'x-image-meta-disk_format': 'qcow2', + 'x-glance-registry-purge-props': 'false', } expect = [('PUT', '/v1/images/v2_created_img', expect_hdrs, None)] self.assertEqual(expect, self.api.calls) @@ -849,7 +858,9 @@ class ImageTest(testtools.TestCase): expect = [ ('HEAD', '/v1/images/1', {}, None), ('HEAD', '/v1/images/1', {}, None), - ('PUT', '/v1/images/1', {'x-image-meta-name': 'image-5'}, None), + ('PUT', '/v1/images/1', + {'x-image-meta-name': 'image-5', + 'x-glance-registry-purge-props': 'false'}, None), ] self.assertEqual(expect, self.api.calls)