From 3d6381fd524f980d32d7129292372b0707d479a0 Mon Sep 17 00:00:00 2001 From: Kevin Benton Date: Tue, 18 Mar 2014 13:11:27 -0700 Subject: [PATCH] BigSwitch ML2: Include bound_segment in port Includes bound segment in port create/update requests to disambiguate when the parent network has multiple segments. Closes-Bug: #1294355 Change-Id: I59ef38aa5de46c1229384e0c4a9f0ee01c1bc678 --- neutron/plugins/ml2/drivers/mech_bigswitch/driver.py | 1 + neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/neutron/plugins/ml2/drivers/mech_bigswitch/driver.py b/neutron/plugins/ml2/drivers/mech_bigswitch/driver.py index ced7b37ff..9bede3933 100644 --- a/neutron/plugins/ml2/drivers/mech_bigswitch/driver.py +++ b/neutron/plugins/ml2/drivers/mech_bigswitch/driver.py @@ -98,6 +98,7 @@ class BigSwitchMechanismDriver(NeutronRestProxyV2Base, net = context.network.current port['network'] = net port['binding_host'] = context._binding.host + port['bound_segment'] = context.bound_segment actx = ctx.get_admin_context() if (portbindings.HOST_ID in port and 'id' in port): host_id = port[portbindings.HOST_ID] diff --git a/neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py b/neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py index c1d3c5277..4defb2d2f 100644 --- a/neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py +++ b/neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py @@ -123,3 +123,14 @@ class TestBigSwitchMechDriverPortsV2(test_db_plugin.TestPortsV2, ) ]) self.spawn_p.start() + + def test_backend_request_contents(self): + with nested( + mock.patch(SERVER_POOL + '.rest_create_port'), + self.port(**{'device_id': 'devid', 'binding:host_id': 'host'}) + ) as (mock_rest, p): + # make sure basic expected keys are present in the port body + pb = mock_rest.mock_calls[0][1][2] + self.assertEqual('host', pb['binding_host']) + self.assertIn('bound_segment', pb) + self.assertIn('network', pb) -- 2.45.2