Add query parameter 'id' for security_groups

Add parity with neutronclient which could list
security groups filtering by one or multiple
security group ids.

Change-Id: Iabafad39fe2b54a0c5fa6fe23f1e8ce3c0eab991
This commit is contained in:
Harald Jensås 2020-06-15 16:07:37 +02:00
parent 1a032b8c60
commit 8b5d4fe798
5 changed files with 17 additions and 2 deletions

View File

@ -3150,6 +3150,7 @@ class Proxy(proxy.Proxy):
the resources being returned. Valid parameters are:
* ``description``: Security group description
* ``ìd``: The id of a security group, or list of security group ids
* ``name``: The name of a security group
* ``project_id``: The ID of the project this security group is
associated with.

View File

@ -27,8 +27,8 @@ class SecurityGroup(_base.NetworkResource, resource.TagMixin):
allow_list = True
_query_mapping = resource.QueryParameters(
'description', 'fields', 'name', 'stateful', 'project_id', 'tenant_id',
'revision_number', 'sort_dir', 'sort_key',
'description', 'fields', 'id', 'name', 'stateful', 'project_id',
'tenant_id', 'revision_number', 'sort_dir', 'sort_key',
**resource.TagMixin._tag_query_parameters
)

View File

@ -46,6 +46,10 @@ class TestSecurityGroup(base.BaseFunctionalTest):
names = [o.name for o in self.conn.network.security_groups()]
self.assertIn(self.NAME, names)
def test_list_query_list_of_ids(self):
ids = [o.id for o in self.conn.network.security_groups(id=[self.ID])]
self.assertIn(self.ID, ids)
def test_set_tags(self):
sot = self.conn.network.get_security_group(self.ID)
self.assertEqual([], sot.tags)

View File

@ -80,6 +80,7 @@ class TestSecurityGroup(base.TestCase):
self.assertDictEqual({'any_tags': 'tags-any',
'description': 'description',
'fields': 'fields',
'id': 'id',
'limit': 'limit',
'marker': 'marker',
'name': 'name',

View File

@ -0,0 +1,9 @@
---
features:
- |
The ``id`` field was added a query parameter for security_groups. A single
security group id, or a list of security group ids can be passed. For
example::
conn.network.security_groups(id=['f959e85a-1a87-4b5c-ae56-dc917ceeb584',
'a55c0100-7ded-40af-9c61-1d1b9a9c2692'])