network: Rename '_get_phynet_info'
"phynets" are not a thing. We'll also be retrieving additional info here in the future, but we can rename that again when we do this. Part of blueprint numa-aware-vswitches Change-Id: I3cf5bc81790b75a074fb9e108286632bf0aea4cd
This commit is contained in:
parent
c86691a86d
commit
2bb9e5563c
@ -1536,8 +1536,17 @@ class API(base_api.NetworkAPI):
|
||||
raise exception.FixedIpNotFoundForSpecificInstance(
|
||||
instance_uuid=instance.uuid, ip=address)
|
||||
|
||||
def _get_phynet_info(self, context, neutron, net_id):
|
||||
phynet_name = None
|
||||
def _get_physnet_info(self, context, neutron, net_id):
|
||||
"""Retrieve detailed network info.
|
||||
|
||||
:param context: The request context.
|
||||
:param neutron: The neutron client object.
|
||||
:param net_id: The ID of the network to retrieve information for.
|
||||
|
||||
:return: Name of physical network as indicated by the
|
||||
``provider:physical_network`` attribute of the network, else None
|
||||
if that attribute is not defined.
|
||||
"""
|
||||
if self._has_multi_provider_extension(context, neutron=neutron):
|
||||
network = neutron.show_network(net_id,
|
||||
fields='segments').get('network')
|
||||
@ -1552,9 +1561,10 @@ class API(base_api.NetworkAPI):
|
||||
# TODO(vladikr): Additional work will be required to handle the
|
||||
# case of multiple vlan segments associated with different
|
||||
# physical networks.
|
||||
phynet_name = net.get('provider:physical_network')
|
||||
if phynet_name:
|
||||
return phynet_name
|
||||
physnet_name = net.get('provider:physical_network')
|
||||
if physnet_name:
|
||||
return physnet_name
|
||||
|
||||
# Raising here as at least one segment should
|
||||
# have a physical network provided.
|
||||
if segments:
|
||||
@ -1562,10 +1572,9 @@ class API(base_api.NetworkAPI):
|
||||
"physical_network") % net_id)
|
||||
raise exception.NovaException(message=msg)
|
||||
|
||||
net = neutron.show_network(net_id,
|
||||
fields='provider:physical_network').get('network')
|
||||
phynet_name = net.get('provider:physical_network')
|
||||
return phynet_name
|
||||
net = neutron.show_network(
|
||||
net_id, fields=['provider:physical_network']).get('network')
|
||||
return net.get('provider:physical_network')
|
||||
|
||||
@staticmethod
|
||||
def _get_trusted_mode_from_port(port):
|
||||
@ -1581,7 +1590,7 @@ class API(base_api.NetworkAPI):
|
||||
return strutils.bool_from_string(value)
|
||||
|
||||
def _get_port_vnic_info(self, context, neutron, port_id):
|
||||
"""Retrieve port vnic info
|
||||
"""Retrieve port vNIC info
|
||||
|
||||
:param context: The request context
|
||||
:param neutron: The Neutron client
|
||||
@ -1615,18 +1624,18 @@ class API(base_api.NetworkAPI):
|
||||
|
||||
neutron = get_client(context, admin=True)
|
||||
for request_net in requested_networks:
|
||||
phynet_name = None
|
||||
physnet = None
|
||||
trusted = None
|
||||
vnic_type = network_model.VNIC_TYPE_NORMAL
|
||||
|
||||
if request_net.port_id:
|
||||
vnic_type, trusted, network_id = self._get_port_vnic_info(
|
||||
context, neutron, request_net.port_id)
|
||||
phynet_name = self._get_phynet_info(
|
||||
physnet = self._get_physnet_info(
|
||||
context, neutron, network_id)
|
||||
LOG.debug("Creating PCI device request for port_id=%s, "
|
||||
"vnic_type=%s, phynet_name=%s, trusted=%s",
|
||||
request_net.port_id, vnic_type, phynet_name,
|
||||
request_net.port_id, vnic_type, physnet,
|
||||
trusted)
|
||||
pci_request_id = None
|
||||
if vnic_type in network_model.VNIC_TYPES_SRIOV:
|
||||
@ -1636,7 +1645,7 @@ class API(base_api.NetworkAPI):
|
||||
# libvirt to expose the nic feature. At the moment
|
||||
# there is a limitation that deployers cannot use both
|
||||
# SR-IOV modes (legacy and ovs) in the same deployment.
|
||||
spec = {pci_request.PCI_NET_TAG: phynet_name}
|
||||
spec = {pci_request.PCI_NET_TAG: physnet}
|
||||
dev_type = pci_request.DEVICE_TYPE_FOR_VNIC_TYPE.get(vnic_type)
|
||||
if dev_type:
|
||||
spec[pci_request.PCI_DEVICE_TYPE_TAG] = dev_type
|
||||
|
@ -2909,7 +2909,7 @@ class TestNeutronv2(TestNeutronv2Base):
|
||||
'binding:vnic_type': model.VNIC_TYPE_DIRECT,
|
||||
neutronapi.BINDING_PROFILE: {'pci_vendor_info': '1137:0047',
|
||||
'pci_slot': '0000:0a:00.1',
|
||||
'physical_network': 'phynet1'},
|
||||
'physical_network': 'physnet1'},
|
||||
'binding:vif_details': {model.VIF_DETAILS_PROFILEID: 'pfid'},
|
||||
},
|
||||
# admin_state_up=True and status='ACTIVE' thus vif.active=True
|
||||
@ -2923,7 +2923,7 @@ class TestNeutronv2(TestNeutronv2Base):
|
||||
'binding:vnic_type': model.VNIC_TYPE_MACVTAP,
|
||||
neutronapi.BINDING_PROFILE: {'pci_vendor_info': '1137:0047',
|
||||
'pci_slot': '0000:0a:00.2',
|
||||
'physical_network': 'phynet1'},
|
||||
'physical_network': 'physnet1'},
|
||||
'binding:vif_details': {model.VIF_DETAILS_PROFILEID: 'pfid'},
|
||||
},
|
||||
# admin_state_up=True and status='ACTIVE' thus vif.active=True
|
||||
@ -3123,11 +3123,11 @@ class TestNeutronv2(TestNeutronv2Base):
|
||||
self.assertEqual(0, len(networks))
|
||||
|
||||
@mock.patch.object(neutronapi, 'get_client', return_value=mock.Mock())
|
||||
def test_get_phynet_info_multi_segment(self, mock_get_client):
|
||||
def test_get_physnet_info_multi_segment(self, mock_get_client):
|
||||
api = neutronapi.API()
|
||||
self.mox.ResetAll()
|
||||
test_net = {'network': {'segments':
|
||||
[{'provider:physical_network': 'phynet10',
|
||||
[{'provider:physical_network': 'physnet10',
|
||||
'provider:segmentation_id': 1000,
|
||||
'provider:network_type': 'vlan'},
|
||||
{'provider:physical_network': None,
|
||||
@ -3140,19 +3140,19 @@ class TestNeutronv2(TestNeutronv2Base):
|
||||
mock_client = mock_get_client()
|
||||
mock_client.list_extensions.return_value = test_ext_list
|
||||
mock_client.show_network.return_value = test_net
|
||||
physnet_name = api._get_phynet_info(
|
||||
physnet_name = api._get_physnet_info(
|
||||
self.context, mock_client, 'test-net')
|
||||
|
||||
mock_client.show_network.assert_called_once_with(
|
||||
'test-net', fields='segments')
|
||||
self.assertEqual('phynet10', physnet_name)
|
||||
self.assertEqual('physnet10', physnet_name)
|
||||
|
||||
@mock.patch.object(neutronapi, 'get_client', return_value=mock.Mock())
|
||||
def test_get_phynset_info_vlan_with_multi_segment_ext(
|
||||
def test_get_physnet_info_vlan_with_multi_segment_ext(
|
||||
self, mock_get_client):
|
||||
api = neutronapi.API()
|
||||
self.mox.ResetAll()
|
||||
test_net = {'network': {'provider:physical_network': 'phynet10',
|
||||
test_net = {'network': {'provider:physical_network': 'physnet10',
|
||||
'provider:segmentation_id': 1000,
|
||||
'provider:network_type': 'vlan'}}
|
||||
test_ext_list = {'extensions':
|
||||
@ -3162,15 +3162,15 @@ class TestNeutronv2(TestNeutronv2Base):
|
||||
mock_client = mock_get_client()
|
||||
mock_client.list_extensions.return_value = test_ext_list
|
||||
mock_client.show_network.return_value = test_net
|
||||
physnet_name = api._get_phynet_info(
|
||||
physnet_name = api._get_physnet_info(
|
||||
self.context, mock_client, 'test-net')
|
||||
|
||||
mock_client.show_network.assert_called_with(
|
||||
'test-net', fields='provider:physical_network')
|
||||
self.assertEqual('phynet10', physnet_name)
|
||||
'test-net', fields=['provider:physical_network'])
|
||||
self.assertEqual('physnet10', physnet_name)
|
||||
|
||||
@mock.patch.object(neutronapi, 'get_client', return_value=mock.Mock())
|
||||
def test_get_phynet_info_multi_segment_no_physnet(
|
||||
def test_get_physnet_info_multi_segment_no_physnet(
|
||||
self, mock_get_client):
|
||||
api = neutronapi.API()
|
||||
self.mox.ResetAll()
|
||||
@ -3189,7 +3189,7 @@ class TestNeutronv2(TestNeutronv2Base):
|
||||
mock_client.list_extensions.return_value = test_ext_list
|
||||
mock_client.show_network.return_value = test_net
|
||||
self.assertRaises(exception.NovaException,
|
||||
api._get_phynet_info,
|
||||
api._get_physnet_info,
|
||||
self.context, mock_client, 'test-net')
|
||||
|
||||
def _test_get_port_vnic_info(self, mock_get_client,
|
||||
@ -4693,13 +4693,13 @@ class TestNeutronv2WithMock(test.TestCase):
|
||||
'id': uuids.port,
|
||||
'binding:profile': {'pci_vendor_info': '1377:0047',
|
||||
'pci_slot': '0000:0a:00.1',
|
||||
'physical_network': 'phynet1',
|
||||
'physical_network': 'physnet1',
|
||||
'capabilities': ['switchdev']}
|
||||
}
|
||||
self.api._unbind_ports(self.context, ports, neutron, port_client)
|
||||
port_req_body = {'port': {'binding:host_id': None,
|
||||
'binding:profile':
|
||||
{'physical_network': 'phynet1',
|
||||
{'physical_network': 'physnet1',
|
||||
'capabilities': ['switchdev']},
|
||||
'device_id': '',
|
||||
'device_owner': ''}
|
||||
@ -4915,11 +4915,11 @@ class TestNeutronv2WithMock(test.TestCase):
|
||||
self.context, pci_requests, requested_networks)
|
||||
self.assertFalse(getclient.called)
|
||||
|
||||
@mock.patch.object(neutronapi.API, '_get_phynet_info')
|
||||
@mock.patch.object(neutronapi.API, '_get_physnet_info')
|
||||
@mock.patch.object(neutronapi.API, "_get_port_vnic_info")
|
||||
@mock.patch.object(neutronapi, 'get_client')
|
||||
def test_create_pci_requests_for_sriov_ports(self, getclient,
|
||||
mock_get_port_vnic_info, mock_get_phynet_info):
|
||||
mock_get_port_vnic_info, mock_get_physnet_info):
|
||||
requested_networks = objects.NetworkRequestList(
|
||||
objects = [
|
||||
objects.NetworkRequest(port_id=uuids.portid_1),
|
||||
@ -4938,7 +4938,7 @@ class TestNeutronv2WithMock(test.TestCase):
|
||||
(model.VNIC_TYPE_DIRECT_PHYSICAL, None, 'netN'),
|
||||
(model.VNIC_TYPE_DIRECT, True, 'netN'),
|
||||
]
|
||||
mock_get_phynet_info.side_effect = [
|
||||
mock_get_physnet_info.side_effect = [
|
||||
'physnet1', '', 'physnet1', 'physnet2', 'physnet3', 'physnet4',
|
||||
]
|
||||
api = neutronapi.API()
|
||||
@ -5084,12 +5084,12 @@ class TestNeutronv2Portbinding(TestNeutronv2Base):
|
||||
mydev = PciDevice(**pci_dev)
|
||||
profile = {'pci_vendor_info': '1377:0047',
|
||||
'pci_slot': '0000:0a:00.1',
|
||||
'physical_network': 'phynet1',
|
||||
'physical_network': 'physnet1',
|
||||
}
|
||||
|
||||
mock_get_instance_pci_devs.return_value = [mydev]
|
||||
devspec = mock.Mock()
|
||||
devspec.get_tags.return_value = {'physical_network': 'phynet1'}
|
||||
devspec.get_tags.return_value = {'physical_network': 'physnet1'}
|
||||
mock_get_pci_device_devspec.return_value = devspec
|
||||
api._populate_neutron_binding_profile(instance,
|
||||
pci_req_id, port_req_body)
|
||||
@ -5118,13 +5118,13 @@ class TestNeutronv2Portbinding(TestNeutronv2Base):
|
||||
mydev = PciDevice(**pci_dev)
|
||||
profile = {'pci_vendor_info': '1377:0047',
|
||||
'pci_slot': '0000:0a:00.1',
|
||||
'physical_network': 'phynet1',
|
||||
'physical_network': 'physnet1',
|
||||
'capabilities': ['switchdev'],
|
||||
}
|
||||
|
||||
mock_get_instance_pci_devs.return_value = [mydev]
|
||||
devspec = mock.Mock()
|
||||
devspec.get_tags.return_value = {'physical_network': 'phynet1'}
|
||||
devspec.get_tags.return_value = {'physical_network': 'physnet1'}
|
||||
mock_get_pci_device_devspec.return_value = devspec
|
||||
api._populate_neutron_binding_profile(instance,
|
||||
pci_req_id, port_req_body)
|
||||
|
Loading…
x
Reference in New Issue
Block a user