From 15c9a7e1487045003239bd23835278c3d13e2061 Mon Sep 17 00:00:00 2001 From: Darragh O'Reilly Date: Mon, 2 Dec 2013 12:49:50 +0000 Subject: [PATCH] Fix bad call in port_update in linuxbridge agent A call to update_device_down() was made on the wrong object. Also adds unit tests for code paths to update_device_down() and update_device_up(). Partial-Bug: 1256950 Change-Id: I34e364d4c29441d0b62b665a4ce1d02b5d08d465 --- .../agent/linuxbridge_neutron_agent.py | 10 ++++---- .../unit/linuxbridge/test_lb_neutron_agent.py | 24 +++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py index ee6e0b5de..54ce9959d 100755 --- a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py +++ b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py @@ -661,10 +661,12 @@ class LinuxBridgeRpcCallbacks(sg_rpc.SecurityGroupAgentRpcCallbackMixin, self.agent.agent_id, cfg.CONF.host) else: - self.plugin_rpc.update_device_down(self.context, - tap_device_name, - self.agent.agent_id, - cfg.CONF.host) + self.agent.plugin_rpc.update_device_down( + self.context, + tap_device_name, + self.agent.agent_id, + cfg.CONF.host + ) else: bridge_name = self.agent.br_mgr.get_bridge_name( port['network_id']) diff --git a/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py b/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py index 734b83a44..0b96c8b2b 100644 --- a/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py +++ b/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py @@ -770,6 +770,30 @@ class TestLinuxBridgeRpcCallbacks(base.BaseTestCase): addif_fn.assert_called_with(port["network_id"], lconst.TYPE_LOCAL, None, None, port["id"]) + addif_fn.return_value = True + self.lb_rpc.port_update("unused_context", port=port, + network_type=lconst.TYPE_LOCAL, + segmentation_id=None, + physical_network=None) + rpc_obj.update_device_up.assert_called_with( + self.lb_rpc.context, + "tap123", + self.lb_rpc.agent.agent_id, + cfg.CONF.host + ) + + addif_fn.return_value = False + self.lb_rpc.port_update("unused_context", port=port, + network_type=lconst.TYPE_LOCAL, + segmentation_id=None, + physical_network=None) + rpc_obj.update_device_down.assert_called_with( + self.lb_rpc.context, + "tap123", + self.lb_rpc.agent.agent_id, + cfg.CONF.host + ) + port["admin_state_up"] = False port["security_groups"] = True getbr_fn.return_value = "br0" -- 2.45.2