]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Fix use of fields argument in get_rbac_policies
authorKevin Benton <blak111@gmail.com>
Fri, 20 Nov 2015 04:37:05 +0000 (20:37 -0800)
committerKevin Benton <blak111@gmail.com>
Fri, 20 Nov 2015 04:45:28 +0000 (20:45 -0800)
The 'fields' argument wasn't being passed into the _get_collection
call so the results were always coming back with all of the fields.
This adds an API test to prevent a regression.

Change-Id: Iddef9dcc7639a557a9d19dc7265f10f98e002172
Closes-Bug: #1517815

neutron/db/rbac_db_mixin.py
neutron/tests/api/admin/test_shared_network_extension.py

index 182a95639952319c8127d36da5aa4f9f83438c47..d5692f67c4514433f2377f6c4e93701225e6c563 100644 (file)
@@ -105,7 +105,7 @@ class RbacPluginMixin(common_db_mixin.CommonDbMixin):
             models.get_type_model_map(), 'object_type')
         return self._get_collection(
             context, model, self._make_rbac_policy_dict, filters=filters,
-            sorts=sorts, limit=limit, page_reverse=page_reverse)
+            fields=fields, sorts=sorts, limit=limit, page_reverse=page_reverse)
 
     def _get_object_type(self, context, entry_id):
         """Scans all RBAC tables for an ID to figure out the type.
index 8a30c6a9bdcd2654791d6f2276dd0a1d04138177..e1899892cceed86443271755de8b2b54ab74e2f5 100644 (file)
@@ -300,6 +300,19 @@ class RBACSharedNetworksTest(base.BaseAdminNetworkTest):
             [p['id']
              for p in self.client2.list_rbac_policies()['rbac_policies']])
 
+    @test.attr(type='smoke')
+    @test.idempotent_id('bf5052b8-b11e-407c-8e43-113447404d3e')
+    def test_filter_fields(self):
+        net = self.create_network()
+        self.client.create_rbac_policy(
+            object_type='network', object_id=net['id'],
+            action='access_as_shared', target_tenant=self.client2.tenant_id)
+        field_args = (('id',), ('id', 'action'), ('object_type', 'object_id'),
+                      ('tenant_id', 'target_tenant'))
+        for fields in field_args:
+            res = self.client.list_rbac_policies(fields=fields)
+            self.assertEqual(set(fields), set(res['rbac_policies'][0].keys()))
+
     @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-afffffff5fff')
     def test_policy_show(self):