Enable loading of the tempest plugin configuration

Currently the Kingbird tempest plugin configuration items
are not loaded when run testr for kingbird in Tempest.

Need to register the configuration items and group.

After tempest can discover the Kingbird plugin,
in the tempest folder, run following command to
generate the configuration sample with Kingbird options.

oslo-config-generator --config-file etc/config-generator.tempest.con

Make sure the Kingbird plugin is installed correctly before
the above command (no error should be shown in the
following command):

 sudo pip install entry_point_inspector
 epi group list
 epi group show tempest.test_plugins
 epi ep show tempest.test_plugins kingbird_tests

Change-Id: Ibbd9afcebfb51e1e7271904c222e80a2882ef127
Signed-off-by: Chaoyi Huang <joehuang@huawei.com>
This commit is contained in:
Chaoyi Huang 2016-06-12 12:03:38 +08:00
parent 13159d8a85
commit a5afcfe221
3 changed files with 28 additions and 15 deletions

View File

@ -15,19 +15,28 @@
"""Configurations for Kingbird Tempest Plugin."""
from oslo_config import cfg
from tempest import config # noqa
service_option = cfg.BoolOpt('kingbird',
default=True,
help="Whether or not kingbird is expected to be "
"available")
kb_group = cfg.OptGroup(
name="kingbird",
title="kingbird configuration options")
KBGroup = [
cfg.StrOpt('endpoint_type',
cfg.StrOpt(name='endpoint_type',
default='publicURL',
help="Endpoint type of Kingbird service."),
cfg.IntOpt('TIME_TO_SYNC',
cfg.IntOpt(name='TIME_TO_SYNC',
default=30,
help="Maximum time to wait for a sync call to complete."),
cfg.StrOpt('endpoint_url',
cfg.StrOpt(name='endpoint_url',
default='http://127.0.0.1:8118/',
help="Endpoint URL of Kingbird service."),
cfg.StrOpt('api_version',
cfg.StrOpt(name='api_version',
default='v1.0',
help="Api version of Kingbird service.")
]

View File

@ -18,7 +18,7 @@ import os
from tempest.test_discover import plugins
import kingbird.tests.tempest.scenario.config as kb_config
from kingbird.tests.tempest.scenario import config as kb_config
class KingbirdTempestPlugin(plugins.TempestPlugin):
@ -31,8 +31,11 @@ class KingbirdTempestPlugin(plugins.TempestPlugin):
def register_opts(self, conf):
# additional options for Kingbird
conf.register_opts(kb_config.KBGroup,
'kingbird')
conf.register_group(kb_config.kb_group)
conf.register_opts(kb_config.KBGroup, group='kingbird')
conf.register_opt(kb_config.service_option,
group='service_available')
def get_opt_lists(self):
return [('kingbird', kb_config.KbGroup)]
return [('kingbird', kb_config.KBGroup),
('service_available', [kb_config.service_option])]

View File

@ -41,9 +41,9 @@ LOG = logging.getLogger(__name__)
def get_session():
return get_current_session(
CONF.identity.username,
CONF.identity.password,
CONF.identity.project_name
CONF.auth.admin_username,
CONF.auth.admin_password,
CONF.auth.admin_project_name
)
@ -53,8 +53,8 @@ def get_current_session(username, password, tenant_name):
username=username,
password=password,
project_name=tenant_name,
user_domain_name=CONF.identity.domain_name,
project_domain_name=CONF.identity.default_domain_id)
user_domain_name=CONF.auth.admin_domain_name,
project_domain_name=CONF.auth.admin_domain_name)
sess = session.Session(auth=auth)
return sess
@ -63,8 +63,8 @@ def get_openstack_drivers(key_client, region, project_name, user_name,
password):
# Create Project, User and asign role to new user
project = key_client.projects.create(project_name,
CONF.identity.domain_name)
user = key_client.users.create(user_name, CONF.identity.domain_name,
CONF.auth.admin_domain_name)
user = key_client.users.create(user_name, CONF.auth.admin_domain_name,
project.id, password)
admin_role = [current_role.id for current_role in
key_client.roles.list() if current_role.name == 'admin'][0]
@ -110,6 +110,7 @@ def get_urlstring_and_headers(token, api_url):
}
url_string = CONF.kingbird.endpoint_url + CONF.kingbird.api_version + \
"/" + admin_tenant_id + api_url
return headers, url_string