From 5d02de7d6350329dc592d3b7c14579531837babb Mon Sep 17 00:00:00 2001 From: Jakub Libosvar Date: Thu, 9 Jan 2014 20:38:37 +0100 Subject: [PATCH] Add binding:host_id when creating port for probe When probe is created it needs to have correct bindings otherwise port is marked as dead. Change-Id: I64441fbe802aab068c129c9647c7144fcd4c50a1 Partial-Bug: #1262785 --- neutron/debug/debug_agent.py | 17 +++++++++-------- neutron/tests/unit/test_debug_commands.py | 5 ++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/neutron/debug/debug_agent.py b/neutron/debug/debug_agent.py index 5c0265f59c6..71847557295 100644 --- a/neutron/debug/debug_agent.py +++ b/neutron/debug/debug_agent.py @@ -65,7 +65,6 @@ class NeutronDebugAgent(): bridge = self.conf.external_network_bridge port = self._create_port(network, device_owner) - port.network = network interface_name = self.driver.get_device_name(port) namespace = None if self.conf.use_namespaces: @@ -186,13 +185,15 @@ class NeutronDebugAgent(): return result def _create_port(self, network, device_owner): - body = dict(port=dict( - admin_state_up=True, - network_id=network.id, - device_id='%s' % socket.gethostname(), - device_owner='%s:probe' % device_owner, - tenant_id=network.tenant_id, - fixed_ips=[dict(subnet_id=s.id) for s in network.subnets])) + host = self.conf.host + body = {'port': {'admin_state_up': True, + 'network_id': network.id, + 'device_id': '%s' % socket.gethostname(), + 'device_owner': '%s:probe' % device_owner, + 'tenant_id': network.tenant_id, + 'binding:host_id': host, + 'fixed_ips': [dict(subnet_id=s.id) + for s in network.subnets]}} port_dict = self.client.create_port(body)['port'] port = DictModel(port_dict) port.network = network diff --git a/neutron/tests/unit/test_debug_commands.py b/neutron/tests/unit/test_debug_commands.py index 9410d1a8986..de60b0adc9d 100644 --- a/neutron/tests/unit/test_debug_commands.py +++ b/neutron/tests/unit/test_debug_commands.py @@ -119,6 +119,7 @@ class TestDebugCommands(base.BaseTestCase): 'admin_state_up': True, 'network_id': 'fake_net', 'tenant_id': 'fake_tenant', + 'binding:host_id': cfg.CONF.host, 'fixed_ips': [{'subnet_id': 'fake_subnet'}], 'device_id': socket.gethostname()}} namespace = 'qprobe-fake_port' @@ -138,7 +139,7 @@ class TestDebugCommands(base.BaseTestCase): namespace=namespace )]) - def test_create_newwork_probe(self): + def test_create_network_probe(self): self._test_create_probe(DEVICE_OWNER_NETWORK_PROBE) def test_create_nova_probe(self): @@ -163,6 +164,7 @@ class TestDebugCommands(base.BaseTestCase): 'admin_state_up': True, 'network_id': 'fake_net', 'tenant_id': 'fake_tenant', + 'binding:host_id': cfg.CONF.host, 'fixed_ips': [{'subnet_id': 'fake_subnet'}], 'device_id': socket.gethostname()}} namespace = 'qprobe-fake_port' @@ -313,6 +315,7 @@ class TestDebugCommands(base.BaseTestCase): 'admin_state_up': True, 'network_id': 'fake_net', 'tenant_id': 'fake_tenant', + 'binding:host_id': cfg.CONF.host, 'fixed_ips': [{'subnet_id': 'fake_subnet'}], 'device_id': socket.gethostname()}} expected = [mock.call.show_network('fake_net'),