Enable OVS and NETNS utilities to perform logging

Fixes bug 1118517

Change-Id: I623c39b7d05accc49f88922d5d2c7ecfb8562a52
This commit is contained in:
Gary Kotton 2013-02-07 16:22:20 +00:00
parent cde6ac18a0
commit a5accc0852
4 changed files with 42 additions and 36 deletions

View File

@ -68,11 +68,10 @@ def setup_conf():
help=_('Delete the namespace by removing all devices.')), help=_('Delete the namespace by removing all devices.')),
] ]
conf = cfg.ConfigOpts() conf = cfg.CONF
conf.register_opts(opts) conf.register_opts(opts)
agent_config.register_root_helper(conf) agent_config.register_root_helper(conf)
conf.register_opts(dhcp.OPTS) conf.register_opts(dhcp.OPTS)
config.setup_logging(conf)
return conf return conf
@ -168,6 +167,7 @@ def main():
conf = setup_conf() conf = setup_conf()
conf() conf()
config.setup_logging(conf)
root_helper = agent_config.get_root_helper(conf) root_helper = agent_config.get_root_helper(conf)
# Identify namespaces that are candidates for deletion. # Identify namespaces that are candidates for deletion.

View File

@ -43,12 +43,11 @@ def setup_conf():
'bridges.')) 'bridges.'))
] ]
conf = cfg.ConfigOpts() conf = cfg.CONF
conf.register_cli_opts(opts) conf.register_cli_opts(opts)
conf.register_opts(l3_agent.L3NATAgent.OPTS) conf.register_opts(l3_agent.L3NATAgent.OPTS)
conf.register_opts(interface.OPTS) conf.register_opts(interface.OPTS)
agent_config.register_root_helper(conf) agent_config.register_root_helper(conf)
config.setup_logging(conf)
return conf return conf
@ -81,6 +80,7 @@ def main():
conf = setup_conf() conf = setup_conf()
conf() conf()
config.setup_logging(conf)
configuration_bridges = set([conf.ovs_integration_bridge, configuration_bridges = set([conf.ovs_integration_bridge,
conf.external_network_bridge]) conf.external_network_bridge])

View File

@ -19,6 +19,7 @@ import mock
import unittest2 as unittest import unittest2 as unittest
from quantum.agent import netns_cleanup_util as util from quantum.agent import netns_cleanup_util as util
from quantum.openstack.common import cfg
class TestNullDelegate(unittest.TestCase): class TestNullDelegate(unittest.TestCase):
@ -28,10 +29,8 @@ class TestNullDelegate(unittest.TestCase):
class TestNetnsCleanup(unittest.TestCase): class TestNetnsCleanup(unittest.TestCase):
def test_setup_conf(self): def tearDown(self):
with mock.patch('quantum.common.config.setup_logging'): cfg.CONF.reset()
conf = util.setup_conf()
self.assertFalse(conf.force)
def test_kill_dhcp(self, dhcp_active=True): def test_kill_dhcp(self, dhcp_active=True):
conf = mock.Mock() conf = mock.Mock()
@ -213,20 +212,21 @@ class TestNetnsCleanup(unittest.TestCase):
with mock.patch.multiple(util, **methods_to_mock) as mocks: with mock.patch.multiple(util, **methods_to_mock) as mocks:
mocks['eligible_for_deletion'].return_value = True mocks['eligible_for_deletion'].return_value = True
mocks['setup_conf'].return_value = conf mocks['setup_conf'].return_value = conf
util.main() with mock.patch('quantum.common.config.setup_logging'):
util.main()
mocks['eligible_for_deletion'].assert_has_calls( mocks['eligible_for_deletion'].assert_has_calls(
[mock.call(conf, 'ns1', False), [mock.call(conf, 'ns1', False),
mock.call(conf, 'ns2', False)]) mock.call(conf, 'ns2', False)])
mocks['destroy_namespace'].assert_has_calls( mocks['destroy_namespace'].assert_has_calls(
[mock.call(conf, 'ns1', False), [mock.call(conf, 'ns1', False),
mock.call(conf, 'ns2', False)]) mock.call(conf, 'ns2', False)])
ip_wrap.assert_has_calls( ip_wrap.assert_has_calls(
[mock.call.get_namespaces(conf.AGENT.root_helper)]) [mock.call.get_namespaces(conf.AGENT.root_helper)])
eventlet_sleep.assert_called_once_with(2) eventlet_sleep.assert_called_once_with(2)
def test_main_no_candidates(self): def test_main_no_candidates(self):
namespaces = ['ns1', 'ns2'] namespaces = ['ns1', 'ns2']
@ -244,15 +244,16 @@ class TestNetnsCleanup(unittest.TestCase):
with mock.patch.multiple(util, **methods_to_mock) as mocks: with mock.patch.multiple(util, **methods_to_mock) as mocks:
mocks['eligible_for_deletion'].return_value = False mocks['eligible_for_deletion'].return_value = False
mocks['setup_conf'].return_value = conf mocks['setup_conf'].return_value = conf
util.main() with mock.patch('quantum.common.config.setup_logging'):
util.main()
ip_wrap.assert_has_calls( ip_wrap.assert_has_calls(
[mock.call.get_namespaces(conf.AGENT.root_helper)]) [mock.call.get_namespaces(conf.AGENT.root_helper)])
mocks['eligible_for_deletion'].assert_has_calls( mocks['eligible_for_deletion'].assert_has_calls(
[mock.call(conf, 'ns1', False), [mock.call(conf, 'ns1', False),
mock.call(conf, 'ns2', False)]) mock.call(conf, 'ns2', False)])
self.assertFalse(mocks['destroy_namespace'].called) self.assertFalse(mocks['destroy_namespace'].called)
self.assertFalse(eventlet_sleep.called) self.assertFalse(eventlet_sleep.called)

View File

@ -23,17 +23,20 @@ import unittest2 as unittest
from quantum.agent.linux import ip_lib from quantum.agent.linux import ip_lib
from quantum.agent.linux import ovs_lib from quantum.agent.linux import ovs_lib
from quantum.agent import ovs_cleanup_util as util from quantum.agent import ovs_cleanup_util as util
from quantum.openstack.common import cfg
from quantum.openstack.common import uuidutils from quantum.openstack.common import uuidutils
class TestOVSCleanup(unittest.TestCase): class TestOVSCleanup(unittest.TestCase):
def tearDown(self):
cfg.CONF.reset()
def test_setup_conf(self): def test_setup_conf(self):
with mock.patch('quantum.common.config.setup_logging'): conf = util.setup_conf()
conf = util.setup_conf() self.assertEqual(conf.external_network_bridge, 'br-ex')
self.assertEqual(conf.external_network_bridge, 'br-ex') self.assertEqual(conf.ovs_integration_bridge, 'br-int')
self.assertEqual(conf.ovs_integration_bridge, 'br-int') self.assertFalse(conf.ovs_all_ports)
self.assertFalse(conf.ovs_all_ports) self.assertEqual(conf.AGENT.root_helper, 'sudo')
self.assertEqual(conf.AGENT.root_helper, 'sudo')
def test_main(self): def test_main(self):
bridges = ['br-int', 'br-ex'] bridges = ['br-int', 'br-ex']
@ -54,10 +57,12 @@ class TestOVSCleanup(unittest.TestCase):
return_value=ports), return_value=ports),
mock.patch.object(util, 'delete_quantum_ports') mock.patch.object(util, 'delete_quantum_ports')
) as (_log, _conf, _get, ovs, collect, delete): ) as (_log, _conf, _get, ovs, collect, delete):
util.main() with mock.patch('quantum.common.config.setup_logging'):
ovs.assert_has_calls([mock.call().delete_ports(all_ports=False)]) util.main()
collect.assert_called_once_with(set(bridges), 'dummy_sudo') ovs.assert_has_calls([mock.call().delete_ports(
delete.assert_called_once_with(ports, 'dummy_sudo') all_ports=False)])
collect.assert_called_once_with(set(bridges), 'dummy_sudo')
delete.assert_called_once_with(ports, 'dummy_sudo')
def test_collect_quantum_ports(self): def test_collect_quantum_ports(self):
port1 = ovs_lib.VifPort('tap1234', 1, uuidutils.generate_uuid(), port1 = ovs_lib.VifPort('tap1234', 1, uuidutils.generate_uuid(),