From 4e9b8bc3c60cd22ca4c96baa70ab72f9206fe4d5 Mon Sep 17 00:00:00 2001 From: Salvatore Orlando Date: Tue, 25 Jun 2013 16:36:20 +0200 Subject: [PATCH] Fix logic for building field_list in update Bug 1194520 Change-Id: Ie3ea7b77dc9a4f712e3e838c20c062db1b2d9faa --- neutron/api/v2/base.py | 4 ++-- neutron/tests/unit/test_api_v2.py | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/neutron/api/v2/base.py b/neutron/api/v2/base.py index 0749d148b..5e6b6a511 100644 --- a/neutron/api/v2/base.py +++ b/neutron/api/v2/base.py @@ -460,8 +460,8 @@ class Controller(object): # but pass only attributes in the original body and required # by the policy engine to the policy 'brain' field_list = [name for (name, value) in self._attr_info.iteritems() - if ('required_by_policy' in value and - value['required_by_policy'] or + if (value.get('required_by_policy') or + value.get('primary_key') or 'default' not in value)] orig_obj = self._item(request, id, field_list=field_list, parent_id=parent_id) diff --git a/neutron/tests/unit/test_api_v2.py b/neutron/tests/unit/test_api_v2.py index 4e2cc76f2..200aa2966 100644 --- a/neutron/tests/unit/test_api_v2.py +++ b/neutron/tests/unit/test_api_v2.py @@ -1085,6 +1085,10 @@ class JSONV2TestCase(APIv2TestBase, testlib_api.WebTestCase): self.serialize(data), extra_environ=env, expect_errors=expect_errors) + # Ensure id attribute is included in fields returned by GET call + # in update procedure. + self.assertEqual(1, instance.get_network.call_count) + self.assertIn('id', instance.get_network.call_args[1]['fields']) self.assertEqual(res.status_int, expected_code) def test_update_noauth(self): -- 2.45.2