Browse Source

Remove last parts of Quantum compatibility shim

Goodbye Quantum!

Change-Id: Idbd0384a892beaff3a937444f04cfc433cb805eb
Closes-Bug:1299046
changes/67/84367/1
Dan Wendlandt 8 years ago
parent
commit
c736569c73
  1. 1
      etc/quantum
  2. 2
      etc/rootwrap.conf
  3. 2
      neutron/agent/dhcp_agent.py
  4. 2
      neutron/agent/l3_agent.py
  5. 95
      neutron/common/legacy.py
  6. 2
      neutron/db/migration/cli.py
  7. 2
      neutron/debug/shell.py
  8. 3
      neutron/manager.py
  9. 2
      neutron/plugins/brocade/README.md
  10. 2
      neutron/plugins/ibm/agent/sdnve_neutron_agent.py
  11. 2
      neutron/plugins/nec/README
  12. 2
      neutron/plugins/openvswitch/agent/ovs_neutron_agent.py
  13. 2
      neutron/quota.py
  14. 11
      neutron/service.py
  15. 2
      neutron/services/firewall/agents/varmour/varmour_router.py
  16. 2
      neutron/services/loadbalancer/agent/agent.py
  17. 83
      neutron/tests/unit/test_legacy.py
  18. 18
      quantum/__init__.py
  19. 36
      quantum/api/__init__.py
  20. 32
      quantum/auth.py
  21. 24
      setup.cfg

1
etc/quantum

@ -1 +0,0 @@
neutron

2
etc/rootwrap.conf

@ -4,7 +4,7 @@
[DEFAULT]
# List of directories to load filter definitions from (separated by ',').
# These directories MUST all be only writeable by root !
filters_path=/etc/neutron/rootwrap.d,/usr/share/neutron/rootwrap,/etc/quantum/rootwrap.d,/usr/share/quantum/rootwrap
filters_path=/etc/neutron/rootwrap.d,/usr/share/neutron/rootwrap
# List of directories to search executables in, in case filters do not
# explicitely specify a full path (separated by ',')

2
neutron/agent/dhcp_agent.py

