6b0f82192b
This change fixes a few things with the recently added "os_interface" option in the [placement] config group. 1. It adds tests for the scheduler report client that were missing in the original change that added the config option. 2. It uses the option in the "nova-status upgrade check" command so it is consistent with how the scheduler report client uses it. 3. It removes the restrictive choices list from the config option definition. keystoneauth1 allows an "auth" value for the endpoint interface which means don't use the service catalog to find the endpoint but instead just read it from the "auth_url" config option. Also, the Keystone v3 API performs strict validation of the endpoint interface when creating an endpoint record. The list of supported interfaces may change over time, so we shouldn't encode that list within Nova. 4. As part of removing the choices, the release note associated with the new option is updated and changed from a 'feature' release note to simply 'other' since it's not really a feature as much as it is a bug fix. Change-Id: Ia5af05cc4d8155349bab942280c83e7318749959 Closes-Bug: #1664334
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
# 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 keystoneauth1 import loading as ks_loading
|
|
from oslo_config import cfg
|
|
|
|
placement_group = cfg.OptGroup(
|
|
'placement',
|
|
title='Placement Service Options',
|
|
help="Configuration options for connecting to the placement API service")
|
|
|
|
placement_opts = [
|
|
cfg.StrOpt('os_region_name',
|
|
help="""
|
|
Region name of this node. This is used when picking the URL in the service
|
|
catalog.
|
|
|
|
Possible values:
|
|
|
|
* Any string representing region name
|
|
"""),
|
|
cfg.StrOpt('os_interface',
|
|
help="""
|
|
Endpoint interface for this node. This is used when picking the URL in the
|
|
service catalog.
|
|
""")
|
|
]
|
|
|
|
|
|
def register_opts(conf):
|
|
conf.register_group(placement_group)
|
|
conf.register_opts(placement_opts, group=placement_group)
|
|
ks_loading.register_session_conf_options(conf, placement_group.name)
|
|
ks_loading.register_auth_conf_options(conf, placement_group.name)
|
|
|
|
|
|
def list_opts():
|
|
return {
|
|
placement_group.name: (
|
|
placement_opts +
|
|
ks_loading.get_session_conf_options() +
|
|
ks_loading.get_auth_common_conf_options() +
|
|
ks_loading.get_auth_plugin_conf_options('password') +
|
|
ks_loading.get_auth_plugin_conf_options('v2password') +
|
|
ks_loading.get_auth_plugin_conf_options('v3password'))
|
|
}
|