Merge "Add error log for SystemExit in dhcp-agent"
This commit is contained in:
commit
305c4c5d3b
@ -553,7 +553,9 @@ class DeviceManager(object):
|
|||||||
self.root_helper = root_helper
|
self.root_helper = root_helper
|
||||||
self.plugin = plugin
|
self.plugin = plugin
|
||||||
if not conf.interface_driver:
|
if not conf.interface_driver:
|
||||||
raise SystemExit(_('You must specify an interface driver'))
|
msg = _('An interface driver must be specified')
|
||||||
|
LOG.error(msg)
|
||||||
|
raise SystemExit(msg)
|
||||||
try:
|
try:
|
||||||
self.driver = importutils.import_object(
|
self.driver = importutils.import_object(
|
||||||
conf.interface_driver, conf)
|
conf.interface_driver, conf)
|
||||||
@ -561,6 +563,7 @@ class DeviceManager(object):
|
|||||||
msg = (_("Error importing interface driver '%(driver)s': "
|
msg = (_("Error importing interface driver '%(driver)s': "
|
||||||
"%(inner)s") % {'driver': conf.interface_driver,
|
"%(inner)s") % {'driver': conf.interface_driver,
|
||||||
'inner': e})
|
'inner': e})
|
||||||
|
LOG.error(msg)
|
||||||
raise SystemExit(msg)
|
raise SystemExit(msg)
|
||||||
|
|
||||||
def get_interface_name(self, network, port):
|
def get_interface_name(self, network, port):
|
||||||
|
@ -139,12 +139,7 @@ class TestDhcpAgent(base.BaseTestCase):
|
|||||||
self.driver_cls.return_value = self.driver
|
self.driver_cls.return_value = self.driver
|
||||||
self.mock_makedirs_p = mock.patch("os.makedirs")
|
self.mock_makedirs_p = mock.patch("os.makedirs")
|
||||||
self.mock_makedirs = self.mock_makedirs_p.start()
|
self.mock_makedirs = self.mock_makedirs_p.start()
|
||||||
|
self.addCleanup(mock.patch.stopall)
|
||||||
def tearDown(self):
|
|
||||||
self.driver_cls_p.stop()
|
|
||||||
self.mock_makedirs_p.stop()
|
|
||||||
cfg.CONF.reset()
|
|
||||||
super(TestDhcpAgent, self).tearDown()
|
|
||||||
|
|
||||||
def test_dhcp_agent_manager(self):
|
def test_dhcp_agent_manager(self):
|
||||||
state_rpc_str = 'neutron.agent.rpc.PluginReportStateAPI'
|
state_rpc_str = 'neutron.agent.rpc.PluginReportStateAPI'
|
||||||
@ -319,6 +314,25 @@ class TestDhcpAgent(base.BaseTestCase):
|
|||||||
|
|
||||||
self.assertEqual(set(networks), set(dhcp.cache.get_network_ids()))
|
self.assertEqual(set(networks), set(dhcp.cache.get_network_ids()))
|
||||||
|
|
||||||
|
def test_none_interface_driver(self):
|
||||||
|
cfg.CONF.set_override('interface_driver', None)
|
||||||
|
with mock.patch.object(dhcp, 'LOG') as log:
|
||||||
|
self.assertRaises(SystemExit, dhcp.DeviceManager,
|
||||||
|
cfg.CONF, 'sudo', None)
|
||||||
|
msg = 'An interface driver must be specified'
|
||||||
|
log.error.assert_called_once_with(msg)
|
||||||
|
|
||||||
|
def test_nonexistent_interface_driver(self):
|
||||||
|
# Temporarily turn off mock, so could use the real import_class
|
||||||
|
# to import interface_driver.
|
||||||
|
self.driver_cls_p.stop()
|
||||||
|
self.addCleanup(self.driver_cls_p.start)
|
||||||
|
cfg.CONF.set_override('interface_driver', 'foo')
|
||||||
|
with mock.patch.object(dhcp, 'LOG') as log:
|
||||||
|
self.assertRaises(SystemExit, dhcp.DeviceManager,
|
||||||
|
cfg.CONF, 'sudo', None)
|
||||||
|
log.error.assert_called_once()
|
||||||
|
|
||||||
|
|
||||||
class TestLogArgs(base.BaseTestCase):
|
class TestLogArgs(base.BaseTestCase):
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user