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.""" """Configurations for Kingbird Tempest Plugin."""
from oslo_config import cfg 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 = [ KBGroup = [
cfg.StrOpt('endpoint_type', cfg.StrOpt(name='endpoint_type',
default='publicURL', default='publicURL',
help="Endpoint type of Kingbird service."), help="Endpoint type of Kingbird service."),
cfg.IntOpt('TIME_TO_SYNC', cfg.IntOpt(name='TIME_TO_SYNC',
default=30, default=30,
help="Maximum time to wait for a sync call to complete."), 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/', default='http://127.0.0.1:8118/',
help="Endpoint URL of Kingbird service."), help="Endpoint URL of Kingbird service."),
cfg.StrOpt('api_version', cfg.StrOpt(name='api_version',
default='v1.0', default='v1.0',
help="Api version of Kingbird service.") help="Api version of Kingbird service.")
] ]

View File

@ -18,7 +18,7 @@ import os
from tempest.test_discover import plugins 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): class KingbirdTempestPlugin(plugins.TempestPlugin):
@ -31,8 +31,11 @@ class KingbirdTempestPlugin(plugins.TempestPlugin):
def register_opts(self, conf): def register_opts(self, conf):
# additional options for Kingbird # additional options for Kingbird
conf.register_opts(kb_config.KBGroup, conf.register_group(kb_config.kb_group)
'kingbird') conf.register_opts(kb_config.KBGroup, group='kingbird')
conf.register_opt(kb_config.service_option,
group='service_available')
def get_opt_lists(self): 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(): def get_session():
return get_current_session( return get_current_session(
CONF.identity.username, CONF.auth.admin_username,
CONF.identity.password, CONF.auth.admin_password,
CONF.identity.project_name CONF.auth.admin_project_name
) )
@ -53,8 +53,8 @@ def get_current_session(username, password, tenant_name):
username=username, username=username,
password=password, password=password,
project_name=tenant_name, project_name=tenant_name,
user_domain_name=CONF.identity.domain_name, user_domain_name=CONF.auth.admin_domain_name,
project_domain_name=CONF.identity.default_domain_id) project_domain_name=CONF.auth.admin_domain_name)
sess = session.Session(auth=auth) sess = session.Session(auth=auth)
return sess return sess
@ -63,8 +63,8 @@ def get_openstack_drivers(key_client, region, project_name, user_name,
password): password):
# Create Project, User and asign role to new user # Create Project, User and asign role to new user
project = key_client.projects.create(project_name, project = key_client.projects.create(project_name,
CONF.identity.domain_name) CONF.auth.admin_domain_name)
user = key_client.users.create(user_name, CONF.identity.domain_name, user = key_client.users.create(user_name, CONF.auth.admin_domain_name,
project.id, password) project.id, password)
admin_role = [current_role.id for current_role in admin_role = [current_role.id for current_role in
key_client.roles.list() if current_role.name == 'admin'][0] 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 + \ url_string = CONF.kingbird.endpoint_url + CONF.kingbird.api_version + \
"/" + admin_tenant_id + api_url "/" + admin_tenant_id + api_url
return headers, url_string return headers, url_string