Use _get_network_id in other methods of mixin class
Start using _get_network_id method to get net_id in other methods of mixin class. Interfaces have only "net_id" parameter instead of Heat's "network" and "network_id", so we should handle it in the same way. According validation both properties can no be used in the same time, so we may handle it interchangeably. Change-Id: Ic3cc28ea480783ff3479c3b16ba63bfc4fb02af8
This commit is contained in:
parent
415846c699
commit
f6e5841248
@ -23,27 +23,17 @@ class ServerNetworkMixin(object):
|
||||
|
||||
nics = []
|
||||
|
||||
for net_data in networks:
|
||||
for net in networks:
|
||||
nic_info = {}
|
||||
net_identifier = (net_data.get(self.NETWORK_UUID) or
|
||||
net_data.get(self.NETWORK_ID))
|
||||
if net_identifier:
|
||||
if self.is_using_neutron():
|
||||
net_id = (self.client_plugin(
|
||||
'neutron').resolve_network(
|
||||
net_data, self.NETWORK_ID, self.NETWORK_UUID))
|
||||
else:
|
||||
net_id = (self.client_plugin(
|
||||
'nova').get_nova_network_id(net_identifier))
|
||||
nic_info['net-id'] = net_id
|
||||
if net_data.get(self.NETWORK_FIXED_IP):
|
||||
ip = net_data[self.NETWORK_FIXED_IP]
|
||||
nic_info['net-id'] = self._get_network_id(net)
|
||||
if net.get(self.NETWORK_FIXED_IP):
|
||||
ip = net[self.NETWORK_FIXED_IP]
|
||||
if netutils.is_valid_ipv6(ip):
|
||||
nic_info['v6-fixed-ip'] = ip
|
||||
else:
|
||||
nic_info['v4-fixed-ip'] = ip
|
||||
if net_data.get(self.NETWORK_PORT):
|
||||
nic_info['port-id'] = net_data[self.NETWORK_PORT]
|
||||
if net.get(self.NETWORK_PORT):
|
||||
nic_info['port-id'] = net[self.NETWORK_PORT]
|
||||
nics.append(nic_info)
|
||||
return nics
|
||||
|
||||
@ -61,16 +51,20 @@ class ServerNetworkMixin(object):
|
||||
return not_updated_nets
|
||||
|
||||
def _get_network_id(self, net):
|
||||
net_id = None
|
||||
if net.get(self.NETWORK_ID):
|
||||
# network and network_id properties can be used interchangeably
|
||||
# if move the same value from one properties to another, it should
|
||||
# not change anything, i.e. it will be the same port/interface
|
||||
net_id = (net.get(self.NETWORK_UUID) or
|
||||
net.get(self.NETWORK_ID) or None)
|
||||
|
||||
if net_id:
|
||||
if self.is_using_neutron():
|
||||
net_id = self.client_plugin(
|
||||
'neutron').resolve_network(
|
||||
net,
|
||||
self.NETWORK_ID, self.NETWORK_UUID)
|
||||
net, self.NETWORK_ID, self.NETWORK_UUID)
|
||||
else:
|
||||
net_id = self.client_plugin(
|
||||
'nova').get_nova_network_id(net.get(self.NETWORK_ID))
|
||||
'nova').get_nova_network_id(net_id)
|
||||
return net_id
|
||||
|
||||
def update_networks_matching_iface_port(self, nets, interfaces):
|
||||
@ -80,15 +74,13 @@ class ServerNetworkMixin(object):
|
||||
|
||||
if (net.get('port') == port or
|
||||
(net.get('fixed_ip') == ip and
|
||||
(self._get_network_id(net) == net_id or
|
||||
net.get('uuid') == net_id))):
|
||||
self._get_network_id(net) == net_id)):
|
||||
return net
|
||||
|
||||
def find_poor_net(net_id, nets):
|
||||
for net in nets:
|
||||
if (not net.get('port') and not net.get('fixed_ip') and
|
||||
(self._get_network_id(net) == net_id or
|
||||
net.get('uuid') == net_id)):
|
||||
self._get_network_id(net) == net_id):
|
||||
return net
|
||||
|
||||
for iface in interfaces:
|
||||
@ -141,6 +133,7 @@ class ServerNetworkMixin(object):
|
||||
for net in old_nets:
|
||||
if net.get(self.NETWORK_PORT):
|
||||
remove_ports.append(net.get(self.NETWORK_PORT))
|
||||
|
||||
handler_kwargs = {'port_id': None, 'net_id': None, 'fip': None}
|
||||
# if new_nets is None, we should attach first free port,
|
||||
# according to similar behavior during instance creation
|
||||
@ -149,14 +142,12 @@ class ServerNetworkMixin(object):
|
||||
# attach section similar for both variants that
|
||||
# were mentioned above
|
||||
for net in new_nets:
|
||||
handler_kwargs = {'port_id': None, 'net_id': None, 'fip': None}
|
||||
handler_kwargs['net_id'] = self._get_network_id(net)
|
||||
if handler_kwargs['net_id']:
|
||||
handler_kwargs['fip'] = net.get('fixed_ip')
|
||||
if net.get(self.NETWORK_PORT):
|
||||
handler_kwargs['port_id'] = net.get(self.NETWORK_PORT)
|
||||
elif net.get(self.NETWORK_ID):
|
||||
handler_kwargs['net_id'] = self._get_network_id(net)
|
||||
handler_kwargs['fip'] = net.get('fixed_ip')
|
||||
elif net.get(self.NETWORK_UUID):
|
||||
handler_kwargs['net_id'] = net['uuid']
|
||||
handler_kwargs['fip'] = net.get('fixed_ip')
|
||||
|
||||
add_nets.append(handler_kwargs)
|
||||
|
||||
|
@ -2195,12 +2195,13 @@ class ServersTest(common.HeatTestCase):
|
||||
|
||||
self.assertIsNone(server._build_nics([]))
|
||||
self.assertIsNone(server._build_nics(None))
|
||||
self.assertEqual([{'port-id': 'aaaabbbb'},
|
||||
{'v4-fixed-ip': '192.0.2.0'}],
|
||||
self.assertEqual([{'port-id': 'aaaabbbb', 'net-id': None},
|
||||
{'v4-fixed-ip': '192.0.2.0', 'net-id': None}],
|
||||
server._build_nics([{'port': 'aaaabbbb'},
|
||||
{'fixed_ip': '192.0.2.0'}]))
|
||||
self.assertEqual([{'port-id': 'aaaabbbb'},
|
||||
{'v6-fixed-ip': '2002::2'}],
|
||||
|
||||
self.assertEqual([{'port-id': 'aaaabbbb', 'net-id': None},
|
||||
{'v6-fixed-ip': '2002::2', 'net-id': None}],
|
||||
server._build_nics([{'port': 'aaaabbbb'},
|
||||
{'fixed_ip': '2002::2'}]))
|
||||
self.patchobject(neutron.NeutronClientPlugin, 'resolve_network',
|
||||
@ -2828,6 +2829,10 @@ class ServersTest(common.HeatTestCase):
|
||||
net_id = server._get_network_id(net)
|
||||
self.assertEqual('f3ef5d2f-d7ba-4b27-af66-58ca0b81e032', net_id)
|
||||
|
||||
net = {'network': '', 'fixed_ip': '1.2.3.4'}
|
||||
net_id = server._get_network_id(net)
|
||||
self.assertEqual(None, net_id)
|
||||
|
||||
def test_get_network_id_nova(self):
|
||||
return_server = self.fc.servers.list()[3]
|
||||
server = self._create_test_server(return_server, 'networks_update')
|
||||
@ -2936,7 +2941,7 @@ class ServersTest(common.HeatTestCase):
|
||||
return_server = self.fc.servers.list()[3]
|
||||
server = self._create_test_server(return_server, 'networks_update')
|
||||
|
||||
# old order 0 1 2 3 4 5
|
||||
# old order 0 1 2 3 4
|
||||
nets = [
|
||||
self.create_old_net(port='aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'),
|
||||
self.create_old_net(net='gggggggg-1111-1111-1111-gggggggggggg',
|
||||
@ -2944,12 +2949,9 @@ class ServersTest(common.HeatTestCase):
|
||||
self.create_old_net(net='gggggggg-1111-1111-1111-gggggggggggg'),
|
||||
self.create_old_net(port='dddddddd-dddd-dddd-dddd-dddddddddddd'),
|
||||
self.create_old_net(uuid='gggggggg-1111-1111-1111-gggggggggggg',
|
||||
ip='5.6.7.8'),
|
||||
self.create_old_net(uuid='0da8adbf-a7e2-4c59-a511-96b03d2da0d7')]
|
||||
# new order 5 2 3 0 1 4
|
||||
ip='5.6.7.8')]
|
||||
# new order 2 3 0 1 4
|
||||
interfaces = [
|
||||
self.create_fake_iface('ffffffff-ffff-ffff-ffff-ffffffffffff',
|
||||
nets[5]['uuid'], '10.0.0.10'),
|
||||
self.create_fake_iface('cccccccc-cccc-cccc-cccc-cccccccccccc',
|
||||
nets[2]['network'], '10.0.0.11'),
|
||||
self.create_fake_iface(nets[3]['port'],
|
||||
@ -2983,11 +2985,7 @@ class ServersTest(common.HeatTestCase):
|
||||
{'port': 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee',
|
||||
'uuid': 'gggggggg-1111-1111-1111-gggggggggggg',
|
||||
'fixed_ip': '5.6.7.8',
|
||||
'network': None},
|
||||
{'port': 'ffffffff-ffff-ffff-ffff-ffffffffffff',
|
||||
'network': None,
|
||||
'fixed_ip': None,
|
||||
'uuid': '0da8adbf-a7e2-4c59-a511-96b03d2da0d7'}]
|
||||
'network': None}]
|
||||
|
||||
self.patchobject(neutron.NeutronClientPlugin, 'resolve_network',
|
||||
return_value='gggggggg-1111-1111-1111-gggggggggggg')
|
||||
@ -3096,6 +3094,9 @@ class ServersTest(common.HeatTestCase):
|
||||
return_server.interface_detach(
|
||||
'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa').AndReturn(None)
|
||||
|
||||
self.patchobject(neutron.NeutronClientPlugin, 'resolve_network',
|
||||
return_value=None)
|
||||
|
||||
self.m.StubOutWithMock(return_server, 'interface_attach')
|
||||
return_server.interface_attach(
|
||||
new_networks[0]['port'], None, None).AndReturn(None)
|
||||
|
Loading…
Reference in New Issue
Block a user