Check for the presence of the 'id' key before trying
to do a lookup based on the value. This is necessary
because a 'fields' param to get_port(s) may exclude
the 'id' field before the host_id lookup.
Closes-Bug: #
1358668
Change-Id: If30567d5deaeabd2de6c6287fac7a81695a41cc5
# In ML2, the host_id is already populated
if portbindings.HOST_ID in port:
hostid = port[portbindings.HOST_ID]
- else:
+ elif 'id' in port:
hostid = porttracker_db.get_port_hostid(context, port['id'])
+ else:
+ hostid = None
if hostid:
port[portbindings.HOST_ID] = hostid
override = self._check_hostvif_override(hostid)
super(TestBigSwitchProxyPortsV2,
self).setUp(self._plugin_name)
+ def test_get_ports_no_id(self):
+ with self.port(name='test'):
+ ports = manager.NeutronManager.get_plugin().get_ports(
+ context.get_admin_context(), fields=['name'])
+ self.assertEqual(['name'], ports[0].keys())
+
def test_router_port_status_active(self):
# router ports screw up port auto-deletion so it has to be
# disabled for this test