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:
Irena Berezovsky 2014-08-25 13:56:38 +03:00
parent b50a17400a
commit a8b13e0ecd
5 changed files with 0 additions and 51 deletions

View File

@ -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

View File

@ -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")),
]

View File

@ -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:

View File

@ -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)

View File

@ -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()