NSX|V3+P: remove redundent code in get_port/s

In get_port and get ports the plugins used _get_port to get each of the
ports, and run the apply_funcs.
Since this cost a lot of time, and the super call to neutron already run
those, it can be removed.

Change-Id: I729b3e18d52df4c458f7ea8d2180deb534a375f1
This commit is contained in:
Adit Sarfaty 2019-03-25 11:04:10 +02:00
parent d951d25526
commit ce379c1128
3 changed files with 0 additions and 48 deletions

View File

@ -1056,9 +1056,6 @@ class NsxPolicyPlugin(nsx_plugin_common.NsxPluginV3Base):
def get_port(self, context, port_id, fields=None):
port = super(NsxPolicyPlugin, self).get_port(
context, port_id, fields=None)
if 'id' in port:
port_model = self._get_port(context, port['id'])
resource_extend.apply_funcs('ports', port, port_model)
self._extend_nsx_port_dict_binding(context, port)
self._extend_qos_port_dict_binding(context, port)
self._remove_provider_security_groups_from_list(port)
@ -1076,16 +1073,6 @@ class NsxPolicyPlugin(nsx_plugin_common.NsxPluginV3Base):
limit, marker, page_reverse))
# Add port extensions
for port in ports[:]:
if 'id' in port:
try:
port_model = self._get_port(context, port['id'])
resource_extend.apply_funcs('ports', port, port_model)
except n_exc.PortNotFound:
# Port might have been deleted by now
LOG.debug("Port %s was deleted during the get_ports "
"process, and is being skipped", port['id'])
ports.remove(port)
continue
self._extend_nsx_port_dict_binding(context, port)
self._extend_qos_port_dict_binding(context, port)
self._remove_provider_security_groups_from_list(port)

View File

@ -2025,9 +2025,6 @@ class NsxV3Plugin(nsx_plugin_common.NsxPluginV3Base,
def get_port(self, context, id, fields=None):
port = super(NsxV3Plugin, self).get_port(context, id, fields=None)
if 'id' in port:
port_model = self._get_port(context, port['id'])
resource_extend.apply_funcs('ports', port, port_model)
self._extend_get_port_dict_qos_and_binding(context, port)
self._remove_provider_security_groups_from_list(port)
return db_utils.resource_fields(port, fields)
@ -2044,16 +2041,6 @@ class NsxV3Plugin(nsx_plugin_common.NsxPluginV3Base,
limit, marker, page_reverse))
# Add port extensions
for port in ports[:]:
if 'id' in port:
try:
port_model = self._get_port(context, port['id'])
resource_extend.apply_funcs('ports', port, port_model)
except n_exc.PortNotFound:
# Port might have been deleted by now
LOG.debug("Port %s was deleted during the get_ports "
"process, and is being skipped", port['id'])
ports.remove(port)
continue
self._extend_get_port_dict_qos_and_binding(context, port)
self._remove_provider_security_groups_from_list(port)
return (ports if not fields else

View File

@ -1461,28 +1461,6 @@ class TestPortsV2(test_plugin.TestPortsV2, NsxV3PluginTestCaseMixin,
self._get_ports_with_fields(tenid, 'mac_address', 4)
self._get_ports_with_fields(tenid, 'network_id', 4)
def test_list_ports_while_deleting(self):
self.plugin = directory.get_plugin()
orig_get_port = self.plugin._get_port
class local(object):
counter = 0
def mock_get_port(*args):
#global counter
local.counter += 1
if local.counter == 3:
raise n_exc.PortNotFound(port_id=args[1])
return orig_get_port(*args)
self.plugin = directory.get_plugin()
with self.port(), self.port(), self.port(), self.port() as p:
tenid = p['port']['tenant_id']
# get all ports, while "deleting" one of them:
with mock.patch.object(self.plugin, "_get_port",
side_effect=mock_get_port):
self._get_ports_with_fields(tenid, None, 3)
def test_list_ports_filtered_by_security_groups(self):
ctx = context.get_admin_context()
with self.port() as port1, self.port() as port2: