options: consolidate options definitions
Some config options(interface_driver, use_namespaces) are defined multiple times in ad-hoc way. It causes DuplicateOptError exception when using those module at the same time. Right now the exception is avoided in ad-hoc way by each executable. Those duplicated definitions should be consolidated and treated in uniformed way. This is the blocker for blueprint: l3-agent-consolidation neutron.services.loadbalancer.drivers.haproxy.agent periodic_interval conflicts with neutron.service one. Since there is no way to fix it without changing existing behavior/default value, it is untouched for now. Closes-bug: #1279769 Change-Id: Ifed79b7ee0033644854499416f8a2b22a20416fe
This commit is contained in:
parent
b31cdcaf2f
commit
4977b4a54a
@ -38,6 +38,16 @@ AGENT_STATE_OPTS = [
|
||||
'is half or less than agent_down_time.')),
|
||||
]
|
||||
|
||||
INTERFACE_DRIVER_OPTS = [
|
||||
cfg.StrOpt('interface_driver',
|
||||
help=_("The driver used to manage the virtual interface.")),
|
||||
]
|
||||
|
||||
USE_NAMESPACES_OPTS = [
|
||||
cfg.BoolOpt('use_namespaces', default=True,
|
||||
help=_("Allow overlapping IP.")),
|
||||
]
|
||||
|
||||
|
||||
def get_log_args(conf, log_file_name):
|
||||
cmd_args = []
|
||||
@ -76,6 +86,14 @@ def register_agent_state_opts_helper(conf):
|
||||
conf.register_opts(AGENT_STATE_OPTS, 'AGENT')
|
||||
|
||||
|
||||
def register_interface_driver_opts_helper(conf):
|
||||
conf.register_opts(INTERFACE_DRIVER_OPTS)
|
||||
|
||||
|
||||
def register_use_namespaces_opts_helper(conf):
|
||||
conf.register_opts(USE_NAMESPACES_OPTS)
|
||||
|
||||
|
||||
def get_root_helper(conf):
|
||||
root_helper = conf.AGENT.root_helper
|
||||
if root_helper != 'sudo':
|
||||
|
@ -52,8 +52,6 @@ class DhcpAgent(manager.Manager):
|
||||
cfg.StrOpt('dhcp_driver',
|
||||
default='neutron.agent.linux.dhcp.Dnsmasq',
|
||||
help=_("The driver used to manage the DHCP server.")),
|
||||
cfg.BoolOpt('use_namespaces', default=True,
|
||||
help=_("Allow overlapping IP.")),
|
||||
cfg.BoolOpt('enable_isolated_metadata', default=False,
|
||||
help=_("Support Metadata requests on isolated networks.")),
|
||||
cfg.BoolOpt('enable_metadata_network', default=False,
|
||||
@ -589,6 +587,8 @@ class DhcpAgentWithStateReport(DhcpAgent):
|
||||
|
||||
def register_options():
|
||||
cfg.CONF.register_opts(DhcpAgent.OPTS)
|
||||
config.register_interface_driver_opts_helper(cfg.CONF)
|
||||
config.register_use_namespaces_opts_helper(cfg.CONF)
|
||||
config.register_agent_state_opts_helper(cfg.CONF)
|
||||
config.register_root_helper(cfg.CONF)
|
||||
cfg.CONF.register_opts(dhcp.OPTS)
|
||||
|
@ -157,9 +157,6 @@ class L3NATAgent(firewall_l3_agent.FWaaSL3AgentRpcCallback, manager.Manager):
|
||||
cfg.StrOpt('external_network_bridge', default='br-ex',
|
||||
help=_("Name of bridge used for external network "
|
||||
"traffic.")),
|
||||
cfg.StrOpt('interface_driver',
|
||||
help=_("The driver used to manage the virtual "
|
||||
"interface.")),
|
||||
cfg.IntOpt('metadata_port',
|
||||
default=9697,
|
||||
help=_("TCP Port used by Neutron metadata namespace "
|
||||
@ -168,8 +165,6 @@ class L3NATAgent(firewall_l3_agent.FWaaSL3AgentRpcCallback, manager.Manager):
|
||||
default=0,
|
||||
help=_("Send this many gratuitous ARPs for HA setup, if "
|
||||
"less than or equal to 0, the feature is disabled")),
|
||||
cfg.BoolOpt('use_namespaces', default=True,
|
||||
help=_("Allow overlapping IP.")),
|
||||
cfg.StrOpt('router_id', default='',
|
||||
help=_("If namespaces is disabled, the l3 agent can only"
|
||||
" configure a router that has the matching router "
|
||||
@ -906,6 +901,8 @@ def main(manager='neutron.agent.l3_agent.L3NATAgentWithStateReport'):
|
||||
eventlet.monkey_patch()
|
||||
conf = cfg.CONF
|
||||
conf.register_opts(L3NATAgent.OPTS)
|
||||
config.register_interface_driver_opts_helper(conf)
|
||||
config.register_use_namespaces_opts_helper(conf)
|
||||
config.register_agent_state_opts_helper(conf)
|
||||
config.register_root_helper(conf)
|
||||
conf.register_opts(interface.OPTS)
|
||||
|
@ -59,8 +59,6 @@ OPTS = [
|
||||
'dnsmasq_lease_max',
|
||||
default=(2 ** 24),
|
||||
help=_('Limit number of leases to prevent a denial-of-service.')),
|
||||
cfg.StrOpt('interface_driver',
|
||||
help=_("The driver used to manage the virtual interface.")),
|
||||
]
|
||||
|
||||
IPV4 = 4
|
||||
|
@ -63,6 +63,7 @@ def setup_conf():
|
||||
conf = cfg.CONF
|
||||
conf.register_cli_opts(cli_opts)
|
||||
conf.register_opts(opts)
|
||||
agent_config.register_interface_driver_opts_helper(conf)
|
||||
agent_config.register_root_helper(conf)
|
||||
conf.register_opts(dhcp.OPTS)
|
||||
return conf
|
||||
|
@ -48,6 +48,8 @@ def setup_conf():
|
||||
conf.register_cli_opts(opts)
|
||||
conf.register_opts(l3_agent.L3NATAgent.OPTS)
|
||||
conf.register_opts(interface.OPTS)
|
||||
agent_config.register_interface_driver_opts_helper(conf)
|
||||
agent_config.register_use_namespaces_opts_helper(conf)
|
||||
agent_config.register_root_helper(conf)
|
||||
return conf
|
||||
|
||||
|
@ -39,11 +39,6 @@ class NeutronDebugAgent():
|
||||
|
||||
OPTS = [
|
||||
# Needed for drivers
|
||||
cfg.BoolOpt('use_namespaces', default=True,
|
||||
help=_("Use Linux network namespaces")),
|
||||
cfg.StrOpt('interface_driver',
|
||||
help=_("The driver used to manage the virtual "
|
||||
"interface.")),
|
||||
cfg.StrOpt('external_network_bridge', default='br-ex',
|
||||
help=_("Name of bridge used for external network "
|
||||
"traffic.")),
|
||||
|
@ -74,6 +74,8 @@ class NeutronDebugShell(NeutronShell):
|
||||
client = self.client_manager.neutron
|
||||
cfg.CONF.register_opts(interface.OPTS)
|
||||
cfg.CONF.register_opts(NeutronDebugAgent.OPTS)
|
||||
config.register_interface_driver_opts_helper(cfg.CONF)
|
||||
config.register_use_namespaces_opts_helper(cfg.CONF)
|
||||
config.register_root_helper(cfg.CONF)
|
||||
cfg.CONF(['--config-file', self.options.config_file])
|
||||
config.setup_logging(cfg.CONF)
|
||||
|
@ -331,6 +331,8 @@ def main():
|
||||
eventlet.monkey_patch()
|
||||
conf = cfg.CONF
|
||||
conf.register_opts(vArmourL3NATAgent.OPTS)
|
||||
config.register_interface_driver_opts_helper(conf)
|
||||
config.register_use_namespaces_opts_helper(conf)
|
||||
config.register_agent_state_opts_helper(conf)
|
||||
config.register_root_helper(conf)
|
||||
conf.register_opts(interface.OPTS)
|
||||
|
@ -53,6 +53,7 @@ def main():
|
||||
cfg.CONF.register_opts(manager.OPTS)
|
||||
# import interface options just in case the driver uses namespaces
|
||||
cfg.CONF.register_opts(interface.OPTS)
|
||||
config.register_interface_driver_opts_helper(cfg.CONF)
|
||||
config.register_agent_state_opts_helper(cfg.CONF)
|
||||
config.register_root_helper(cfg.CONF)
|
||||
|
||||
|
@ -39,10 +39,6 @@ OPTS = [
|
||||
'.haproxy.namespace_driver.HaproxyNSDriver'],
|
||||
help=_('Drivers used to manage loadbalancing devices'),
|
||||
),
|
||||
cfg.StrOpt(
|
||||
'interface_driver',
|
||||
help=_('The driver used to manage the virtual interface')
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
|
@ -34,16 +34,10 @@ TOP_CHAIN = WRAP_NAME + "-FORWARD"
|
||||
RULE = '-r-'
|
||||
LABEL = '-l-'
|
||||
|
||||
IptablesDriverOpts = [
|
||||
cfg.StrOpt('interface_driver',
|
||||
help=_("The driver used to manage the virtual "
|
||||
"interface.")),
|
||||
cfg.BoolOpt('use_namespaces', default=True,
|
||||
help=_("Allow overlapping IP."))
|
||||
]
|
||||
config.register_interface_driver_opts_helper(cfg.CONF)
|
||||
config.register_use_namespaces_opts_helper(cfg.CONF)
|
||||
config.register_root_helper(cfg.CONF)
|
||||
cfg.CONF.register_opts(interface.OPTS)
|
||||
cfg.CONF.register_opts(IptablesDriverOpts)
|
||||
|
||||
|
||||
class IptablesManagerTransaction(object):
|
||||
|
@ -38,6 +38,7 @@ class TestDhcpNoOpDriver(base.BaseTestCase):
|
||||
def setUp(self):
|
||||
super(TestDhcpNoOpDriver, self).setUp()
|
||||
self.conf = config.setup_conf()
|
||||
config.register_interface_driver_opts_helper(self.conf)
|
||||
self.conf.register_opts(base_config.core_opts)
|
||||
self.conf.register_opts(dhcp.OPTS)
|
||||
self.conf.enable_isolated_metadata = True
|
||||
|
@ -53,6 +53,7 @@ class TestFwaasL3AgentRpcCallback(base.BaseTestCase):
|
||||
self.conf = cfg.ConfigOpts()
|
||||
self.conf.register_opts(base_config.core_opts)
|
||||
self.conf.register_opts(l3_agent.L3NATAgent.OPTS)
|
||||
agent_config.register_use_namespaces_opts_helper(self.conf)
|
||||
agent_config.register_root_helper(self.conf)
|
||||
self.conf.root_helper = 'sudo'
|
||||
self.api = FWaasAgent(self.conf)
|
||||
|
@ -44,6 +44,8 @@ class TestVarmourRouter(base.BaseTestCase):
|
||||
self.conf = cfg.ConfigOpts()
|
||||
self.conf.register_opts(base_config.core_opts)
|
||||
self.conf.register_opts(varmour_router.vArmourL3NATAgent.OPTS)
|
||||
agent_config.register_interface_driver_opts_helper(self.conf)
|
||||
agent_config.register_use_namespaces_opts_helper(self.conf)
|
||||
agent_config.register_root_helper(self.conf)
|
||||
self.conf.register_opts(interface.OPTS)
|
||||
self.conf.set_override('interface_driver',
|
||||
|
@ -45,6 +45,8 @@ class TestBasicRouterOperations(base.BaseTestCase):
|
||||
self.conf = cfg.ConfigOpts()
|
||||
self.conf.register_opts(base_config.core_opts)
|
||||
self.conf.register_opts(varmour_router.vArmourL3NATAgent.OPTS)
|
||||
agent_config.register_interface_driver_opts_helper(self.conf)
|
||||
agent_config.register_use_namespaces_opts_helper(self.conf)
|
||||
agent_config.register_root_helper(self.conf)
|
||||
self.conf.register_opts(interface.OPTS)
|
||||
self.conf.set_override('interface_driver',
|
||||
|
@ -52,6 +52,8 @@ class TestVPNAgent(base.BaseTestCase):
|
||||
self.conf.register_opts(base_config.core_opts)
|
||||
self.conf.register_opts(l3_agent.L3NATAgent.OPTS)
|
||||
self.conf.register_opts(interface.OPTS)
|
||||
agent_config.register_interface_driver_opts_helper(self.conf)
|
||||
agent_config.register_use_namespaces_opts_helper(self.conf)
|
||||
agent_config.register_agent_state_opts_helper(self.conf)
|
||||
agent_config.register_root_helper(self.conf)
|
||||
|
||||
|
@ -40,8 +40,10 @@ class TestDebugCommands(base.BaseTestCase):
|
||||
cfg.CONF.register_opts(interface.OPTS)
|
||||
cfg.CONF.register_opts(NeutronDebugAgent.OPTS)
|
||||
cfg.CONF(args=[], project='neutron')
|
||||
cfg.CONF.set_override('use_namespaces', True)
|
||||
config.register_interface_driver_opts_helper(cfg.CONF)
|
||||
config.register_use_namespaces_opts_helper(cfg.CONF)
|
||||
config.register_root_helper(cfg.CONF)
|
||||
cfg.CONF.set_override('use_namespaces', True)
|
||||
|
||||
self.addCleanup(mock.patch.stopall)
|
||||
device_exists_p = mock.patch(
|
||||
|
@ -156,6 +156,7 @@ class TestDhcpAgent(base.BaseTestCase):
|
||||
'dhcp', '--config-file',
|
||||
etcdir('neutron.conf.test')]
|
||||
cfg.CONF.register_opts(dhcp_agent.DhcpAgent.OPTS)
|
||||
config.register_interface_driver_opts_helper(cfg.CONF)
|
||||
config.register_agent_state_opts_helper(cfg.CONF)
|
||||
config.register_root_helper(cfg.CONF)
|
||||
cfg.CONF.register_opts(dhcp.OPTS)
|
||||
@ -449,6 +450,7 @@ class TestLogArgs(base.BaseTestCase):
|
||||
class TestDhcpAgentEventHandler(base.BaseTestCase):
|
||||
def setUp(self):
|
||||
super(TestDhcpAgentEventHandler, self).setUp()
|
||||
config.register_interface_driver_opts_helper(cfg.CONF)
|
||||
cfg.CONF.register_opts(dhcp.OPTS)
|
||||
cfg.CONF.set_override('interface_driver',
|
||||
'neutron.agent.linux.interface.NullDriver')
|
||||
@ -1087,6 +1089,8 @@ class FakeV4NetworkNoGateway:
|
||||
class TestDeviceManager(base.BaseTestCase):
|
||||
def setUp(self):
|
||||
super(TestDeviceManager, self).setUp()
|
||||
config.register_interface_driver_opts_helper(cfg.CONF)
|
||||
config.register_use_namespaces_opts_helper(cfg.CONF)
|
||||
cfg.CONF.register_opts(dhcp_agent.DhcpAgent.OPTS)
|
||||
cfg.CONF.register_opts(dhcp.OPTS)
|
||||
cfg.CONF.set_override('interface_driver',
|
||||
|
@ -43,6 +43,8 @@ class TestBasicRouterOperations(base.BaseTestCase):
|
||||
self.conf = cfg.ConfigOpts()
|
||||
self.conf.register_opts(base_config.core_opts)
|
||||
self.conf.register_opts(l3_agent.L3NATAgent.OPTS)
|
||||
agent_config.register_interface_driver_opts_helper(self.conf)
|
||||
agent_config.register_use_namespaces_opts_helper(self.conf)
|
||||
agent_config.register_root_helper(self.conf)
|
||||
self.conf.register_opts(interface.OPTS)
|
||||
self.conf.set_override('router_id', 'fake_id')
|
||||
|
@ -394,6 +394,7 @@ class TestBase(base.BaseTestCase):
|
||||
self.conf = config.setup_conf()
|
||||
self.conf.register_opts(base_config.core_opts)
|
||||
self.conf.register_opts(dhcp.OPTS)
|
||||
config.register_interface_driver_opts_helper(self.conf)
|
||||
instance = mock.patch("neutron.agent.linux.dhcp.DeviceManager")
|
||||
self.mock_mgr = instance.start()
|
||||
self.conf.register_opt(cfg.BoolOpt('enable_isolated_metadata',
|
||||
|
@ -373,6 +373,7 @@ class TestBridgeInterfaceDriver(TestBase):
|
||||
class TestMetaInterfaceDriver(TestBase):
|
||||
def setUp(self):
|
||||
super(TestMetaInterfaceDriver, self).setUp()
|
||||
config.register_interface_driver_opts_helper(self.conf)
|
||||
self.conf.register_opts(dhcp.OPTS)
|
||||
self.client_cls_p = mock.patch('neutronclient.v2_0.client.Client')
|
||||
client_cls = self.client_cls_p.start()
|
||||
|
Loading…
Reference in New Issue
Block a user