support-keystoneclient-option
Some users may want to create keystoneclient by specifying the type of endpoint and region name, so we need to supply the option for user to choose. Implements: blueprint support-keystoneclient-option Change-Id: I49b33a69ec99d2a91568ce27ef89dc80b75e7091
This commit is contained in:
parent
9922dec025
commit
f131825690
@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Add keystone_client Group for user to configure 'interface' and 'region_name'
|
||||
by watcher.conf. The default value of 'interface' is 'admin'.
|
@ -76,8 +76,16 @@ class OpenStackClients(object):
|
||||
|
||||
@exception.wrap_keystone_exception
|
||||
def keystone(self):
|
||||
if not self._keystone:
|
||||
self._keystone = keyclient.Client(session=self.session)
|
||||
if self._keystone:
|
||||
return self._keystone
|
||||
keystone_interface = self._get_client_option('keystone',
|
||||
'interface')
|
||||
keystone_region_name = self._get_client_option('keystone',
|
||||
'region_name')
|
||||
self._keystone = keyclient.Client(
|
||||
interface=keystone_interface,
|
||||
region_name=keystone_region_name,
|
||||
session=self.session)
|
||||
|
||||
return self._keystone
|
||||
|
||||
|
@ -32,6 +32,7 @@ from watcher.conf import exception
|
||||
from watcher.conf import glance_client
|
||||
from watcher.conf import gnocchi_client
|
||||
from watcher.conf import ironic_client
|
||||
from watcher.conf import keystone_client
|
||||
from watcher.conf import monasca_client
|
||||
from watcher.conf import neutron_client
|
||||
from watcher.conf import nova_client
|
||||
@ -54,6 +55,7 @@ monasca_client.register_opts(CONF)
|
||||
nova_client.register_opts(CONF)
|
||||
glance_client.register_opts(CONF)
|
||||
gnocchi_client.register_opts(CONF)
|
||||
keystone_client.register_opts(CONF)
|
||||
cinder_client.register_opts(CONF)
|
||||
ceilometer_client.register_opts(CONF)
|
||||
neutron_client.register_opts(CONF)
|
||||
|
38
watcher/conf/keystone_client.py
Normal file
38
watcher/conf/keystone_client.py
Normal file
@ -0,0 +1,38 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# Copyright (c) 2019 ZTE Corporation
|
||||
#
|
||||
# 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
|
||||
|
||||
keystone_client = cfg.OptGroup(name='keystone_client',
|
||||
title='Configuration Options for Keystone')
|
||||
|
||||
KEYSTONE_CLIENT_OPTS = [
|
||||
cfg.StrOpt('interface',
|
||||
default='admin',
|
||||
choices=['internal', 'public', 'admin'],
|
||||
help='Type of endpoint to use in keystoneclient.'),
|
||||
cfg.StrOpt('region_name',
|
||||
help='Region in Identity service catalog to use for '
|
||||
'communication with the OpenStack service.')]
|
||||
|
||||
|
||||
def register_opts(conf):
|
||||
conf.register_group(keystone_client)
|
||||
conf.register_opts(KEYSTONE_CLIENT_OPTS, group=keystone_client)
|
||||
|
||||
|
||||
def list_opts():
|
||||
return [('keystone_client', KEYSTONE_CLIENT_OPTS)]
|
@ -32,7 +32,8 @@ class TestListOpts(base.TestCase):
|
||||
'watcher_applier', 'watcher_datasources', 'watcher_planner',
|
||||
'nova_client', 'glance_client', 'gnocchi_client', 'cinder_client',
|
||||
'ceilometer_client', 'monasca_client', 'ironic_client',
|
||||
'neutron_client', 'watcher_clients_auth', 'collector']
|
||||
'keystone_client', 'neutron_client', 'watcher_clients_auth',
|
||||
'collector']
|
||||
self.opt_sections = list(dict(opts.list_opts()).keys())
|
||||
|
||||
def test_run_list_opts(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user