]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Change metadata driver unit tests to use monitored spawn
authorAssaf Muller <amuller@redhat.com>
Wed, 11 Feb 2015 21:11:33 +0000 (16:11 -0500)
committerAssaf Muller <amuller@redhat.com>
Thu, 5 Mar 2015 04:32:31 +0000 (23:32 -0500)
The modified unit test is currently the sole user of the
unmonitored _spawn_metadata_proxy. We must remove this usage so that
when the L3 agent manages the metadata proxy for HA routers,
the unmanaged methods may be removed.

Related-Bug: #1402010
Change-Id: Ib57e63dcadc378ac51702949ed24901d403002dd

neutron/agent/metadata/driver.py
neutron/tests/unit/agent/metadata/test_driver.py

index 7f558caa9d6c81ca59a6dd94e848fd598fad7d86..c908e5581dc377243f170c5a1fe686f336ad9925 100644 (file)
@@ -160,15 +160,3 @@ class MetadataDriver(advanced_service.AdvancedService):
             conf,
             router_id,
             ns_name)
-
-    @classmethod
-    def spawn_metadata_proxy(cls, router_id, ns_name, port, conf):
-        callback = cls._get_metadata_proxy_callback(port, conf,
-                                                    router_id=router_id)
-        pm = cls._get_metadata_proxy_process_manager(router_id, ns_name, conf)
-        pm.enable(callback)
-
-    @classmethod
-    def destroy_metadata_proxy(cls, router_id, ns_name, conf):
-        pm = cls._get_metadata_proxy_process_manager(router_id, ns_name, conf)
-        pm.disable()
index 987c3236c69b4df14335c6325237665eaf0db3ac..43fac13f030c8643639b6136dceab59c69e37ab7 100644 (file)
@@ -19,6 +19,8 @@ import mock
 
 from oslo_config import cfg
 
+from neutron.agent.common import config as agent_config
+from neutron.agent.l3 import agent as l3_agent
 from neutron.agent.l3 import config as l3_config
 from neutron.agent.metadata import driver as metadata_driver
 from neutron.openstack.common import uuidutils
@@ -28,15 +30,7 @@ from neutron.tests import base
 _uuid = uuidutils.generate_uuid
 
 
-class TestMetadataDriver(base.BaseTestCase):
-
-    EUID = 123
-    EGID = 456
-
-    def setUp(self):
-        super(TestMetadataDriver, self).setUp()
-        cfg.CONF.register_opts(l3_config.OPTS)
-        cfg.CONF.register_opts(metadata_driver.MetadataDriver.OPTS)
+class TestMetadataDriverRules(base.BaseTestCase):
 
     def test_metadata_nat_rules(self):
         rules = ('PREROUTING', '-s 0.0.0.0/0 -d 169.254.169.254/32 '
@@ -61,6 +55,26 @@ class TestMetadataDriver(base.BaseTestCase):
             [rule],
             metadata_driver.MetadataDriver.metadata_mangle_rules('0x1'))
 
+
+class TestMetadataDriverProcess(base.BaseTestCase):
+
+    EUID = 123
+    EGID = 456
+
+    def setUp(self):
+        super(TestMetadataDriverProcess, self).setUp()
+        agent_config.register_interface_driver_opts_helper(cfg.CONF)
+        cfg.CONF.set_override('interface_driver',
+                              'neutron.agent.linux.interface.NullDriver')
+        agent_config.register_use_namespaces_opts_helper(cfg.CONF)
+
+        mock.patch('neutron.agent.l3.agent.L3PluginApi').start()
+        mock.patch('neutron.agent.l3.ha.AgentMixin'
+                   '._init_ha_conf_path').start()
+
+        cfg.CONF.register_opts(l3_config.OPTS)
+        cfg.CONF.register_opts(metadata_driver.MetadataDriver.OPTS)
+
     def _test_spawn_metadata_proxy(self, expected_user, expected_group,
                                    user='', group=''):
         router_id = _uuid()
@@ -73,13 +87,17 @@ class TestMetadataDriver(base.BaseTestCase):
         cfg.CONF.set_override('log_file', 'test.log')
         cfg.CONF.set_override('debug', True)
 
-        driver = metadata_driver.MetadataDriver
+        agent = l3_agent.L3NATAgent('localhost')
         with contextlib.nested(
                 mock.patch('os.geteuid', return_value=self.EUID),
                 mock.patch('os.getegid', return_value=self.EGID),
                 mock.patch(ip_class_path)) as (geteuid, getegid, ip_mock):
-            driver.spawn_metadata_proxy(router_id, router_ns, metadata_port,
-                                        cfg.CONF)
+            agent.metadata_driver.spawn_monitored_metadata_proxy(
+                agent.process_monitor,
+                router_ns,
+                metadata_port,
+                agent.conf,
+                router_id=router_id)
             ip_mock.assert_has_calls([
                 mock.call(namespace=router_ns),
                 mock.call().netns.execute([