Refactoring config options for cmd

Refactoring neutron configuration options for cmd to be in
neutron/conf. This would allow centralization of all configuration
options and provide an easy way to import.

Change-Id: I0bb7c88050aa5e931a53406d29b5b10c69c518bb
Partial-Bug: #1563069
This commit is contained in:
Aradhana Singh 2016-05-31 00:45:44 +00:00
parent a0936bb3f0
commit 7f9610c591
7 changed files with 136 additions and 38 deletions

View File

@ -16,10 +16,10 @@
from oslo_config import cfg
from oslo_log import log as logging
from neutron._i18n import _, _LE, _LI
from neutron.agent.linux import ipset_manager
from neutron._i18n import _LE, _LI
from neutron.agent.linux import utils
from neutron.common import config
from neutron.conf.agent import cmd as command
LOG = logging.getLogger(__name__)
@ -31,22 +31,8 @@ def setup_conf():
Use separate setup_conf for the utility because there are many options
from the main config that do not apply during clean-up.
"""
cli_opts = [
cfg.BoolOpt('allsets',
default=False,
help=_('Destroy all IPsets.')),
cfg.BoolOpt('force',
default=False,
help=_('Destroy IPsets even if there is an iptables '
'reference.')),
cfg.StrOpt('prefix',
default=ipset_manager.NET_PREFIX,
help=_('String prefix used to match IPset names.')),
]
conf = cfg.CONF
conf.register_cli_opts(cli_opts)
command.register_cmd_opts(command.ip_opts, conf)
return conf

View File

@ -22,7 +22,7 @@ from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import importutils
from neutron._i18n import _, _LE
from neutron._i18n import _LE
from neutron.agent.common import config as agent_config
from neutron.agent.common import ovs_lib
from neutron.agent.l3 import agent as l3_agent
@ -33,6 +33,7 @@ from neutron.agent.linux import external_process
from neutron.agent.linux import interface
from neutron.agent.linux import ip_lib
from neutron.common import config
from neutron.conf.agent import cmd
from neutron.conf.agent import dhcp as dhcp_config
@ -60,17 +61,8 @@ def setup_conf():
from the main config that do not apply during clean-up.
"""
cli_opts = [
cfg.BoolOpt('force',
default=False,
help=_('Delete the namespace by removing all devices.')),
cfg.StrOpt('agent-type',
choices=['dhcp', 'l3', 'lbaas'],
help=_('Cleanup resources of a specific agent type only.')),
]
conf = cfg.CONF
conf.register_cli_opts(cli_opts)
cmd.register_cmd_opts(cmd.netns_opts, conf)
agent_config.register_interface_driver_opts_helper(conf)
dhcp_config.register_agent_dhcp_opts(conf)
conf.register_opts(interface.OPTS)

View File

@ -16,12 +16,13 @@
from oslo_config import cfg
from oslo_log import log as logging
from neutron._i18n import _, _LI
from neutron._i18n import _LI
from neutron.agent.common import config as agent_config
from neutron.agent.common import ovs_lib
from neutron.agent.linux import interface
from neutron.agent.linux import ip_lib
from neutron.common import config
from neutron.conf.agent import cmd
from neutron.conf.agent.l3 import config as l3_config
@ -34,17 +35,9 @@ def setup_conf():
Use separate setup_conf for the utility because there are many options
from the main config that do not apply during clean-up.
"""
opts = [
cfg.BoolOpt('ovs_all_ports',
default=False,
help=_('True to delete all ports on all the OpenvSwitch '
'bridges. False to delete ports created by '
'Neutron on integration and external network '
'bridges.'))
]
conf = cfg.CONF
conf.register_cli_opts(opts)
cmd.register_cmd_opts(cmd.ovs_opts, conf)
l3_config.register_l3_agent_config_opts(l3_config.OPTS, conf)
conf.register_opts(interface.OPTS)
agent_config.register_interface_driver_opts_helper(conf)

52
neutron/conf/agent/cmd.py Normal file
View File

@ -0,0 +1,52 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from oslo_config import cfg
from neutron._i18n import _
from neutron.agent.linux import ipset_manager
ip_opts = [
cfg.BoolOpt('allsets',
default=False,
help=_('Destroy all IPsets.')),
cfg.BoolOpt('force',
default=False,
help=_('Destroy IPsets even if there is an iptables '
'reference.')),
cfg.StrOpt('prefix',
default=ipset_manager.NET_PREFIX,
help=_('String prefix used to match IPset names.')),
]
netns_opts = [
cfg.BoolOpt('force',
default=False,
help=_('Delete the namespace by removing all devices.')),
cfg.StrOpt('agent-type',
choices=['dhcp', 'l3', 'lbaas'],
help=_('Cleanup resources of a specific agent type only.')),
]
ovs_opts = [
cfg.BoolOpt('ovs_all_ports',
default=False,
help=_('True to delete all ports on all the OpenvSwitch '
'bridges. False to delete ports created by '
'Neutron on integration and external network '
'bridges.'))
]
def register_cmd_opts(opts, cfg=cfg.CONF):
cfg.register_cli_opts(opts)

View File

@ -0,0 +1,31 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from neutron.agent.linux import ipset_manager
from neutron.cmd import ipset_cleanup
from neutron.conf.agent import cmd
from neutron.tests import base
class TestIPSetCLIConfig(base.BaseTestCase):
def setup_config(self, args=None):
self.conf = ipset_cleanup.setup_conf()
super(TestIPSetCLIConfig, self).setup_config(args=args)
def test_ipset_opts_registration(self):
self.assertFalse(self.conf.allsets)
self.assertFalse(self.conf.force)
self.assertEqual(ipset_manager.NET_PREFIX, self.conf.prefix)
# to unregister opts
self.conf.reset()
self.conf.unregister_opts(cmd.ip_opts)

View File

@ -19,6 +19,8 @@ from neutron.agent.l3 import agent as l3_agent
from neutron.agent.linux import dhcp
from neutron.agent.linux import ip_lib
from neutron.cmd import netns_cleanup
from neutron.conf.agent import cmd
from neutron.tests import base as basetest
from neutron.tests.common import net_helpers
from neutron.tests.functional import base
@ -64,3 +66,17 @@ class NetnsCleanupTest(base.BaseSudoTestCase):
namespaces_now = ip_lib.IPWrapper.get_namespaces()
self.assertNotIn(l3_namespace, namespaces_now)
self.assertNotIn(dhcp_namespace, namespaces_now)
class TestNETNSCLIConfig(basetest.BaseTestCase):
def setup_config(self, args=None):
self.conf = netns_cleanup.setup_conf()
super(TestNETNSCLIConfig, self).setup_config(args=args)
def test_netns_opts_registration(self):
self.assertFalse(self.conf.force)
self.assertIsNone(self.conf.get('agent_type'))
# to unregister opts
self.conf.reset()
self.conf.unregister_opts(cmd.netns_opts)

View File

@ -0,0 +1,28 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from neutron.cmd import ovs_cleanup
from neutron.conf.agent import cmd
from neutron.tests import base
class TestOVSCLIConfig(base.BaseTestCase):
def setup_config(self, args=None):
self.conf = ovs_cleanup.setup_conf()
super(TestOVSCLIConfig, self).setup_config(args=args)
def test_ovs_opts_registration(self):
self.assertFalse(self.conf.ovs_all_ports)
# to unregister opts
self.conf.reset()
self.conf.unregister_opts(cmd.ovs_opts)