from oslo.config import cfg
from neutron.agent.common import config as agent_config
+from neutron.agent import dhcp_agent
from neutron.agent import l3_agent
from neutron.agent.linux import dhcp
+from neutron.agent.linux import interface
from neutron.agent.linux import ip_lib
from neutron.agent.linux import ovs_lib
from neutron.api.v2 import attributes
attributes.UUID_PATTERN)
-class FakeNetwork(object):
- def __init__(self, id):
- self.id = id
+class FakeDhcpPlugin(object):
+ """Fake RPC plugin to bypass any RPC calls."""
+ def __getattribute__(self, name):
+ def fake_method(*args):
+ pass
+ return fake_method
def setup_conf():
help=_('Delete the namespace by removing all devices.')),
]
- opts = [
- cfg.StrOpt('dhcp_driver',
- default='neutron.agent.linux.dhcp.Dnsmasq',
- help=_("The driver used to manage the DHCP server.")),
- ]
-
conf = cfg.CONF
conf.register_cli_opts(cli_opts)
- conf.register_opts(opts)
agent_config.register_interface_driver_opts_helper(conf)
+ agent_config.register_use_namespaces_opts_helper(conf)
agent_config.register_root_helper(conf)
conf.register_opts(dhcp.OPTS)
+ conf.register_opts(dhcp_agent.DhcpAgent.OPTS)
+ conf.register_opts(interface.OPTS)
return conf
dhcp_driver = importutils.import_object(
conf.dhcp_driver,
- conf,
- FakeNetwork(network_id),
- root_helper)
+ conf=conf,
+ network=dhcp.NetModel(conf.use_namespaces, {'id': network_id}),
+ root_helper=root_helper,
+ plugin=FakeDhcpPlugin())
if dhcp_driver.active:
dhcp_driver.disable()
import mock
+from neutron.agent.linux import interface
from neutron.agent import netns_cleanup_util as util
from neutron.tests import base
class TestNetnsCleanup(base.BaseTestCase):
+ def test_setup_conf(self):
+ expected_opts = interface.OPTS
+ conf = util.setup_conf()
+ self.assertTrue(all([opt.name in conf for opt in expected_opts]))
+
def test_kill_dhcp(self, dhcp_active=True):
conf = mock.Mock()
conf.AGENT.root_helper = 'sudo',
util.kill_dhcp(conf, 'ns')
- import_object.called_once_with('driver', conf, mock.ANY,
- conf.AGENT.root_helper,
- mock.ANY)
+ expected_params = {'conf': conf, 'network': mock.ANY,
+ 'root_helper': conf.AGENT.root_helper,
+ 'plugin': mock.ANY}
+ import_object.assert_called_once_with('driver', **expected_params)
if dhcp_active:
driver.assert_has_calls([mock.call.disable()])
mock_get_bridge_for_iface.assert_called_once_with(
conf.AGENT.root_helper, 'tap1')
- ovs_br_cls.called_once_with('br-int', conf.AGENT.root_helper)
+ ovs_br_cls.assert_called_once_with('br-int',
+ conf.AGENT.root_helper)
ovs_bridge.assert_has_calls(
[mock.call.delete_port(device.name)])