Fix generation of Guru Meditation Report

Generation of a guru medidation report fails with TypeError when
trying to serialize config group options. This is due to the fact,
that I018c3a408a8903be8d006760994de6947fb91168 registers `barbican`
options group incorrectly: an OptGroup instance is passed where a
string name is expected (keystoneauth1 wraps the passed value
into OptGroup unconditionally).

A follow up change to oslo.config will make sure we fail early in
case an incorrect value has been been passed to register_group().

Change-Id: I4c57127c7bc0098000ad18ba7bab12fbc66d8ac0
Closes-Bug: #1568208
This commit is contained in:
Roman Podoliaka 2016-04-13 16:33:29 +03:00
parent b9d757bc04
commit acbf057d25
3 changed files with 36 additions and 2 deletions

View File

@ -37,7 +37,7 @@ barbican_opts = [
def register_opts(conf):
conf.register_group(barbican_group)
conf.register_opts(barbican_opts, group=barbican_group)
ks_loading.register_session_conf_options(conf, barbican_group)
ks_loading.register_session_conf_options(conf, barbican_group.name)
def list_opts():

View File

@ -75,7 +75,7 @@ class BarbicanKeyManager(key_mgr.KeyManager):
try:
_SESSION = ks_loading.load_session_from_conf_options(
CONF,
nova.conf.barbican.barbican_group)
nova.conf.barbican.barbican_group.name)
auth = ctxt.get_auth_plugin()
service_type, service_name, interface = (CONF.

View File

@ -0,0 +1,34 @@
# 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_reports import guru_meditation_report as gmr
from nova import test
from nova import version
class TestServerGet(test.TestCase):
def test_guru_meditation_report_generation(self):
"""Regression test for bug #1568208.
This test ensures a text guru meditation report can be generated
successfully and generation does not fail e.g. due to incorrectly
registered config options.
"""
# NOTE(rpodolyaka): we are only interested in success of run() call
# here, it's up to oslo_reports tests to check the generated report
generator = gmr.TextGuruMeditation(version)
generator.run()