Set purge-props header correctly in image update

Currently when an image is updated, the purge property
header is only set to true in some cases, but when
required it isn't set to false

Change-Id: I885a82643d2620f393f21c36b3ad95cb7ed43f2c
Closes-Bug: 1318079
This commit is contained in:
Maithem
2014-05-09 17:25:05 -07:00
parent 938031ad52
commit cddc37dcab
2 changed files with 18 additions and 8 deletions

View File

@@ -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:

View File

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