Merge "Fix network-v2 node port idempotency" into stable/wallaby
This commit is contained in:
commit
8a60b2e763
|
@ -476,9 +476,13 @@ def create_name_id_maps(conn):
|
|||
net_id_map = {}
|
||||
cidr_prefix_map = {}
|
||||
for net in conn.network.networks():
|
||||
tags = tags_to_dict(net.tags)
|
||||
subnets = conn.network.subnets(network_id=net.id)
|
||||
net_id_map[net.id] = net.name
|
||||
net_name_map[net.name] = dict(id=net.id)
|
||||
net_name_map[net.name] = dict(
|
||||
id=net.id,
|
||||
name_upper=tags.get('tripleo_network_name')
|
||||
)
|
||||
subnets_map = net_name_map[net.name]['subnets'] = dict()
|
||||
|
||||
for s in subnets:
|
||||
|
|
|
@ -302,6 +302,7 @@ def generate_port_defs(net_maps, instance, inst_ports):
|
|||
|
||||
for net in instance['networks']:
|
||||
net_name = net['network']
|
||||
net_name_upper = net_maps['by_name'][net_name]['name_upper']
|
||||
|
||||
if net.get('vif', False):
|
||||
# VIF port's are managed by metalsmith.
|
||||
|
@ -326,7 +327,7 @@ def generate_port_defs(net_maps, instance, inst_ports):
|
|||
|
||||
fixed_ips = [{'subnet_id': subnet_id}]
|
||||
|
||||
port_name = '_'.join([hostname, net_name])
|
||||
port_name = '_'.join([hostname, net_name_upper])
|
||||
|
||||
port_def = dict(name=port_name, dns_name=hostname, network_id=net_id,
|
||||
fixed_ips=fixed_ips)
|
||||
|
|
|
@ -444,12 +444,14 @@ class TestNetworkDataV2(tests_base.TestCase):
|
|||
network1 = stubs.FakeNeutronNetwork(
|
||||
id='network1_id',
|
||||
name='network1',
|
||||
subnet_ids=['subnet1_id', 'subnet2_id']
|
||||
subnet_ids=['subnet1_id', 'subnet2_id'],
|
||||
tags=['tripleo_network_name=Network1']
|
||||
)
|
||||
network2 = stubs.FakeNeutronNetwork(
|
||||
id='network2_id',
|
||||
name='network2',
|
||||
subnet_ids=['subnet3_id', 'subnet4_id']
|
||||
subnet_ids=['subnet3_id', 'subnet4_id'],
|
||||
tags=['tripleo_network_name=Network2']
|
||||
)
|
||||
conn_mock.network.networks.return_value = self.a2g([network1,
|
||||
network2])
|
||||
|
@ -459,6 +461,7 @@ class TestNetworkDataV2(tests_base.TestCase):
|
|||
expected_by_name_map = {
|
||||
'network1': {
|
||||
'id': 'network1_id',
|
||||
'name_upper': 'Network1',
|
||||
'subnets': {
|
||||
'subnet1': 'subnet1_id',
|
||||
'subnet2': 'subnet2_id'
|
||||
|
@ -466,6 +469,7 @@ class TestNetworkDataV2(tests_base.TestCase):
|
|||
},
|
||||
'network2': {
|
||||
'id': 'network2_id',
|
||||
'name_upper': 'Network2',
|
||||
'subnets': {
|
||||
'subnet3': 'subnet3_id',
|
||||
'subnet4': 'subnet4_id'
|
||||
|
|
|
@ -38,18 +38,21 @@ FAKE_INSTANCE = {
|
|||
FAKE_NET_NAME_MAP = {
|
||||
'ctlplane': {
|
||||
'id': 'ctlplane_id',
|
||||
'name_upper': 'ctlplane',
|
||||
'subnets': {
|
||||
'ctlplane-subnet': 'ctlplane_subnet_id'
|
||||
}
|
||||
},
|
||||
'foo': {
|
||||
'id': 'foo_id',
|
||||
'name_upper': 'Foo',
|
||||
'subnets': {
|
||||
'foo_subnet': 'foo_subnet_id',
|
||||
}
|
||||
},
|
||||
'bar': {
|
||||
'id': 'bar_id',
|
||||
'name_upper': 'Bar',
|
||||
'subnets': {
|
||||
'bar_subnet': 'bar_subnet_id',
|
||||
}
|
||||
|
@ -121,11 +124,11 @@ class TestTripleoOvercloudNetworkPorts(tests_base.TestCase):
|
|||
create_port_defs, update_port_defs = plugin.generate_port_defs(
|
||||
FAKE_MAPS, FAKE_INSTANCE, inst_ports)
|
||||
self.assertEqual([
|
||||
{'name': 'instance0_foo',
|
||||
{'name': 'instance0_Foo',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'foo_id',
|
||||
'fixed_ips': [{'subnet_id': 'foo_subnet_id'}]},
|
||||
{'name': 'instance0_bar',
|
||||
{'name': 'instance0_Bar',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'bar_id',
|
||||
'fixed_ips': [{'subnet_id': 'bar_subnet_id'}]},
|
||||
|
@ -134,21 +137,21 @@ class TestTripleoOvercloudNetworkPorts(tests_base.TestCase):
|
|||
|
||||
def test_generate_port_defs_update(self):
|
||||
port_foo = stubs.FakeNeutronPort(
|
||||
name='instance0_foo', network_id='foo_id',
|
||||
name='instance0_Foo', network_id='foo_id',
|
||||
fixed_ips=[{'subnet_id': 'foo_subnet_id'}])
|
||||
port_bar = stubs.FakeNeutronPort(
|
||||
name='instance0_bar', network_id='bar_id',
|
||||
name='instance0_Bar', network_id='bar_id',
|
||||
fixed_ips=[{'subnet_id': 'bar_subnet_id'}])
|
||||
inst_ports = [port_foo, port_bar]
|
||||
create_port_defs, update_port_defs = plugin.generate_port_defs(
|
||||
FAKE_MAPS, FAKE_INSTANCE, inst_ports)
|
||||
self.assertEqual([], create_port_defs)
|
||||
self.assertEqual([
|
||||
{'name': 'instance0_foo',
|
||||
{'name': 'instance0_Foo',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'foo_id',
|
||||
'fixed_ips': [{'subnet_id': 'foo_subnet_id'}]},
|
||||
{'name': 'instance0_bar',
|
||||
{'name': 'instance0_Bar',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'bar_id',
|
||||
'fixed_ips': [{'subnet_id': 'bar_subnet_id'}]}
|
||||
|
@ -156,19 +159,19 @@ class TestTripleoOvercloudNetworkPorts(tests_base.TestCase):
|
|||
|
||||
def test_generate_port_defs_create_and_update(self):
|
||||
port_foo = stubs.FakeNeutronPort(
|
||||
name='instance0_foo', network_id='foo_id',
|
||||
name='instance0_Foo', network_id='foo_id',
|
||||
fixed_ips=[{'subnet_id': 'foo_subnet_id'}])
|
||||
inst_ports = [port_foo]
|
||||
create_port_defs, update_port_defs = plugin.generate_port_defs(
|
||||
FAKE_MAPS, FAKE_INSTANCE, inst_ports)
|
||||
self.assertEqual([
|
||||
{'name': 'instance0_bar',
|
||||
{'name': 'instance0_Bar',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'bar_id',
|
||||
'fixed_ips': [{'subnet_id': 'bar_subnet_id'}]},
|
||||
], create_port_defs)
|
||||
self.assertEqual([
|
||||
{'name': 'instance0_foo',
|
||||
{'name': 'instance0_Foo',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'foo_id',
|
||||
'fixed_ips': [{'subnet_id': 'foo_subnet_id'}]},
|
||||
|
@ -182,11 +185,11 @@ class TestTripleoOvercloudNetworkPorts(tests_base.TestCase):
|
|||
create_port_defs, update_port_defs = plugin.generate_port_defs(
|
||||
FAKE_MAPS, instance, inst_ports)
|
||||
self.assertEqual([
|
||||
{'name': 'instance0_foo',
|
||||
{'name': 'instance0_Foo',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'foo_id',
|
||||
'fixed_ips': [{'subnet_id': 'foo_subnet_id'}]},
|
||||
{'name': 'instance0_bar',
|
||||
{'name': 'instance0_Bar',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'bar_id',
|
||||
'fixed_ips': [{'subnet_id': 'bar_subnet_id'}]},
|
||||
|
@ -220,11 +223,11 @@ class TestTripleoOvercloudNetworkPorts(tests_base.TestCase):
|
|||
create_port_defs, update_port_defs = plugin.generate_port_defs(
|
||||
maps, instance, inst_ports)
|
||||
self.assertEqual([
|
||||
{'name': 'instance0_foo',
|
||||
{'name': 'instance0_Foo',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'foo_id',
|
||||
'fixed_ips': [{'ip_address': 'baz_fixed_ip'}]},
|
||||
{'name': 'instance0_bar',
|
||||
{'name': 'instance0_Bar',
|
||||
'dns_name': 'instance0',
|
||||
'network_id': 'bar_id',
|
||||
'fixed_ips': [{'ip_address': 'bar_fixed_ip'}]},
|
||||
|
@ -353,11 +356,11 @@ class TestTripleoOvercloudNetworkPorts(tests_base.TestCase):
|
|||
def test__provision_ports_create(self, mock_conn, mock_pre_provisioned,
|
||||
mock_create_ports, mock_update_ports):
|
||||
create_port_defs = [
|
||||
dict(name='instance0_foo',
|
||||
dict(name='instance0_Foo',
|
||||
dns_name='instance0',
|
||||
network_id='foo_id',
|
||||
fixed_ips=[{'subnet_id': 'foo_subnet_id'}]),
|
||||
dict(name='instance0_bar',
|
||||
dict(name='instance0_Bar',
|
||||
dns_name='instance0',
|
||||
network_id='bar_id',
|
||||
fixed_ips=[{'subnet_id': 'bar_subnet_id'}]),
|
||||
|
@ -385,23 +388,23 @@ class TestTripleoOvercloudNetworkPorts(tests_base.TestCase):
|
|||
def test__provision_ports_update(self, mock_conn, mock_pre_provisioned,
|
||||
mock_create_ports, mock_update_ports):
|
||||
port_foo = stubs.FakeNeutronPort(
|
||||
name='instance0_foo',
|
||||
name='instance0_Foo',
|
||||
dns_name='instance0',
|
||||
network_id='foo_id',
|
||||
fixed_ips=[{'subnet_id': 'foo_subnet_id'}],
|
||||
tags=[])
|
||||
port_bar = stubs.FakeNeutronPort(
|
||||
name='instance0_bar',
|
||||
name='instance0_Bar',
|
||||
dns_name='instance0',
|
||||
network_id='bar_id',
|
||||
fixed_ips=[{'subnet_id': 'bar_subnet_id'}],
|
||||
tags=[])
|
||||
update_port_defs = [
|
||||
dict(name='instance0_foo',
|
||||
dict(name='instance0_Foo',
|
||||
dns_name='instance0',
|
||||
network_id='foo_id',
|
||||
fixed_ips=[{'subnet_id': 'foo_subnet_id'}]),
|
||||
dict(name='instance0_bar',
|
||||
dict(name='instance0_Bar',
|
||||
dns_name='instance0',
|
||||
network_id='bar_id',
|
||||
fixed_ips=[{'subnet_id': 'bar_subnet_id'}]),
|
||||
|
@ -432,19 +435,19 @@ class TestTripleoOvercloudNetworkPorts(tests_base.TestCase):
|
|||
mock_create_ports,
|
||||
mock_update_ports):
|
||||
port_foo = stubs.FakeNeutronPort(
|
||||
name='instance0_foo',
|
||||
name='instance0_Foo',
|
||||
dns_name='instance0',
|
||||
network_id='foo_id',
|
||||
fixed_ips=[{'subnet_id': 'foo_subnet_id'}],
|
||||
tags=[])
|
||||
create_port_defs = [
|
||||
dict(name='instance0_bar',
|
||||
dict(name='instance0_Bar',
|
||||
dns_name='instance0',
|
||||
network_id='bar_id',
|
||||
fixed_ips=[{'subnet_id': 'bar_subnet_id'}]),
|
||||
]
|
||||
update_port_defs = [
|
||||
dict(name='instance0_foo',
|
||||
dict(name='instance0_Foo',
|
||||
dns_name='instance0',
|
||||
network_id='foo_id',
|
||||
fixed_ips=[{'subnet_id': 'foo_subnet_id'}]),
|
||||
|
|
Loading…
Reference in New Issue