From 1db5ace55e28891feaa3424fd9f637b8a1cc7e75 Mon Sep 17 00:00:00 2001 From: Kevin Benton Date: Mon, 19 Jun 2017 01:13:22 -0700 Subject: [PATCH] OVO: Allow port queries based on security_group_ids This is needed to retrieve all ports in a given set of security groups. Partially-Implements: blueprint push-notifications Partially-Implements: blueprint adopt-oslo-versioned-objects-for-db Change-Id: Iffa1bd341d9d20277ec153aa1dac6f61f05ec5bd --- neutron/objects/ports.py | 2 ++ neutron/tests/unit/objects/test_ports.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/neutron/objects/ports.py b/neutron/objects/ports.py index 27f2b47b570..91dfaaa3810 100644 --- a/neutron/objects/ports.py +++ b/neutron/objects/ports.py @@ -263,6 +263,8 @@ class Port(base.NeutronDbObject): # field in later object iterations } + extra_filter_names = {'security_group_ids'} + fields_no_update = ['project_id', 'network_id'] synthetic_fields = [ diff --git a/neutron/tests/unit/objects/test_ports.py b/neutron/tests/unit/objects/test_ports.py index b2aaf0a29ec..caccc36a2b8 100644 --- a/neutron/tests/unit/objects/test_ports.py +++ b/neutron/tests/unit/objects/test_ports.py @@ -233,6 +233,12 @@ class PortDbObjectTestCase(obj_test_base.BaseDbObjectTestCase, obj = ports.Port.get_object(self.context, id=obj.id) self.assertEqual(groups, obj.security_group_ids) + self.assertEqual([obj], + ports.Port.get_objects( + self.context, security_group_ids=(sg1_id, ))) + self.assertEqual([obj], + ports.Port.get_objects( + self.context, security_group_ids=(sg2_id, ))) sg3_id = self._create_test_security_group_id() obj.security_group_ids = {sg3_id}