Files
trove-tempest-plugin/trove_tempest_plugin/plugin.py
Bartosz Zurkowski 36ee568e0a Make use of service clients interface
This change makes use of features provided by stable "ServiceClients"
interface that has been available in Tempest for some time. The
interface enhances tests with a convenient way to access available
service clients.

When a plugin uses "ServiceClients" interface, all stable Tempest
clients and all clients exposed by installed plugins will be
automatically available and pre-configured. Instead of explicitly
specifying parameters, such as "auth_provider", "build_timeout", etc.,
all these parameters will be read from the Tempest configuration and
then installed automatically in the clients.

Plugin adaptation was carried out in accordance with the requirements
described in Tempest documentation[1] and inspired by changes introduced
in other plugins[2][3].

[1] https://docs.openstack.org/tempest/latest/plugin.html#service-clients
[2] https://review.openstack.org/#/c/338486/
[3] https://review.openstack.org/#/c/334596/

Change-Id: I0fbb12fb93f4411f23d95d54d8d5a7904a372333
Signed-off-by: Bartosz Zurkowski <b.zurkowski@samsung.com>
2018-08-07 16:26:02 +02:00

57 lines
2.0 KiB
Python

# Copyright (c) 2016 Hewlett-Packard Development Company, L.P.
# All Rights Reserved.
#
# 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.
import os
from tempest import config
from tempest.test_discover import plugins
from trove_tempest_plugin import config as trove_config
class TroveTempestPlugin(plugins.TempestPlugin):
def load_tests(self):
base_path = os.path.split(os.path.dirname(
os.path.abspath(__file__)))[0]
test_dir = "trove_tempest_plugin/tests"
full_test_dir = os.path.join(base_path, test_dir)
return full_test_dir, base_path
def register_opts(self, conf):
conf.register_group(trove_config.database_group)
conf.register_opts(trove_config.DatabaseGroup, group='database')
conf.register_opt(trove_config.service_option,
group='service_available')
def get_opt_lists(self):
return [('database', trove_config.DatabaseGroup),
('service_available', [trove_config.service_option])]
def get_service_clients(self):
service_config = config.service_client_config('database')
service_params = {
'name': 'database',
'service_version': 'database',
'module_path': 'trove_tempest_plugin.services.database',
'client_names': [
'FlavorsClient',
'LimitsClient',
'VersionsClient'
]
}
service_params.update(service_config)
return [service_params]