self.radvd = ra.DaemonMonitor(self.router_id,
self.ns_name,
process_monitor,
- self.get_internal_device_name)
+ self.get_internal_device_name,
+ self.agent_conf)
self.router_namespace.create()
from neutron.agent.l3 import ha
from neutron.agent.linux import external_process
from neutron.agent.linux import interface
+from neutron.agent.linux import pd
+from neutron.agent.linux import ra
from neutron.agent.metadata import config as metadata_config
from neutron.common import config as common_config
from neutron.common import topics
config.register_agent_state_opts_helper(conf)
conf.register_opts(interface.OPTS)
conf.register_opts(external_process.OPTS)
+ conf.register_opts(pd.OPTS)
+ conf.register_opts(ra.OPTS)
config.register_availability_zone_opts_helper(conf)
help=_('Service to handle DHCPv6 Prefix delegation.')),
]
-cfg.CONF.register_opts(OPTS)
-
class PrefixDelegation(object):
def __init__(self, context, pmon, intf_driver, notifier, pd_update_cb,
help=_('Location to store IPv6 RA config files')),
]
-cfg.CONF.register_opts(OPTS)
-
CONFIG_TEMPLATE = jinja2.Template("""interface {{ interface_name }}
{
AdvSendAdvert on;
class DaemonMonitor(object):
"""Manage the data and state of an radvd process."""
- def __init__(self, router_id, router_ns, process_monitor, dev_name_helper):
+ def __init__(self, router_id, router_ns, process_monitor, dev_name_helper,
+ agent_conf):
self._router_id = router_id
self._router_ns = router_ns
self._process_monitor = process_monitor
self._dev_name_helper = dev_name_helper
+ self._agent_conf = agent_conf
def _generate_radvd_conf(self, router_ports):
- radvd_conf = utils.get_conf_file_name(cfg.CONF.ra_confs,
+ radvd_conf = utils.get_conf_file_name(self._agent_conf.ra_confs,
self._router_id,
'radvd.conf',
True)
default_cmd_callback=callback,
namespace=self._router_ns,
service=RADVD_SERVICE_NAME,
- conf=cfg.CONF,
+ conf=self._agent_conf,
run_as_root=True)
def _spawn_radvd(self, radvd_conf):
service_name=RADVD_SERVICE_NAME)
pm = self._get_radvd_process_manager()
pm.disable()
- utils.remove_conf_files(cfg.CONF.ra_confs, self._router_id)
+ utils.remove_conf_files(self._agent_conf.ra_confs, self._router_id)
LOG.debug("radvd disabled for router %s", self._router_id)
@property
import neutron.agent.l3.config
import neutron.agent.l3.ha
import neutron.agent.linux.interface
+import neutron.agent.linux.pd
+import neutron.agent.linux.ra
import neutron.agent.metadata.config
import neutron.agent.ovsdb.api
import neutron.agent.securitygroups_rpc
itertools.chain(
neutron.agent.l3.config.OPTS,
neutron.service.service_opts,
- neutron.agent.l3.ha.OPTS)
+ neutron.agent.l3.ha.OPTS,
+ neutron.agent.linux.pd.OPTS,
+ neutron.agent.linux.ra.OPTS)
)
]
agent_config.register_availability_zone_opts_helper(self.conf)
self.conf.register_opts(interface.OPTS)
self.conf.register_opts(external_process.OPTS)
+ self.conf.register_opts(pd.OPTS)
+ self.conf.register_opts(ra.OPTS)
self.conf.set_override('interface_driver',
'neutron.agent.linux.interface.NullDriver')
self.conf.set_override('send_arp_for_ha', 1)
self.conf.set_override('state_path', '')
+ self.conf.set_override('ra_confs', '/tmp')
+ self.conf.set_override('pd_dhcp_driver', '')
self.device_exists_p = mock.patch(
'neutron.agent.linux.ip_lib.device_exists')
ri.radvd = ra.DaemonMonitor(router['id'],
ri.ns_name,
agent.process_monitor,
- ri.get_internal_device_name)
+ ri.get_internal_device_name,
+ self.conf)
ri.process(agent)
router['id'],
namespaces.RouterNamespace._get_ns_name(router['id']),
agent.process_monitor,
- l3_test_common.FakeDev)
+ l3_test_common.FakeDev,
+ self.conf)
radvd.enable(router['_interfaces'])
cmd = execute.call_args[0][0]
ri.radvd = ra.DaemonMonitor(router['id'],
ri.ns_name,
agent.process_monitor,
- ri.get_internal_device_name)
+ ri.get_internal_device_name,
+ self.conf)
return agent, router, ri
def _pd_remove_gw_interface(self, intfs, agent, router, ri):