blob: aaa381066a61b94b979629616461cfc32ca87954 [file] [log] [blame]
Solio Sarabia60095ff2017-02-28 18:18:26 -06001# Copyright 2012 OpenStack Foundation
2# Copyright 2013 IBM Corp.
3# All Rights Reserved.
4#
5# Licensed under the Apache License, Version 2.0 (the "License"); you may
6# not use this file except in compliance with the License. You may obtain
7# a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14# License for the specific language governing permissions and limitations
15# under the License.
16
17# NOTE(soliosg) Do not edit this file. It will only stay temporarily
18# in ironic, while QA refactors the tempest.scenario interface. This
19# file was copied from openstack/tempest/tempest/scenario/manager.py,
20# openstack/tempest commit: 82a278e88c9e9f9ba49f81c1f8dba0bca7943daf
21
Solio Sarabia60095ff2017-02-28 18:18:26 -060022from oslo_log import log
Solio Sarabia60095ff2017-02-28 18:18:26 -060023from tempest import config
Solio Sarabia60095ff2017-02-28 18:18:26 -060024from tempest.lib import exceptions as lib_exc
Roman Popelka082919c2022-03-17 11:44:31 +010025from tempest.scenario import manager
Solio Sarabia60095ff2017-02-28 18:18:26 -060026
27CONF = config.CONF
28
29LOG = log.getLogger(__name__)
30
31
Roman Popelka082919c2022-03-17 11:44:31 +010032class ScenarioTest(manager.ScenarioTest):
Solio Sarabia60095ff2017-02-28 18:18:26 -060033 """Base class for scenario tests. Uses tempest own clients. """
34
Julia Kreger3a07c4d2021-06-22 10:27:56 -070035 credentials = ['primary', 'admin', 'system_admin']
Solio Sarabia60095ff2017-02-28 18:18:26 -060036
37 @classmethod
38 def setup_clients(cls):
39 super(ScenarioTest, cls).setup_clients()
40 # Clients (in alphabetical order)
Vu Cong Tuanf825d192017-06-21 18:32:15 +070041 cls.flavors_client = cls.os_primary.flavors_client
Solio Sarabia60095ff2017-02-28 18:18:26 -060042 cls.compute_floating_ips_client = (
Vu Cong Tuanf825d192017-06-21 18:32:15 +070043 cls.os_primary.compute_floating_ips_client)
Solio Sarabia60095ff2017-02-28 18:18:26 -060044 if CONF.service_available.glance:
45 # Check if glance v1 is available to determine which client to use.
46 if CONF.image_feature_enabled.api_v1:
Vu Cong Tuanf825d192017-06-21 18:32:15 +070047 cls.image_client = cls.os_primary.image_client
Solio Sarabia60095ff2017-02-28 18:18:26 -060048 elif CONF.image_feature_enabled.api_v2:
Vu Cong Tuanf825d192017-06-21 18:32:15 +070049 cls.image_client = cls.os_primary.image_client_v2
Solio Sarabia60095ff2017-02-28 18:18:26 -060050 else:
51 raise lib_exc.InvalidConfiguration(
52 'Either api_v1 or api_v2 must be True in '
53 '[image-feature-enabled].')
54 # Compute image client
Vu Cong Tuanf825d192017-06-21 18:32:15 +070055 cls.compute_images_client = cls.os_primary.compute_images_client
56 cls.keypairs_client = cls.os_primary.keypairs_client
Solio Sarabia60095ff2017-02-28 18:18:26 -060057 # Nova security groups client
58 cls.compute_security_groups_client = (
Vu Cong Tuanf825d192017-06-21 18:32:15 +070059 cls.os_primary.compute_security_groups_client)
Solio Sarabia60095ff2017-02-28 18:18:26 -060060 cls.compute_security_group_rules_client = (
Vu Cong Tuanf825d192017-06-21 18:32:15 +070061 cls.os_primary.compute_security_group_rules_client)
62 cls.servers_client = cls.os_primary.servers_client
63 cls.interface_client = cls.os_primary.interfaces_client
Solio Sarabia60095ff2017-02-28 18:18:26 -060064 # Neutron network client
Vu Cong Tuanf825d192017-06-21 18:32:15 +070065 cls.networks_client = cls.os_primary.networks_client
66 cls.ports_client = cls.os_primary.ports_client
67 cls.routers_client = cls.os_primary.routers_client
68 cls.subnets_client = cls.os_primary.subnets_client
69 cls.floating_ips_client = cls.os_primary.floating_ips_client
70 cls.security_groups_client = cls.os_primary.security_groups_client
Solio Sarabia60095ff2017-02-28 18:18:26 -060071 cls.security_group_rules_client = (
Vu Cong Tuanf825d192017-06-21 18:32:15 +070072 cls.os_primary.security_group_rules_client)
Solio Sarabia60095ff2017-02-28 18:18:26 -060073
Ghanshyam Mann3b663f62019-12-12 17:01:16 +000074 cls.volumes_client = cls.os_primary.volumes_client_latest
75 cls.snapshots_client = cls.os_primary.snapshots_client_latest
Solio Sarabia60095ff2017-02-28 18:18:26 -060076
77 # ## Test functions library
78 #
79 # The create_[resource] functions only return body and discard the
80 # resp part which is not used in scenario tests
81
Solio Sarabia60095ff2017-02-28 18:18:26 -060082
Roman Popelka082919c2022-03-17 11:44:31 +010083class NetworkScenarioTest(manager.NetworkScenarioTest):
Solio Sarabia60095ff2017-02-28 18:18:26 -060084 """Base class for network scenario tests.
85
86 This class provide helpers for network scenario tests, using the neutron
87 API. Helpers from ancestor which use the nova network API are overridden
88 with the neutron API.
89
90 This Class also enforces using Neutron instead of novanetwork.
91 Subclassed tests will be skipped if Neutron is not enabled
92
93 """
94
Julia Kreger3a07c4d2021-06-22 10:27:56 -070095 credentials = ['primary', 'admin', 'system_admin']
Solio Sarabia60095ff2017-02-28 18:18:26 -060096
97 @classmethod
98 def skip_checks(cls):
99 super(NetworkScenarioTest, cls).skip_checks()
100 if not CONF.service_available.neutron:
101 raise cls.skipException('Neutron not available')