blob: 7459cb4f40acf9c283ee201070be2bd028f586e3 [file] [log] [blame]
Marc Koderer3529ea72016-12-02 13:21:03 +01001# Copyright 2016 SAP SE
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
Takashi Kajinami39eb56d2023-11-30 22:29:10 +090016import itertools
Marc Koderer3529ea72016-12-02 13:21:03 +010017import os
18
19from tempest.test_discover import plugins
20
21from barbican_tempest_plugin import config as project_config
22
23
24class BarbicanTempestPlugin(plugins.TempestPlugin):
25 def load_tests(self):
26 base_path = os.path.split(os.path.dirname(
27 os.path.abspath(__file__)))[0]
28 test_dir = "barbican_tempest_plugin/tests"
29 full_test_dir = os.path.join(base_path, test_dir)
30 return full_test_dir, base_path
31
32 def register_opts(self, conf):
33 conf.register_opt(project_config.service_option,
34 group='service_available')
Takashi Kajinami39eb56d2023-11-30 22:29:10 +090035 conf.register_opts(
36 project_config.EnforceScopeGroup, group='enforce_scope')
Marc Koderer3529ea72016-12-02 13:21:03 +010037
Ade Lee519aa802022-05-06 12:33:06 -040038 conf.register_group(project_config.key_manager_group)
39 conf.register_opts(project_config.KeyManagerOpts,
40 project_config.key_manager_group)
41
Douglas Mendizábale6544642021-04-01 16:50:38 -050042 conf.register_group(project_config.barbican_tempest_group)
43 conf.register_opts(project_config.BarbicanGroupOpts,
44 project_config.barbican_tempest_group)
45
Jackie Truongab903f32017-04-10 18:03:27 -040046 # Register ephemeral storage encryption options
47 conf.register_group(project_config.ephemeral_storage_encryption_group)
48 conf.register_opts(project_config.EphemeralStorageEncryptionGroup,
49 project_config.ephemeral_storage_encryption_group)
Colleen Murphy62ec85c2019-04-03 09:27:05 -070050 conf.register_opts(project_config.ImageSignatureVerificationGroup,
51 project_config.image_signature_verification_group)
Jackie Truongab903f32017-04-10 18:03:27 -040052
Marc Koderer3529ea72016-12-02 13:21:03 +010053 def get_opt_lists(self):
Takashi Kajinami39eb56d2023-11-30 22:29:10 +090054 return [
55 ('service_available', [project_config.service_option]),
56 (project_config.key_manager_group.name,
57 project_config.KeyManagerOpts),
58 (project_config.barbican_tempest_group.name,
59 project_config.barbican_tempest_group),
60 (project_config.ephemeral_storage_encryption_group.name,
61 itertools.chain(project_config.EphemeralStorageEncryptionGroup,
62 project_config.ImageSignatureVerificationGroup)),
63 ('enforce_scope', project_config.EnforceScopeGroup)
64 ]
Marc Kodererc832c612016-12-12 11:49:10 +010065
66 def get_service_clients(self):
67 v1_params = {
68 'name': 'secret_v1',
69 'service_version': 'secret.v1',
70 'module_path': 'barbican_tempest_plugin.services.key_manager.json',
Peter Hamiltonee389172017-01-12 16:41:45 -050071 'client_names': [
72 'ConsumerClient',
73 'ContainerClient',
Peter Hamiltonf4166be2017-01-20 10:54:33 -050074 'OrderClient',
Peter Hamilton2adeed62017-02-01 12:23:45 -050075 'QuotaClient',
Peter Hamiltonf4166be2017-01-20 10:54:33 -050076 'SecretClient',
Douglas Mendizábale6544642021-04-01 16:50:38 -050077 'SecretMetadataClient',
Douglas Mendizábal63b174e2021-04-05 14:53:18 -050078 'SecretStoresClient',
79 'TransportKeyClient'
Peter Hamiltonee389172017-01-12 16:41:45 -050080 ],
Marc Kodererc832c612016-12-12 11:49:10 +010081 }
Ade Lee519aa802022-05-06 12:33:06 -040082 v1_1_params = {
83 'name': 'secret_v1_1',
84 'service_version': 'secret.v1_1',
85 'module_path': 'barbican_tempest_plugin.services.key_manager.v1_1',
86 'client_names': [
87 'SecretConsumerClient',
88 'VersionClient'
89 ],
90 }
91 return [v1_params, v1_1_params]