Remove binding:profile update from Mellanox ML2 MD
Remove temporary work-around that populates physical_network in binding:profile. Now when both neutron and nova use binding:vif_details to pass attributes to plug neutron port, this work-around is not nequired. Remove related temporary code from ML2 plugin. Change-Id: Ib37203af396f31080b1b27b500a571c20917f5a4 Closes-Bug: 1360762
This commit is contained in:
parent
610d2e7338
commit
185f1ad6e5
@ -2,5 +2,3 @@
|
||||
# (StrOpt) Type of Network Interface to allocate for VM:
|
||||
# mlnx_direct or hostdev according to libvirt terminology
|
||||
# vnic_type = mlnx_direct
|
||||
# (BoolOpt) Enable server compatibility with old nova
|
||||
# apply_profile_patch = False
|
||||
|
@ -23,9 +23,6 @@ eswitch_opts = [
|
||||
default=portbindings.VIF_TYPE_MLNX_DIRECT,
|
||||
help=_("Type of VM network interface: mlnx_direct or "
|
||||
"hostdev")),
|
||||
cfg.BoolOpt('apply_profile_patch',
|
||||
default=False,
|
||||
help=_("Enable server compatibility with old nova")),
|
||||
]
|
||||
|
||||
|
||||
|
@ -18,7 +18,6 @@ from oslo.config import cfg
|
||||
|
||||
from neutron.common import constants
|
||||
from neutron.extensions import portbindings
|
||||
from neutron.openstack.common import jsonutils
|
||||
from neutron.openstack.common import log
|
||||
from neutron.plugins.ml2 import driver_api as api
|
||||
from neutron.plugins.ml2.drivers import mech_agent
|
||||
@ -49,7 +48,6 @@ class MlnxMechanismDriver(mech_agent.SimpleAgentMechanismDriverBase):
|
||||
cfg.CONF.ESWITCH.vnic_type,
|
||||
{portbindings.CAP_PORT_FILTER: False},
|
||||
portbindings.VNIC_TYPES)
|
||||
self.update_profile = cfg.CONF.ESWITCH.apply_profile_patch
|
||||
|
||||
def check_segment_for_agent(self, segment, agent):
|
||||
mappings = agent['configurations'].get('interface_mappings', {})
|
||||
@ -75,13 +73,6 @@ class MlnxMechanismDriver(mech_agent.SimpleAgentMechanismDriverBase):
|
||||
context.set_binding(segment[api.ID],
|
||||
vif_type,
|
||||
self.vif_details)
|
||||
# REVISIT(irenab): Temporary solution till nova support
|
||||
# will be merged for physical_network propagation
|
||||
# via VIF object to VIFDriver (required by mlnx vif plugging).
|
||||
if self.update_profile:
|
||||
profile = {'physical_network':
|
||||
segment['physical_network']}
|
||||
context._binding.profile = jsonutils.dumps(profile)
|
||||
|
||||
def _get_vif_type(self, requested_vnic_type):
|
||||
if requested_vnic_type == portbindings.VNIC_MACVTAP:
|
||||
|
@ -336,14 +336,6 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
|
||||
cur_binding.driver = new_binding.driver
|
||||
cur_binding.segment = new_binding.segment
|
||||
|
||||
# REVISIT(rkukura): The binding:profile attribute is
|
||||
# supposed to be input-only, but the Mellanox driver
|
||||
# currently modifies it while binding. Remove this
|
||||
# code when the Mellanox driver has been updated to
|
||||
# use binding:vif_details instead.
|
||||
if cur_binding.profile != new_binding.profile:
|
||||
cur_binding.profile = new_binding.profile
|
||||
|
||||
# Update PortContext's port dictionary to reflect the
|
||||
# updated binding state.
|
||||
self._update_port_dict_binding(port, cur_binding)
|
||||
@ -891,8 +883,6 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
|
||||
cur_binding.vif_details = new_binding.vif_details
|
||||
cur_binding.driver = new_binding.driver
|
||||
cur_binding.segment = new_binding.segment
|
||||
if cur_binding.profile != new_binding.profile:
|
||||
cur_binding.profile = new_binding.profile
|
||||
|
||||
def delete_port(self, context, id, l3_port_check=True):
|
||||
LOG.debug(_("Deleting port %s"), id)
|
||||
|
@ -14,9 +14,6 @@
|
||||
# under the License.
|
||||
|
||||
|
||||
import mock
|
||||
from oslo.config import cfg
|
||||
|
||||
from neutron.common import constants
|
||||
from neutron.extensions import portbindings
|
||||
from neutron.plugins.ml2 import driver_api as api
|
||||
@ -94,30 +91,6 @@ class MlnxMechanismVnicTypeTestCase(MlnxMechanismBaseTestCase,
|
||||
self.VIF_TYPE)
|
||||
|
||||
|
||||
class MlnxMechanismProfileTestCase(MlnxMechanismBaseTestCase):
|
||||
def setUp(self):
|
||||
cfg.CONF.set_override('apply_profile_patch', True, 'ESWITCH')
|
||||
super(MlnxMechanismProfileTestCase, self).setUp()
|
||||
|
||||
def test_profile_contains_physical_net(self):
|
||||
VLAN_SEGMENTS = [{api.ID: 'vlan_segment_id',
|
||||
api.NETWORK_TYPE: 'vlan',
|
||||
api.PHYSICAL_NETWORK: 'fake_physical_network',
|
||||
api.SEGMENTATION_ID: 1234}]
|
||||
|
||||
context = base.FakePortContext(self.AGENT_TYPE,
|
||||
self.AGENTS,
|
||||
VLAN_SEGMENTS,
|
||||
portbindings.VNIC_DIRECT)
|
||||
context._binding = mock.Mock()
|
||||
context._binding.profile = {}
|
||||
segment = VLAN_SEGMENTS[0]
|
||||
agent = self.AGENTS[0]
|
||||
self.driver.try_to_bind_segment_for_agent(context, segment, agent)
|
||||
self.assertEqual('{"physical_network": "fake_physical_network"}',
|
||||
context._binding.profile)
|
||||
|
||||
|
||||
class MlnxMechanismVifDetailsTestCase(MlnxMechanismBaseTestCase):
|
||||
def setUp(self):
|
||||
super(MlnxMechanismVifDetailsTestCase, self).setUp()
|
||||
|
Loading…
Reference in New Issue
Block a user