]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Exit if DHCP agent interface_driver is not defined
authorGary Kotton <gkotton@redhat.com>
Tue, 19 Feb 2013 11:34:00 +0000 (11:34 +0000)
committerGary Kotton <gkotton@redhat.com>
Tue, 19 Feb 2013 15:56:58 +0000 (15:56 +0000)
Fixes bug 1130052

In addition to this:
Uses "raise  SystemExit()" instaed of the exit for the L3
agent.

Change-Id: I8130745c9de62619189e158944fa9e4ed25be774

quantum/agent/dhcp_agent.py
quantum/agent/l3_agent.py
quantum/tests/unit/test_dhcp_agent.py

index 333fa86c3449d140ce238a4a6175eedeea0856f6..fda604cd866fbd57c5412781db5986a6ec6b2efb 100644 (file)
@@ -481,8 +481,14 @@ class DeviceManager(object):
         self.root_helper = config.get_root_helper(conf)
         self.plugin = plugin
         if not conf.interface_driver:
-            LOG.error(_('You must specify an interface driver'))
-        self.driver = importutils.import_object(conf.interface_driver, conf)
+            raise SystemExit(_('You must specify an interface driver'))
+        try:
+            self.driver = importutils.import_object(conf.interface_driver,
+                                                    conf)
+        except:
+            msg = _("Error importing interface driver "
+                    "'%s'") % conf.interface_driver
+            raise SystemExit(msg)
 
     def get_interface_name(self, network, port=None):
         """Return interface(device) name for use by the DHCP process."""
index d8f3eaf2f4050cdc10571f2cb5c698d97c61bc27..9e45f2cad4cb06ced770c1d3acc430fb12714b9e 100644 (file)
@@ -154,15 +154,15 @@ class L3NATAgent(manager.Manager):
         self.router_info = {}
 
         if not self.conf.interface_driver:
-            LOG.error(_('An interface driver must be specified'))
-            sys.exit(1)
+            raise SystemExit(_('An interface driver must be specified'))
         try:
             self.driver = importutils.import_object(self.conf.interface_driver,
                                                     self.conf)
         except:
-            LOG.exception(_("Error importing interface driver '%s'"),
-                          self.conf.interface_driver)
-            sys.exit(1)
+            msg = _("Error importing interface driver "
+                    "'%s'") % self.conf.interface_driver
+            raise SystemExit(msg)
+
         self.context = context.get_admin_context_without_session()
         self.plugin_rpc = L3PluginApi(topics.PLUGIN, host)
         self.fullsync = True
index b109f12e66a845d1114978a6995f777895e4d1db..fbc6f03fcfecd7c043fc96835c64c8e24a8609c2 100644 (file)
@@ -113,6 +113,8 @@ class TestDhcpAgent(unittest.TestCase):
         cfg.CONF.register_opts(dhcp_agent.DeviceManager.OPTS)
         cfg.CONF.register_opts(dhcp_agent.DhcpAgent.OPTS)
         cfg.CONF.register_opts(dhcp_agent.DhcpLeaseRelay.OPTS)
+        cfg.CONF.set_override('interface_driver',
+                              'quantum.agent.linux.interface.NullDriver')
         self.driver_cls_p = mock.patch(
             'quantum.agent.dhcp_agent.importutils.import_class')
         self.driver = mock.Mock(name='driver')