NSX: fix error when creating VM ports on subnets without dhcp
The error was caused by a missing LSN port (which is created when the subnet is setup with dhcp enabled). Therefore, check the port is in place before proceeding with the setup. Change-Id: I658ead0c324a24ad3f061844ecac13cd3359d341 Closes-bug: 1316365
This commit is contained in:
parent
5f889fb49c
commit
d2baa7c9b5
@ -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)
|
||||
|
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user