From: Oleg Bondarev Date: Thu, 14 May 2015 12:03:54 +0000 (+0300) Subject: Don't pass namespace name in disable_isolated_metadata_proxy X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=6deed4363b6765093d0f3731f40c428810940f9b;p=openstack-build%2Fneutron-build.git Don't pass namespace name in disable_isolated_metadata_proxy It's not always possible/convenient to get namespace name when need to disable some process (like metadata process for stale router, see related bug). Since namespace name is not required for process manager to disable process we can remove this parameter from disable_isolated_metadata_proxy() Change-Id: I0e0da01d9640aa9920f41989804fc6f320c1c1eb Related-Bug: #1455042 --- diff --git a/neutron/agent/dhcp/agent.py b/neutron/agent/dhcp/agent.py index 1942fc652..89fd0773e 100644 --- a/neutron/agent/dhcp/agent.py +++ b/neutron/agent/dhcp/agent.py @@ -379,7 +379,7 @@ class DhcpAgent(manager.Manager): def disable_isolated_metadata_proxy(self, network): metadata_driver.MetadataDriver.destroy_monitored_metadata_proxy( - self._process_monitor, network.id, network.namespace, self.conf) + self._process_monitor, network.id, self.conf) class DhcpPluginApi(object): diff --git a/neutron/agent/l3/ha.py b/neutron/agent/l3/ha.py index ffe6a82c5..95f3fd763 100644 --- a/neutron/agent/l3/ha.py +++ b/neutron/agent/l3/ha.py @@ -134,7 +134,7 @@ class AgentMixin(object): else: LOG.debug('Closing metadata proxy for router %s', router_id) self.metadata_driver.destroy_monitored_metadata_proxy( - self.process_monitor, ri.router_id, ri.ns_name, self.conf) + self.process_monitor, ri.router_id, self.conf) def _update_radvd_daemon(self, ri, state): # Radvd has to be spawned only on the Master HA Router. If there are diff --git a/neutron/agent/metadata/driver.py b/neutron/agent/metadata/driver.py index 437e5efe0..94e2a3092 100644 --- a/neutron/agent/metadata/driver.py +++ b/neutron/agent/metadata/driver.py @@ -116,19 +116,21 @@ class MetadataDriver(object): uuid = network_id or router_id callback = cls._get_metadata_proxy_callback( port, conf, network_id=network_id, router_id=router_id) - pm = cls._get_metadata_proxy_process_manager(uuid, ns_name, conf, + pm = cls._get_metadata_proxy_process_manager(uuid, conf, + ns_name=ns_name, callback=callback) pm.enable() monitor.register(uuid, METADATA_SERVICE_NAME, pm) @classmethod - def destroy_monitored_metadata_proxy(cls, monitor, uuid, ns_name, conf): + def destroy_monitored_metadata_proxy(cls, monitor, uuid, conf): monitor.unregister(uuid, METADATA_SERVICE_NAME) - pm = cls._get_metadata_proxy_process_manager(uuid, ns_name, conf) + # No need to pass ns name as it's not needed for disable() + pm = cls._get_metadata_proxy_process_manager(uuid, conf) pm.disable() @classmethod - def _get_metadata_proxy_process_manager(cls, router_id, ns_name, conf, + def _get_metadata_proxy_process_manager(cls, router_id, conf, ns_name=None, callback=None): return external_process.ProcessManager( conf=conf, @@ -172,5 +174,4 @@ def before_router_removed(resource, event, l3_agent, **kwargs): proxy.destroy_monitored_metadata_proxy(l3_agent.process_monitor, router.router['id'], - router.ns_name, l3_agent.conf) diff --git a/neutron/tests/unit/agent/dhcp/test_agent.py b/neutron/tests/unit/agent/dhcp/test_agent.py index 2dcda88f6..6ea10afef 100644 --- a/neutron/tests/unit/agent/dhcp/test_agent.py +++ b/neutron/tests/unit/agent/dhcp/test_agent.py @@ -567,10 +567,10 @@ class TestDhcpAgentEventHandler(base.BaseTestCase): ) self.external_process = self.external_process_p.start() - def _process_manager_constructor_call(self): + def _process_manager_constructor_call(self, ns=FAKE_NETWORK_DHCP_NS): return mock.call(conf=cfg.CONF, uuid=FAKE_NETWORK_UUID, - namespace=FAKE_NETWORK_DHCP_NS, + namespace=ns, default_cmd_callback=mock.ANY) def _enable_dhcp_helper(self, network, enable_isolated_metadata=False, @@ -709,7 +709,7 @@ class TestDhcpAgentEventHandler(base.BaseTestCase): self.call_driver.assert_called_once_with('disable', fake_network) if isolated_metadata: self.external_process.assert_has_calls([ - self._process_manager_constructor_call(), + self._process_manager_constructor_call(ns=None), mock.call().disable()]) else: self.assertFalse(self.external_process.call_count) @@ -741,7 +741,7 @@ class TestDhcpAgentEventHandler(base.BaseTestCase): [mock.call.get_network_by_id(fake_network.id)]) if isolated_metadata: self.external_process.assert_has_calls([ - self._process_manager_constructor_call(), + self._process_manager_constructor_call(ns=None), mock.call().disable() ]) else: @@ -768,7 +768,6 @@ class TestDhcpAgentEventHandler(base.BaseTestCase): self.dhcp.disable_isolated_metadata_proxy(fake_network) destroy.assert_called_once_with(self.dhcp._process_monitor, fake_network.id, - fake_network.namespace, cfg.CONF) def _test_metadata_network(self, network): diff --git a/neutron/tests/unit/agent/l3/test_agent.py b/neutron/tests/unit/agent/l3/test_agent.py index d27d01784..5f0852b2e 100644 --- a/neutron/tests/unit/agent/l3/test_agent.py +++ b/neutron/tests/unit/agent/l3/test_agent.py @@ -1974,7 +1974,6 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework): if enableflag: destroy_proxy.assert_called_with(mock.ANY, router_id, - mock.ANY, mock.ANY) else: self.assertFalse(destroy_proxy.call_count)