diff options
Diffstat (limited to 'functest/utils')
-rw-r--r-- | functest/utils/functest_utils.py | 8 | ||||
-rw-r--r-- | functest/utils/openstack_utils.py | 79 |
2 files changed, 19 insertions, 68 deletions
diff --git a/functest/utils/functest_utils.py b/functest/utils/functest_utils.py index e4062373c..f07f59d7f 100644 --- a/functest/utils/functest_utils.py +++ b/functest/utils/functest_utils.py @@ -227,14 +227,14 @@ def get_ci_envvars(): def execute_command_raise(cmd, info=False, error_msg="", - verbose=True, output_file=None, env=None): - ret = execute_command(cmd, info, error_msg, verbose, output_file, env) + verbose=True, output_file=None): + ret = execute_command(cmd, info, error_msg, verbose, output_file) if ret != 0: raise Exception(error_msg) def execute_command(cmd, info=False, error_msg="", - verbose=True, output_file=None, env=None): + verbose=True, output_file=None): if not error_msg: error_msg = ("The command '%s' failed." % cmd) msg_exec = ("Executing command: '%s'" % cmd) @@ -243,7 +243,7 @@ def execute_command(cmd, info=False, error_msg="", logger.info(msg_exec) else: logger.debug(msg_exec) - p = subprocess.Popen(cmd, env=env, shell=True, stdout=subprocess.PIPE, + p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) if output_file: f = open(output_file, "w") diff --git a/functest/utils/openstack_utils.py b/functest/utils/openstack_utils.py index 73d1cde49..f211627a5 100644 --- a/functest/utils/openstack_utils.py +++ b/functest/utils/openstack_utils.py @@ -1195,8 +1195,13 @@ def get_image_id(glance_client, image_name): return id -def create_glance_image(glance_client, image_name, file_path, disk="qcow2", - container="bare", public="public"): +def create_glance_image(glance_client, + image_name, + file_path, + disk="qcow2", + extra_properties={}, + container="bare", + public="public"): if not os.path.isfile(file_path): logger.error("Error: file %s does not exist." % file_path) return None @@ -1211,7 +1216,8 @@ def create_glance_image(glance_client, image_name, file_path, disk="qcow2", image = glance_client.images.create(name=image_name, visibility=public, disk_format=disk, - container_format=container) + container_format=container, + **extra_properties) image_id = image.id with open(file_path) as image_data: glance_client.images.upload(image_id, image_data) @@ -1222,7 +1228,7 @@ def create_glance_image(glance_client, image_name, file_path, disk="qcow2", return None -def get_or_create_image(name, path, format): +def get_or_create_image(name, path, format, extra_properties): image_exists = False glance_client = get_glance_client() @@ -1232,7 +1238,11 @@ def get_or_create_image(name, path, format): image_exists = True else: logger.info("Creating image '%s' from '%s'..." % (name, path)) - image_id = create_glance_image(glance_client, name, path, format) + image_id = create_glance_image(glance_client, + name, + path, + format, + extra_properties) if not image_id: logger.error("Failed to create a Glance image...") else: @@ -1561,62 +1571,3 @@ def get_resource(heat_client, stack_id, resource): except Exception as e: logger.error("Error [get_resource]: %s" % e) return None - - -# ********************************************* -# TEMPEST -# ********************************************* -def init_tempest_cleanup(tempest_config_dir=None, - tempest_config_filename='tempest.conf', - output_file=None): - """ - Initialize the Tempest Cleanup utility. - See https://docs.openstack.org/tempest/latest/cleanup.html for docs. - - :param tempest_config_dir: The directory where the Tempest config file is - located. If not specified, we let Tempest pick both the directory - and the filename (i.e. second parameter is ignored) - :param tempest_config_filename: The filename of the Tempest config file - :param output_file: Optional file where to save output - """ - # The Tempest cleanup utility currently offers no cmd argument to specify - # the config file, therefore it has to be configured with env variables - env = None - if tempest_config_dir: - env = os.environ.copy() - env['TEMPEST_CONFIG_DIR'] = tempest_config_dir - env['TEMPEST_CONFIG'] = tempest_config_filename - - # If this command fails, an exception must be raised to stop the script - # otherwise the later cleanup would destroy also other resources - cmd_line = "tempest cleanup --init-saved-state" - ft_utils.execute_command_raise(cmd_line, env=env, output_file=output_file, - error_msg="Tempest cleanup init failed") - - -def perform_tempest_cleanup(tempest_config_dir=None, - tempest_config_filename='tempest.conf', - output_file=None): - """ - Perform cleanup using the Tempest Cleanup utility. - See https://docs.openstack.org/tempest/latest/cleanup.html for docs. - - :param tempest_config_dir: The directory where the Tempest config file is - located. If not specified, we let Tempest pick both the directory - and the filename (i.e. second parameter is ignored) - :param tempest_config_filename: The filename of the Tempest config file - :param output_file: Optional file where to save output - """ - # The Tempest cleanup utility currently offers no cmd argument to specify - # the config file, therefore it has to be configured with env variables - env = None - if tempest_config_dir: - env = os.environ.copy() - env['TEMPEST_CONFIG_DIR'] = tempest_config_dir - env['TEMPEST_CONFIG'] = tempest_config_filename - - # If this command fails, an exception must be raised to stop the script - # otherwise the later cleanup would destroy also other resources - cmd_line = "tempest cleanup" - ft_utils.execute_command(cmd_line, env=env, output_file=output_file, - error_msg="Tempest cleanup failed") |