Merge "Register RA and PD config options in l3-agent"
This commit is contained in:
commit
d6d43b32ca
@ -76,7 +76,8 @@ class RouterInfo(object):
|
|||||||
self.radvd = ra.DaemonMonitor(self.router_id,
|
self.radvd = ra.DaemonMonitor(self.router_id,
|
||||||
self.ns_name,
|
self.ns_name,
|
||||||
process_monitor,
|
process_monitor,
|
||||||
self.get_internal_device_name)
|
self.get_internal_device_name,
|
||||||
|
self.agent_conf)
|
||||||
|
|
||||||
self.router_namespace.create()
|
self.router_namespace.create()
|
||||||
|
|
||||||
|
@ -24,6 +24,8 @@ from neutron.agent.l3 import config as l3_config
|
|||||||
from neutron.agent.l3 import ha
|
from neutron.agent.l3 import ha
|
||||||
from neutron.agent.linux import external_process
|
from neutron.agent.linux import external_process
|
||||||
from neutron.agent.linux import interface
|
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.agent.metadata import config as metadata_config
|
||||||
from neutron.common import config as common_config
|
from neutron.common import config as common_config
|
||||||
from neutron.common import topics
|
from neutron.common import topics
|
||||||
@ -39,6 +41,8 @@ def register_opts(conf):
|
|||||||
config.register_agent_state_opts_helper(conf)
|
config.register_agent_state_opts_helper(conf)
|
||||||
conf.register_opts(interface.OPTS)
|
conf.register_opts(interface.OPTS)
|
||||||
conf.register_opts(external_process.OPTS)
|
conf.register_opts(external_process.OPTS)
|
||||||
|
conf.register_opts(pd.OPTS)
|
||||||
|
conf.register_opts(ra.OPTS)
|
||||||
config.register_availability_zone_opts_helper(conf)
|
config.register_availability_zone_opts_helper(conf)
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,8 +40,6 @@ OPTS = [
|
|||||||
help=_('Service to handle DHCPv6 Prefix delegation.')),
|
help=_('Service to handle DHCPv6 Prefix delegation.')),
|
||||||
]
|
]
|
||||||
|
|
||||||
cfg.CONF.register_opts(OPTS)
|
|
||||||
|
|
||||||
|
|
||||||
class PrefixDelegation(object):
|
class PrefixDelegation(object):
|
||||||
def __init__(self, context, pmon, intf_driver, notifier, pd_update_cb,
|
def __init__(self, context, pmon, intf_driver, notifier, pd_update_cb,
|
||||||
|
@ -40,8 +40,6 @@ OPTS = [
|
|||||||
help=_('Location to store IPv6 RA config files')),
|
help=_('Location to store IPv6 RA config files')),
|
||||||
]
|
]
|
||||||
|
|
||||||
cfg.CONF.register_opts(OPTS)
|
|
||||||
|
|
||||||
CONFIG_TEMPLATE = jinja2.Template("""interface {{ interface_name }}
|
CONFIG_TEMPLATE = jinja2.Template("""interface {{ interface_name }}
|
||||||
{
|
{
|
||||||
AdvSendAdvert on;
|
AdvSendAdvert on;
|
||||||
@ -74,14 +72,16 @@ CONFIG_TEMPLATE = jinja2.Template("""interface {{ interface_name }}
|
|||||||
class DaemonMonitor(object):
|
class DaemonMonitor(object):
|
||||||
"""Manage the data and state of an radvd process."""
|
"""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_id = router_id
|
||||||
self._router_ns = router_ns
|
self._router_ns = router_ns
|
||||||
self._process_monitor = process_monitor
|
self._process_monitor = process_monitor
|
||||||
self._dev_name_helper = dev_name_helper
|
self._dev_name_helper = dev_name_helper
|
||||||
|
self._agent_conf = agent_conf
|
||||||
|
|
||||||
def _generate_radvd_conf(self, router_ports):
|
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,
|
self._router_id,
|
||||||
'radvd.conf',
|
'radvd.conf',
|
||||||
True)
|
True)
|
||||||
@ -117,7 +117,7 @@ class DaemonMonitor(object):
|
|||||||
default_cmd_callback=callback,
|
default_cmd_callback=callback,
|
||||||
namespace=self._router_ns,
|
namespace=self._router_ns,
|
||||||
service=RADVD_SERVICE_NAME,
|
service=RADVD_SERVICE_NAME,
|
||||||
conf=cfg.CONF,
|
conf=self._agent_conf,
|
||||||
run_as_root=True)
|
run_as_root=True)
|
||||||
|
|
||||||
def _spawn_radvd(self, radvd_conf):
|
def _spawn_radvd(self, radvd_conf):
|
||||||
@ -157,7 +157,7 @@ class DaemonMonitor(object):
|
|||||||
service_name=RADVD_SERVICE_NAME)
|
service_name=RADVD_SERVICE_NAME)
|
||||||
pm = self._get_radvd_process_manager()
|
pm = self._get_radvd_process_manager()
|
||||||
pm.disable()
|
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)
|
LOG.debug("radvd disabled for router %s", self._router_id)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -24,6 +24,8 @@ import neutron.agent.l2.extensions.manager
|
|||||||
import neutron.agent.l3.config
|
import neutron.agent.l3.config
|
||||||
import neutron.agent.l3.ha
|
import neutron.agent.l3.ha
|
||||||
import neutron.agent.linux.interface
|
import neutron.agent.linux.interface
|
||||||
|
import neutron.agent.linux.pd
|
||||||
|
import neutron.agent.linux.ra
|
||||||
import neutron.agent.metadata.config
|
import neutron.agent.metadata.config
|
||||||
import neutron.agent.ovsdb.api
|
import neutron.agent.ovsdb.api
|
||||||
import neutron.agent.securitygroups_rpc
|
import neutron.agent.securitygroups_rpc
|
||||||
@ -190,7 +192,9 @@ def list_l3_agent_opts():
|
|||||||
itertools.chain(
|
itertools.chain(
|
||||||
neutron.agent.l3.config.OPTS,
|
neutron.agent.l3.config.OPTS,
|
||||||
neutron.service.service_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)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -75,10 +75,14 @@ class BasicRouterOperationsFramework(base.BaseTestCase):
|
|||||||
agent_config.register_availability_zone_opts_helper(self.conf)
|
agent_config.register_availability_zone_opts_helper(self.conf)
|
||||||
self.conf.register_opts(interface.OPTS)
|
self.conf.register_opts(interface.OPTS)
|
||||||
self.conf.register_opts(external_process.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',
|
self.conf.set_override('interface_driver',
|
||||||
'neutron.agent.linux.interface.NullDriver')
|
'neutron.agent.linux.interface.NullDriver')
|
||||||
self.conf.set_override('send_arp_for_ha', 1)
|
self.conf.set_override('send_arp_for_ha', 1)
|
||||||
self.conf.set_override('state_path', '')
|
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(
|
self.device_exists_p = mock.patch(
|
||||||
'neutron.agent.linux.ip_lib.device_exists')
|
'neutron.agent.linux.ip_lib.device_exists')
|
||||||
@ -171,7 +175,8 @@ class BasicRouterOperationsFramework(base.BaseTestCase):
|
|||||||
ri.radvd = ra.DaemonMonitor(router['id'],
|
ri.radvd = ra.DaemonMonitor(router['id'],
|
||||||
ri.ns_name,
|
ri.ns_name,
|
||||||
agent.process_monitor,
|
agent.process_monitor,
|
||||||
ri.get_internal_device_name)
|
ri.get_internal_device_name,
|
||||||
|
self.conf)
|
||||||
ri.process(agent)
|
ri.process(agent)
|
||||||
|
|
||||||
|
|
||||||
@ -2194,7 +2199,8 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework):
|
|||||||
router['id'],
|
router['id'],
|
||||||
namespaces.RouterNamespace._get_ns_name(router['id']),
|
namespaces.RouterNamespace._get_ns_name(router['id']),
|
||||||
agent.process_monitor,
|
agent.process_monitor,
|
||||||
l3_test_common.FakeDev)
|
l3_test_common.FakeDev,
|
||||||
|
self.conf)
|
||||||
radvd.enable(router['_interfaces'])
|
radvd.enable(router['_interfaces'])
|
||||||
|
|
||||||
cmd = execute.call_args[0][0]
|
cmd = execute.call_args[0][0]
|
||||||
@ -2287,7 +2293,8 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework):
|
|||||||
ri.radvd = ra.DaemonMonitor(router['id'],
|
ri.radvd = ra.DaemonMonitor(router['id'],
|
||||||
ri.ns_name,
|
ri.ns_name,
|
||||||
agent.process_monitor,
|
agent.process_monitor,
|
||||||
ri.get_internal_device_name)
|
ri.get_internal_device_name,
|
||||||
|
self.conf)
|
||||||
return agent, router, ri
|
return agent, router, ri
|
||||||
|
|
||||||
def _pd_remove_gw_interface(self, intfs, agent, router, ri):
|
def _pd_remove_gw_interface(self, intfs, agent, router, ri):
|
||||||
|
Loading…
Reference in New Issue
Block a user