diff --git a/etc/nova/nova-config-generator.conf b/etc/nova/nova-config-generator.conf index 8c49bad80709..7c820ad483ee 100644 --- a/etc/nova/nova-config-generator.conf +++ b/etc/nova/nova-config-generator.conf @@ -6,6 +6,7 @@ namespace = nova.api namespace = nova.cells namespace = nova.compute namespace = nova.network +namespace = nova.network.neutronv2 namespace = nova.scheduler namespace = nova.virt namespace = nova.openstack.common.memorycache diff --git a/nova/network/neutronv2/api.py b/nova/network/neutronv2/api.py index 42b43d1d924f..ec1174bcaad2 100644 --- a/nova/network/neutronv2/api.py +++ b/nova/network/neutronv2/api.py @@ -15,6 +15,7 @@ # under the License. # +import copy import time import uuid @@ -135,8 +136,8 @@ deprecations = {'cafile': [cfg.DeprecatedOpt('ca_certificates_file', 'timeout': [cfg.DeprecatedOpt('url_timeout', group=NEUTRON_GROUP)]} -session.Session.register_conf_options(CONF, NEUTRON_GROUP, - deprecated_opts=deprecations) +_neutron_options = session.Session.register_conf_options( + CONF, NEUTRON_GROUP, deprecated_opts=deprecations) auth.register_conf_options(CONF, NEUTRON_GROUP) @@ -151,6 +152,25 @@ _SESSION = None _ADMIN_AUTH = None +def list_opts(): + list = copy.deepcopy(_neutron_options) + list.insert(0, auth.get_common_conf_options()[0]) + # NOTE(dims): There are a lot of auth plugins, we just generate + # the config options for a few common ones + plugins = ['password', 'v2password', 'v3password'] + for name in plugins: + for plugin_option in auth.get_plugin_class(name).get_options(): + found = False + for option in list: + if option.name == plugin_option.name: + found = True + break + if not found: + list.append(plugin_option) + list.sort(key=lambda x: x.name) + return [(NEUTRON_GROUP, list)] + + def reset_state(): global _ADMIN_AUTH global _SESSION diff --git a/setup.cfg b/setup.cfg index c00b69b7a611..9349b8964f3e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -32,6 +32,7 @@ oslo.config.opts = nova.cells = nova.cells.opts:list_opts nova.compute = nova.compute.opts:list_opts nova.network = nova.network.opts:list_opts + nova.network.neutronv2 = nova.network.neutronv2.api:list_opts nova.scheduler = nova.scheduler.opts:list_opts nova.virt = nova.virt.opts:list_opts nova.openstack.common.memorycache = nova.openstack.common.memorycache:list_opts