80 lines
3.1 KiB
Python
80 lines
3.1 KiB
Python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
|
|
# Copyright 2012 OpenStack, LLC
|
|
# 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 logging
|
|
|
|
|
|
from tempest import clients
|
|
from tempest import config
|
|
from tempest.exceptions import InvalidConfiguration
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
CONFIG = config.TempestConfig()
|
|
CREATE_IMAGE_ENABLED = CONFIG.compute.create_image_enabled
|
|
RESIZE_AVAILABLE = CONFIG.compute.resize_available
|
|
CHANGE_PASSWORD_AVAILABLE = CONFIG.compute.change_password_available
|
|
DISK_CONFIG_ENABLED = True
|
|
DISK_CONFIG_ENABLED_OVERRIDE = CONFIG.compute.disk_config_enabled_override
|
|
FLAVOR_EXTRA_DATA_ENABLED = True
|
|
MULTI_USER = True
|
|
|
|
|
|
# All compute tests -- single setup function
|
|
def generic_setup_package():
|
|
LOG.debug("Entering tempest.api.compute.setup_package")
|
|
|
|
global MULTI_USER, DISK_CONFIG_ENABLED, FLAVOR_EXTRA_DATA_ENABLED
|
|
os = clients.Manager()
|
|
images_client = os.images_client
|
|
flavors_client = os.flavors_client
|
|
extensions_client = os.extensions_client
|
|
DISK_CONFIG_ENABLED = (DISK_CONFIG_ENABLED_OVERRIDE and
|
|
extensions_client.is_enabled('DiskConfig'))
|
|
FLAVOR_EXTRA_DATA_ENABLED = extensions_client.is_enabled('FlavorExtraData')
|
|
|
|
# Validate reference data exists
|
|
# If not, we raise the exception here and prevent
|
|
# going forward...
|
|
image_ref = CONFIG.compute.image_ref
|
|
image_ref_alt = CONFIG.compute.image_ref_alt
|
|
images_client.get_image(image_ref)
|
|
images_client.get_image(image_ref_alt)
|
|
|
|
flavor_ref = CONFIG.compute.flavor_ref
|
|
flavor_ref_alt = CONFIG.compute.flavor_ref_alt
|
|
flavors_client.get_flavor_details(flavor_ref)
|
|
flavors_client.get_flavor_details(flavor_ref_alt)
|
|
|
|
# Determine if there are two regular users that can be
|
|
# used in testing. If the test cases are allowed to create
|
|
# users (config.compute.allow_tenant_isolation is true,
|
|
# then we allow multi-user.
|
|
if not CONFIG.compute.allow_tenant_isolation:
|
|
user1 = CONFIG.identity.username
|
|
user2 = CONFIG.identity.alt_username
|
|
if not user2 or user1 == user2:
|
|
MULTI_USER = False
|
|
else:
|
|
user2_password = CONFIG.identity.alt_password
|
|
user2_tenant_name = CONFIG.identity.alt_tenant_name
|
|
if not user2_password or not user2_tenant_name:
|
|
msg = ("Alternate user specified but not alternate "
|
|
"tenant or password: alt_tenant_name=%s alt_password=%s"
|
|
% (user2_tenant_name, user2_password))
|
|
raise InvalidConfiguration(msg)
|