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:
parent
d951d25526
commit
ce379c1128
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue