ML2 BigSwitch: Don't modify parent context
Makes a copy of the port context before changing it in preparation for the backend controller so other drivers are not affected. Also removes a UT that was exercising direct modification of VIF details in the port context, which is not allowed by the ML2 plugin. Closes-Bug: #1294308 Change-Id: I47281dcd23c022813b8b6eda0a3d39c4482277b9
This commit is contained in:
parent
0009e474e2
commit
9014f66fce
|
@ -17,6 +17,7 @@
|
|||
#
|
||||
# @author: Sumit Naiksatam, sumitnaiksatam@gmail.com, Big Switch Networks, Inc.
|
||||
# @author: Kevin Benton, Big Switch Networks, Inc.
|
||||
import copy
|
||||
|
||||
import eventlet
|
||||
from oslo.config import cfg
|
||||
|
@ -94,7 +95,8 @@ class BigSwitchMechanismDriver(NeutronRestProxyV2Base,
|
|||
self.servers.rest_delete_port(net["tenant_id"], net["id"], port['id'])
|
||||
|
||||
def _prepare_port_for_controller(self, context):
|
||||
port = context.current
|
||||
# make a copy so the context isn't changed for other drivers
|
||||
port = copy.deepcopy(context.current)
|
||||
net = context.network.current
|
||||
port['network'] = net
|
||||
port['binding_host'] = context._binding.host
|
||||
|
|
|
@ -77,18 +77,6 @@ class TestBigSwitchMechDriverPortsV2(test_db_plugin.TestPortsV2,
|
|||
self.assertEqual(port['port']['status'], 'DOWN')
|
||||
self.assertEqual(self.port_create_status, 'DOWN')
|
||||
|
||||
# exercise the host_id tracking code
|
||||
def test_port_vif_details(self):
|
||||
kwargs = {'name': 'name', 'binding:host_id': 'ivshost',
|
||||
'device_id': 'override_dev'}
|
||||
with self.port(**kwargs) as port:
|
||||
self.assertEqual(port['port']['binding:vif_type'],
|
||||
portbindings.VIF_TYPE_IVS)
|
||||
kwargs = {'name': 'name2', 'binding:host_id': 'someotherhost',
|
||||
'device_id': 'other_dev'}
|
||||
with self.port(**kwargs) as port:
|
||||
self.assertEqual(port['port']['binding:vif_type'], self.VIF_TYPE)
|
||||
|
||||
def _make_port(self, fmt, net_id, expected_res_status=None, arg_list=None,
|
||||
**kwargs):
|
||||
arg_list = arg_list or ()
|
||||
|
|
Loading…
Reference in New Issue