Merge "Remove last parts of Quantum compatibility shim"
This commit is contained in:
commit
4f22fb2725
@ -1 +0,0 @@
|
||||
neutron
|
@ -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 ',')
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
@ -975,7 +974,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,
|
||||
|
@ -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)
|
@ -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)
|
||||
|
@ -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
|
||||
@ -80,7 +79,6 @@ class NeutronDebugShell(shell.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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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):
|
||||
|
@ -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)
|
||||
@ -100,14 +98,9 @@ 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()
|
||||
except Exception:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.exception(_('Unrecoverable error: please check log '
|
||||
|
@ -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,
|
||||
|
@ -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(
|
||||
|
@ -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']
|
||||
)
|
@ -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)
|
@ -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
|
@ -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
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…
Reference in New Issue
Block a user