diff --git a/openstack/network/v2/_proxy.py b/openstack/network/v2/_proxy.py index 1b4a40534..dcca6fd73 100644 --- a/openstack/network/v2/_proxy.py +++ b/openstack/network/v2/_proxy.py @@ -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. diff --git a/openstack/network/v2/security_group.py b/openstack/network/v2/security_group.py index 5c9cc2d97..ee35f29c8 100644 --- a/openstack/network/v2/security_group.py +++ b/openstack/network/v2/security_group.py @@ -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 ) diff --git a/openstack/tests/functional/network/v2/test_security_group.py b/openstack/tests/functional/network/v2/test_security_group.py index 5bcdb3126..08049dcef 100644 --- a/openstack/tests/functional/network/v2/test_security_group.py +++ b/openstack/tests/functional/network/v2/test_security_group.py @@ -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) diff --git a/openstack/tests/unit/network/v2/test_security_group.py b/openstack/tests/unit/network/v2/test_security_group.py index 82cda9845..661f8aa49 100644 --- a/openstack/tests/unit/network/v2/test_security_group.py +++ b/openstack/tests/unit/network/v2/test_security_group.py @@ -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', diff --git a/releasenotes/notes/network-security-group-query-parameter-id-f6dda45b2c09dbaa.yaml b/releasenotes/notes/network-security-group-query-parameter-id-f6dda45b2c09dbaa.yaml new file mode 100644 index 000000000..5b0db6808 --- /dev/null +++ b/releasenotes/notes/network-security-group-query-parameter-id-f6dda45b2c09dbaa.yaml @@ -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'])