@ -29,7 +29,6 @@ from neutron.agent.linux import ovs_lib # noqa
from neutron.agent import rpc as agent_rpc
from neutron.common import constants
from neutron.common import exceptions
from neutron.common import legacy
from neutron.common import topics
from neutron.common import utils
from neutron import context
@ -600,7 +599,6 @@ def main():
register_options()
cfg.CONF(project='neutron')
config.setup_logging(cfg.CONF)
legacy.modernize_quantum_config(cfg.CONF)
server = neutron_service.Service.create(
binary='neutron-dhcp-agent',
topic=topics.DHCP_AGENT,

2
neutron/agent/l3_agent.py

@ -25,7 +25,6 @@ from neutron.agent.linux import iptables_manager
from neutron.agent.linux import ovs_lib # noqa
from neutron.agent import rpc as agent_rpc
from neutron.common import constants as l3_constants
from neutron.common import legacy
from neutron.common import topics
from neutron.common import utils as common_utils
from neutron import context
@ -963,7 +962,6 @@ def main(manager='neutron.agent.l3_agent.L3NATAgentWithStateReport'):
conf.register_opts(external_process.OPTS)
conf(project='neutron')
config.setup_logging(conf)
legacy.modernize_quantum_config(conf)
server = neutron_service.Service.create(
binary='neutron-l3-agent',
topic=topics.L3_AGENT,

95
neutron/common/legacy.py

@ -1,95 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright 2013 New Dream Network, LLC (DreamHost)
# All Rights Reserved.
#
# 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.
# @author Mark McClain (DreamHost)
from oslo.config import cfg
from neutron.openstack.common import log as logging
LOG = logging.getLogger(__name__)
def scrub_class_path(cls_path):
"""Scrub from Quantum from old class_path references."""
if isinstance(cls_path, basestring):
if cls_path.startswith('quantum'):
new_path = cls_path.replace('quantum', 'neutron')
new_path = new_path.replace('Quantum', 'Neutron')
LOG.warn(
_("Old class module path in use. Please change '%(old)s' "
"to '%(new)s'."),
{'old': cls_path, 'new': new_path}
)
cls_path = new_path
return cls_path
def override_config(config, config_keys=None):
"""Attempt to override config_key with Neutron compatible values."""
for key in config_keys:
group = None
if not isinstance(key, basestring):
try:
group, key, module_str = key
old_value = getattr(getattr(config, group), key, None)
except AttributeError:
try:
config.import_opt(key, module_str, group)
old_value = getattr(getattr(config, group), key, None)
except (cfg.NoSuchOptError,
cfg.NoSuchGroupError,
AttributeError):
LOG.warn(_('Key %(key)s in group %(group)s is unknown. '
'It may not be defined or needed by this '
'service.') % {'key': key, 'group': group})
continue
else:
old_value = getattr(config, key, None)
if not old_value:
continue
elif isinstance(old_value, list):
new_value = [scrub_class_path(v) for v in old_value]
else:
new_value = scrub_class_path(old_value)
if new_value != old_value:
config.set_override(key, new_value, group=group)
def modernize_quantum_config(config):
"""Updates keys from old Quantum configurations for Neutron."""
config_keys = [
'allowed_rpc_exception_modules',
'core_plugin',
'device_driver',
'dhcp_driver',
'driver_fqn',
'interface_driver',
'network_scheduler_driver',
'notification_driver',
'router_scheduler_driver',
'rpc_backend',
'service_plugins',
('SECURITYGROUP',
'firewall_driver',
'neutron.agent.securitygroups_rpc'),
]
override_config(config, config_keys)

2
neutron/db/migration/cli.py

@ -22,7 +22,6 @@ from alembic import script as alembic_script
from alembic import util as alembic_util
from oslo.config import cfg
from neutron.common import legacy
HEAD_FILENAME = 'HEAD'
@ -165,5 +164,4 @@ def main():
CONF()
#TODO(gongysh) enable logging
legacy.modernize_quantum_config(CONF)
CONF.command.func(config, CONF.command.name)

2
neutron/debug/shell.py

@ -21,7 +21,6 @@ from oslo.config import cfg
from neutron.agent.common import config
from neutron.agent.linux import interface
from neutron.common import legacy
from neutron.debug.debug_agent import NeutronDebugAgent
from neutron.openstack.common import importutils
from neutronclient.common import exceptions as exc
@ -79,7 +78,6 @@ class NeutronDebugShell(NeutronShell):
config.register_root_helper(cfg.CONF)
cfg.CONF(['--config-file', self.options.config_file])
config.setup_logging(cfg.CONF)
legacy.modernize_quantum_config(cfg.CONF)
driver = importutils.import_object(cfg.CONF.interface_driver, cfg.CONF)
self.debug_agent = NeutronDebugAgent(cfg.CONF, client, driver)

3
neutron/manager.py

@ -15,7 +15,6 @@
from oslo.config import cfg
from neutron.common import legacy
from neutron.common import utils
from neutron.openstack.common import importutils
from neutron.openstack.common import log as logging
@ -110,8 +109,6 @@ class NeutronManager(object):
LOG.info(_("Loading core plugin: %s"), plugin_provider)
self.plugin = self._get_plugin_instance('neutron.core_plugins',
plugin_provider)
legacy.modernize_quantum_config(cfg.CONF)
msg = validate_post_plugin_load()
if msg:
LOG.critical(msg)

2
neutron/plugins/brocade/README.md

@ -100,7 +100,7 @@ http://wiki.openstack.org/brocade-neutron-plugin
In order to use Brocade Neutron Plugin, add the following lines in localrc, if localrc file doe
not exist create one:
ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,quantum,q-svc,q-agt
ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,neutron,q-svc,q-agt
Q_PLUGIN=brocade
As part of running devstack/stack.sh, the configuration files is copied as:

2
neutron/plugins/ibm/agent/sdnve_neutron_agent.py

@ -28,7 +28,6 @@ from neutron.agent.linux import ovs_lib
from neutron.agent import rpc as agent_rpc
from neutron.common import config as logging_config
from neutron.common import constants as n_const
from neutron.common import legacy
from neutron.common import topics
from neutron.common import utils as n_utils
from neutron import context
@ -257,7 +256,6 @@ def main():
cfg.CONF.register_opts(ip_lib.OPTS)
cfg.CONF(project='neutron')
logging_config.setup_logging(cfg.CONF)
legacy.modernize_quantum_config(cfg.CONF)
try:
agent_config = create_agent_config_map(cfg.CONF)

2
neutron/plugins/nec/README

@ -3,7 +3,7 @@ Quantum NEC OpenFlow Plugin
# -- What's this?
http://wiki.openstack.org/Quantum-NEC-OpenFlow-Plugin
https://wiki.openstack.org/wiki/Neutron/NEC_OpenFlow_Plugin
# -- Installation

2
neutron/plugins/openvswitch/agent/ovs_neutron_agent.py

@ -32,7 +32,6 @@ from neutron.agent import rpc as agent_rpc
from neutron.agent import securitygroups_rpc as sg_rpc
from neutron.common import config as logging_config
from neutron.common import constants as q_const
from neutron.common import legacy
from neutron.common import topics
from neutron.common import utils as q_utils
from neutron import context
@ -1343,7 +1342,6 @@ def main():
cfg.CONF(project='neutron')
logging_config.setup_logging(cfg.CONF)
q_utils.log_opt_values(LOG)
legacy.modernize_quantum_config(cfg.CONF)
try:
agent_config = create_agent_config_map(cfg.CONF)

2
neutron/quota.py

@ -22,7 +22,6 @@ from oslo.config import cfg
import webob
from neutron.common import exceptions
from neutron.common import legacy
from neutron.openstack.common import importutils
from neutron.openstack.common import log as logging
@ -58,7 +57,6 @@ quota_opts = [
]
# Register the configuration options
cfg.CONF.register_opts(quota_opts, 'QUOTAS')
legacy.override_config(cfg.CONF, [('QUOTAS', 'quota_driver', 'neutron.quota')])
class ConfDriver(object):

11
neutron/service.py

@ -22,7 +22,6 @@ import random
from oslo.config import cfg
from neutron.common import config
from neutron.common import legacy
from neutron import context
from neutron import manager
from neutron import neutron_plugin_base_v2
@ -91,7 +90,6 @@ class NeutronApiService(WsgiService):
# Log the options used when starting if we're in debug mode...
config.setup_logging(cfg.CONF)
legacy.modernize_quantum_config(cfg.CONF)
# Dump the initial option values
cfg.CONF.log_opt_values(LOG, std_logging.DEBUG)
service = cls(app_name)
@ -101,13 +99,8 @@ class NeutronApiService(WsgiService):
def serve_wsgi(cls):
try:
try:
service = cls.create()
service.start()
except RuntimeError:
LOG.exception(_('Error occurred: trying old api-paste.ini.'))
service = cls.create('quantum')
service.start()
service = cls.create()
service.start()
except Exception:
with excutils.save_and_reraise_exception():
LOG.exception(_('Unrecoverable error: please check log '

2
neutron/services/firewall/agents/varmour/varmour_router.py

@ -28,7 +28,6 @@ from neutron.agent.linux import external_process
from neutron.agent.linux import interface
from neutron.agent.linux import ip_lib
from neutron.common import constants as l3_constants
from neutron.common import legacy
from neutron.common import topics
from neutron.openstack.common import log as logging
from neutron.openstack.common import service
@ -339,7 +338,6 @@ def main():
conf.register_opts(external_process.OPTS)
conf(project='neutron')
config.setup_logging(conf)
legacy.modernize_quantum_config(conf)
server = neutron_service.Service.create(
binary='neutron-l3-agent',
topic=topics.L3_AGENT,

2
neutron/services/loadbalancer/agent/agent.py

@ -21,7 +21,6 @@ from oslo.config import cfg
from neutron.agent.common import config
from neutron.agent.linux import interface
from neutron.common import legacy
from neutron.common import topics
from neutron.openstack.common.rpc import service as rpc_service
from neutron.openstack.common import service
@ -59,7 +58,6 @@ def main():
cfg.CONF(project='neutron')
config.setup_logging(cfg.CONF)
legacy.modernize_quantum_config(cfg.CONF)
mgr = manager.LbaasAgentManager(cfg.CONF)
svc = LbaasAgentService(

83
neutron/tests/unit/test_legacy.py

@ -1,83 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright 2013 New Dream Network, LLC (DreamHost)
# All Rights Reserved.
#
# 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.
# @author Mark McClain (DreamHost)
import mock
from oslo.config import cfg
from neutron.common import legacy
from neutron.tests import base
class TestLegacyScrubPath(base.BaseTestCase):
def test_neutron_path(self):
self.assertEqual(
'neutron.foo.NeutronPlugin',
legacy.scrub_class_path('neutron.foo.NeutronPlugin')
)
def test_quantum_path(self):
with mock.patch.object(legacy, 'LOG') as log:
self.assertEqual(
'neutron.foo.NeutronPlugin',
legacy.scrub_class_path('quantum.foo.QuantumPlugin')
)
log.assert_has_calls([mock.call.warn(mock.ANY, mock.ANY)])
def test_third_party_path(self):
self.assertEqual(
'third.party.quantum.QuantumPlugin',
legacy.scrub_class_path('third.party.quantum.QuantumPlugin')
)
class TestLegacyConfigOverride(base.BaseTestCase):
def setUp(self):
super(TestLegacyConfigOverride, self).setUp()
self.cfg = cfg.ConfigOpts()
self.cfg.register_cli_opts([cfg.StrOpt('foo'), cfg.ListOpt('thelist')])
self.cfg.register_cli_opts([cfg.StrOpt('baz')], group='bar')
def test_override_config_simple_key(self):
self.cfg(args=['--foo=quantum'])
legacy.override_config(self.cfg, ['foo'])
self.assertEqual(self.cfg.foo, 'neutron')
def test_override_config_simple_key_unchanged(self):
self.cfg(args=['--foo=something.else'])
legacy.override_config(self.cfg, ['foo'])
self.assertEqual(self.cfg.foo, 'something.else')
def test_override_config_missing_key(self):
self.cfg(args=[])
legacy.override_config(self.cfg, ['foo'])
self.assertIsNone(self.cfg.foo)
def test_override_config_group_key(self):
self.cfg(args=['--bar-baz=quantum'])
legacy.override_config(self.cfg, [('bar', 'baz', 'mod')])
self.assertEqual(self.cfg.bar.baz, 'neutron')
def test_override_config_list_value(self):
self.cfg(args=['--thelist=quantum,neutron,quantum.Quantum'])
legacy.override_config(self.cfg, ['thelist'])
self.assertEqual(
self.cfg.thelist,
['neutron', 'neutron', 'neutron.Neutron']
)

18
quantum/__init__.py

@ -1,18 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright 2013 New Dream Network, LLC (DreamHost)
# All Rights Reserved.
#
# 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.
# @author Mark McClain (DreamHost)

36
quantum/api/__init__.py

@ -1,36 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright 2013 New Dream Network, LLC (DreamHost)
# All Rights Reserved.
#
# 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.
# @author Mark McClain (DreamHost)
import sys
import warnings
from neutron import api
from neutron.api import extensions
from neutron.api import v2
warnings.warn(
_('You are using old configuration values for the api-paste config. '
'Please update for Neutron.')
)
sys.modules['quantum.api.extensions'] = extensions
sys.modules['quantum.api.v2'] = v2
# The following assigment must be performed at the end of the module.
# Otherwise local variables will be overwritten.
sys.modules['quantum.api'] = api

32
quantum/auth.py

@ -1,32 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright 2013 New Dream Network, LLC (DreamHost)
# All Rights Reserved.
#
# 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.
# @author Mark McClain (DreamHost)
import warnings
from neutron import auth
warnings.warn(
_('You are using old configuration values for the api-paste config. '
'Please update for Neutron.')
)
# For compatibility with old configurations
QuantumKeystoneContext = auth.NeutronKeystoneContext
pipeline_factory = auth.pipeline_factory

24
setup.cfg

@ -21,7 +21,6 @@ classifier =
[files]
packages =
neutron
quantum
data_files =
etc/neutron =
etc/api-paste.ini
@ -75,9 +74,7 @@ data_files =
etc/neutron/plugins/ryu = etc/neutron/plugins/ryu/ryu.ini
etc/neutron/plugins/vmware = etc/neutron/plugins/vmware/nsx.ini
scripts =
bin/quantum-rootwrap
bin/neutron-rootwrap
bin/quantum-rootwrap-xen-dom0
bin/neutron-rootwrap-xen-dom0
[global]
@ -111,28 +108,7 @@ console_scripts =
neutron-server = neutron.server:main
neutron-rootwrap = oslo.rootwrap.cmd:main
neutron-usage-audit = neutron.cmd.usage_audit:main
quantum-check-nvp-config = neutron.plugins.vmware.check_nsx_config:main
quantum-db-manage = neutron.db.migration.cli:main
neutron-vpn-agent = neutron.services.vpn.agent:main
quantum-debug = neutron.debug.shell:main
quantum-dhcp-agent = neutron.agent.dhcp_agent:main
quantum-hyperv-agent = neutron.plugins.hyperv.agent.hyperv_neutron_agent:main
quantum-ibm-agent = neutron.plugins.ibm.agent.sdnve_neutron_agent:main
quantum-l3-agent = neutron.agent.l3_agent:main
quantum-lbaas-agent = neutron.services.loadbalancer.agent.agent:main
quantum-linuxbridge-agent = neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent:main
quantum-metadata-agent = neutron.agent.metadata.agent:main
quantum-mlnx-agent = neutron.plugins.mlnx.agent.eswitch_neutron_agent:main
quantum-nec-agent = neutron.plugins.nec.agent.nec_neutron_agent:main
quantum-netns-cleanup = neutron.agent.netns_cleanup_util:main
quantum-ns-metadata-proxy = neutron.agent.metadata.namespace_proxy:main
quantum-nvsd-agent = neutron.plugins.oneconvergence.agent.nvsd_neutron_agent:main
quantum-openvswitch-agent = neutron.plugins.openvswitch.agent.ovs_neutron_agent:main
quantum-ovs-cleanup = neutron.agent.ovs_cleanup_util:main
quantum-ryu-agent = neutron.plugins.ryu.agent.ryu_neutron_agent:main
quantum-server = neutron.server:main
quantum-rootwrap = oslo.rootwrap.cmd:main
quantum-usage-audit = neutron.cmd.usage_audit:main
neutron-metering-agent = neutron.services.metering.agents.metering_agent:main
neutron-ofagent-agent = ryu.cmd.ofa_neutron_agent:main
neutron.core_plugins =

Loading…
Cancel
Save