diff --git a/neutron/plugins/vmware/dhcp_meta/lsnmanager.py b/neutron/plugins/vmware/dhcp_meta/lsnmanager.py index d5ba9db2dbe..1e8f9cb552c 100644 --- a/neutron/plugins/vmware/dhcp_meta/lsnmanager.py +++ b/neutron/plugins/vmware/dhcp_meta/lsnmanager.py @@ -296,12 +296,11 @@ class LsnManager(object): self.lsn_port_dispose(context, network_id, const.METADATA_MAC) def _lsn_port_host_conf(self, context, network_id, subnet_id, data, hdlr): - lsn_id = None - lsn_port_id = None + lsn_id, lsn_port_id = self.lsn_port_get( + context, network_id, subnet_id, raise_on_err=False) try: - lsn_id, lsn_port_id = self.lsn_port_get( - context, network_id, subnet_id) - hdlr(self.cluster, lsn_id, lsn_port_id, data) + if lsn_id and lsn_port_id: + hdlr(self.cluster, lsn_id, lsn_port_id, data) except (n_exc.NotFound, api_exc.NsxApiException): LOG.error(_('Error while configuring LSN ' 'port %s'), lsn_port_id) diff --git a/neutron/tests/unit/vmware/test_dhcpmeta.py b/neutron/tests/unit/vmware/test_dhcpmeta.py index ee9d9e477f6..dd438730148 100644 --- a/neutron/tests/unit/vmware/test_dhcpmeta.py +++ b/neutron/tests/unit/vmware/test_dhcpmeta.py @@ -666,14 +666,10 @@ class LsnManagerTestCase(base.BaseTestCase): def test_lsn_port_host_conf_lsn_port_not_found(self): with mock.patch.object( - self.manager, - 'lsn_port_get', - side_effect=p_exc.LsnPortNotFound(lsn_id=self.lsn_id, - entity='subnet', - entity_id=self.sub_id)): - self.assertRaises(p_exc.PortConfigurationError, - self.manager._lsn_port_host_conf, mock.ANY, - self.net_id, self.sub_id, mock.ANY, mock.Mock()) + self.manager, 'lsn_port_get', return_value=(None, None)) as f: + self.manager._lsn_port_host_conf( + mock.ANY, self.net_id, self.sub_id, mock.ANY, mock.Mock()) + self.assertEqual(1, f.call_count) def _test_lsn_port_update(self, dhcp=None, meta=None): self.manager.lsn_port_update(