Expose keystoneclient's session and auth plugin loading parameters

In change id (I7b3b825737dde333c8d88019d814304cbefdbfc7) support
was added to be able to specify and use the standard session and
auth plugin helpers from keystoneclient to standardize the
options available for talking to neutron.

However, these config options do not show up when we generate
the sample configuration file. Jamie Lennox has details in his
blog as well:
http://www.jamielennox.net/blog/2015/02/17/loading-authentication-plugins/

Since there are many auth plugins, we generate config params for
a few common ones.

DocImpact

Closes-Bug: #1486590
Change-Id: Id6b3ff845c2388fa01b1d3b28093f5bdf27136ff
This commit is contained in:
Davanum Srinivas 2015-08-18 22:26:36 -04:00 committed by Davanum Srinivas (dims)
parent ce2da347a9
commit 9095b364bd
3 changed files with 24 additions and 2 deletions

View File

@ -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

View File

@ -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

View File

@ -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