diff options
author | Lakshmi N Sampath <lakshmi.sampath@hp.com> | 2015-03-18 22:21:19 -0700 |
---|---|---|
committer | Erno Kuvaja <jokke@usr.fi> | 2015-07-08 10:49:55 +0000 |
commit | 1990e76ba1647b3267f16b12f63e635541160326 (patch) | |
tree | 401f039ccbab5850cec14dcac3252c4f3250bd4e | |
parent | 7771d3b55d36e58cede0bc827433a3046e492143 (diff) | |
download | python-glanceclient-1990e76ba1647b3267f16b12f63e635541160326.tar.gz |
Fix Metadef Object update issue with python-glanceclient
Disallowed fields(schema, created_at and updated_at) were
getting deleted from Metadef namespace instead of Metadef object.
Change-Id: Id80e204c7af1ac6926c66627d290a15c4e6b00d9
Closes-Bug: #1433884
(cherry picked from commit 5d933b0dd59b6340147d1f2307df98c1b66d76f7)
-rw-r--r-- | glanceclient/v2/metadefs.py | 4 | ||||
-rw-r--r-- | tests/v2/test_metadefs_namespaces.py | 8 | ||||
-rw-r--r-- | tests/v2/test_metadefs_objects.py | 18 | ||||
-rw-r--r-- | tests/v2/test_metadefs_properties.py | 10 |
4 files changed, 38 insertions, 2 deletions
diff --git a/glanceclient/v2/metadefs.py b/glanceclient/v2/metadefs.py index b6ba492..84d83df 100644 --- a/glanceclient/v2/metadefs.py +++ b/glanceclient/v2/metadefs.py @@ -348,8 +348,8 @@ class ObjectController(object): # Remove read-only parameters. read_only = ['schema', 'updated_at', 'created_at'] for elem in read_only: - if elem in namespace: - del namespace[elem] + if elem in obj: + del obj[elem] url = '/v2/metadefs/namespaces/{0}/objects/{1}'.format(namespace, object_name) diff --git a/tests/v2/test_metadefs_namespaces.py b/tests/v2/test_metadefs_namespaces.py index b03dcd1..64f441d 100644 --- a/tests/v2/test_metadefs_namespaces.py +++ b/tests/v2/test_metadefs_namespaces.py @@ -664,6 +664,14 @@ class TestNamespaceController(testtools.TestCase): self.assertRaises(TypeError, self.controller.update, NAMESPACE1, **properties) + def test_update_namespace_disallowed_fields(self): + properties = {'display_name': 'My Updated Name'} + self.controller.update(NAMESPACE1, **properties) + actual = self.api.calls + _disallowed_fields = ['self', 'schema', 'created_at', 'updated_at'] + for key in actual[1][3]: + self.assertNotIn(key, _disallowed_fields) + def test_delete_namespace(self): self.controller.delete(NAMESPACE1) expect = [ diff --git a/tests/v2/test_metadefs_objects.py b/tests/v2/test_metadefs_objects.py index 701d562..a9aa2e9 100644 --- a/tests/v2/test_metadefs_objects.py +++ b/tests/v2/test_metadefs_objects.py @@ -304,6 +304,24 @@ class TestObjectController(testtools.TestCase): self.assertRaises(TypeError, self.controller.update, NAMESPACE1, OBJECT1, **properties) + def test_update_object_disallowed_fields(self): + properties = { + 'description': 'UPDATED_DESCRIPTION' + } + self.controller.update(NAMESPACE1, OBJECT1, **properties) + actual = self.api.calls + # API makes three calls(GET, PUT, GET) for object update. + # PUT has the request body in the list + '''('PUT', '/v2/metadefs/namespaces/Namespace1/objects/Object1', {}, + [('description', 'UPDATED_DESCRIPTION'), + ('name', 'Object1'), + ('properties', ...), + ('required', [])])''' + + _disallowed_fields = ['self', 'schema', 'created_at', 'updated_at'] + for key in actual[1][3]: + self.assertNotIn(key, _disallowed_fields) + def test_delete_object(self): self.controller.delete(NAMESPACE1, OBJECT1) expect = [ diff --git a/tests/v2/test_metadefs_properties.py b/tests/v2/test_metadefs_properties.py index d2ac25d..32eb446 100644 --- a/tests/v2/test_metadefs_properties.py +++ b/tests/v2/test_metadefs_properties.py @@ -280,6 +280,16 @@ class TestPropertyController(testtools.TestCase): self.assertRaises(TypeError, self.controller.update, NAMESPACE1, PROPERTY1, **properties) + def test_update_property_disallowed_fields(self): + properties = { + 'description': 'UPDATED_DESCRIPTION' + } + self.controller.update(NAMESPACE1, PROPERTY1, **properties) + actual = self.api.calls + _disallowed_fields = ['created_at', 'updated_at'] + for key in actual[1][3]: + self.assertNotIn(key, _disallowed_fields) + def test_delete_property(self): self.controller.delete(NAMESPACE1, PROPERTY1) expect = [ |