# Copyright 2016 AT&T Corp # 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 oslo_concurrency from oslo_log import log as logging from ranger_tempest_plugin import clients from tempest import config from tempest import test CONF = config.CONF LOG = logging.getLogger(__name__) PREFIX = 'alt_region' oslo_concurrency.lockutils.set_defaults(CONF.oslo_concurrency.lock_path) SYNC = oslo_concurrency.lockutils.synchronized_with_prefix(PREFIX) class BaseOrmTest(test.BaseTestCase): client_manager = clients.OrmClientManager credentials = ['admin', 'primary', 'alt'] identity_url = CONF.identity.uri_v3 or "" identity_url = identity_url.strip('/v3') build_timeout = 120 build_interval = 10 @classmethod def setup_credentials(cls): cls.set_network_resources() super(BaseOrmTest, cls).setup_credentials() @classmethod def setup_clients(cls): cls.project_client = cls.os_admin.projects_client cls.region_client = cls.os_admin.rms_client super(BaseOrmTest, cls).setup_clients() @classmethod def resource_setup(cls): super(BaseOrmTest, cls).resource_setup() # Get regions in ranger deployment _, regions_list = cls.region_client.list_regions() for region in regions_list['regions']: if region['id'] == CONF.identity.region or \ (region['id'] == CONF.ranger.alt_region and CONF.ranger.alt_region_available is True): region['domainName'] = CONF.auth.admin_domain_name cls.region_client.update_region(region['id'], **region) cls.addClassResourceCleanup(cls.region_client.update_region, region['id'], **region) @classmethod def skip_checks(cls): super(BaseOrmTest, cls).skip_checks() if not CONF.service_available.ranger: skip_msg = ("%s skipped as ranger is not available" % cls.__name__) raise cls.skipException(skip_msg) # ranger service availability should not be in conf. It should be set # by ranger pods during deployment to a site. def assert_expected(self, expected, actual, excluded_keys): for key, value in list(expected.items()): if key not in excluded_keys: self.assertIn(key, actual) self.assertEqual(value, actual[key], key)