]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Don't update metadata_proxy if metadata is not enabled
authorHong Hui Xiao <xiaohhui@cn.ibm.com>
Wed, 28 Oct 2015 09:57:43 +0000 (05:57 -0400)
committerHong Hui Xiao <xiaohhui@cn.ibm.com>
Wed, 28 Oct 2015 09:57:43 +0000 (05:57 -0400)
When enable_metadata_proxy is false, the agent instance will
not have metadata_driver. And agent should avoid using it.

Change-Id: Ia18dc5dea23de49b97c8f225532531eb9232fb51
Closes-Bug: #1510399

neutron/agent/l3/ha.py
neutron/tests/unit/agent/l3/test_agent.py

index 93e0789358c994d08253a8c9b86166b92d45dbc1..2c2044acb38f8ab6c128d11cfc8121add54eaab6 100644 (file)
@@ -123,7 +123,8 @@ class AgentMixin(object):
             return
 
         self._configure_ipv6_ra_on_ext_gw_port_if_necessary(ri, state)
-        self._update_metadata_proxy(ri, router_id, state)
+        if self.conf.enable_metadata_proxy:
+            self._update_metadata_proxy(ri, router_id, state)
         self._update_radvd_daemon(ri, state)
         self.state_change_notifier.queue_event((router_id, state))
 
index fa8730af71a041769ecd2d226ecc3e1475a2c95b..c205e5d3e19ad2509c3e41a7a0c4099148de3674 100644 (file)
@@ -185,6 +185,16 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework):
         # Make sure the exceptional code path has coverage
         agent.enqueue_state_change(non_existent_router, 'master')
 
+    def test_enqueue_state_change_metadata_disable(self):
+        self.conf.set_override('enable_metadata_proxy', False)
+        agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
+        router = mock.Mock()
+        router_info = mock.MagicMock()
+        agent.router_info[router.id] = router_info
+        agent._update_metadata_proxy = mock.Mock()
+        agent.enqueue_state_change(router.id, 'master')
+        self.assertFalse(agent._update_metadata_proxy.call_count)
+
     def test_periodic_sync_routers_task_raise_exception(self):
         agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
         self.plugin_api.get_routers.side_effect = ValueError