NSX: ensure that no LSN is created on external networks
Logical Service Nodes (LSN) are those that provide dhcp and metadata services to networks when the NSX plugin is used without the openstack dhcp and metadata proxy agents. External networks do not work with Neutron's dhcp and metadata services, therefore there is no need to provision a LSN in this case. Added UT to avoid regression. Closes-bug: #1316795 Change-Id: I3dab0c9cbecdd9296466c991d02d590d6bd5bd49
This commit is contained in:
parent
ae3e92fe0c
commit
af020da544
@ -207,6 +207,9 @@ def handle_network_dhcp_access(plugin, context, network, action):
|
||||
% {"action": action, "resource": network})
|
||||
if action == 'create_network':
|
||||
network_id = network['id']
|
||||
if network.get(external_net.EXTERNAL):
|
||||
LOG.info(_("Network %s is external: no LSN to create"), network_id)
|
||||
return
|
||||
plugin.lsn_manager.lsn_create(context, network_id)
|
||||
elif action == 'delete_network':
|
||||
# NOTE(armando-migliaccio): on delete_network, network
|
||||
|
@ -1142,6 +1142,12 @@ class DhcpTestCase(base.BaseTestCase):
|
||||
self.plugin.lsn_manager.lsn_create.assert_called_once_with(
|
||||
mock.ANY, network['id'])
|
||||
|
||||
def test_handle_create_network_router_external(self):
|
||||
network = {'id': 'foo_network_id', 'router:external': True}
|
||||
nsx.handle_network_dhcp_access(
|
||||
self.plugin, mock.ANY, network, 'create_network')
|
||||
self.assertFalse(self.plugin.lsn_manager.lsn_create.call_count)
|
||||
|
||||
def test_handle_delete_network(self):
|
||||
network_id = 'foo_network_id'
|
||||
self.plugin.lsn_manager.lsn_delete_by_network.return_value = (
|
||||
|
Loading…
Reference in New Issue
Block a user