diff options
author | jose.lausuch <jose.lausuch@ericsson.com> | 2015-09-30 15:29:04 +0200 |
---|---|---|
committer | jose.lausuch <jose.lausuch@ericsson.com> | 2015-10-07 10:07:22 +0200 |
commit | 71d85bca9549348b0c2f486bac58923f299e5a88 (patch) | |
tree | 51ba663c21cf3facfe98625839993379c7b0f08d /testcases/config_functest.py | |
parent | ec6b78ebea4aee67f299d31af99b9e0e2ea4e9a5 (diff) |
Dockerfile for Functest
Includes also:
- script to trigger Functest automatically within the container
- common requirements file to install python modules
- added new parameters in the config_functest.yaml
- other small adjustements
JIRA: FUNCTEST-29
Change-Id: I230631e43e5f7e14938b35903ecec1b17db0f88a
Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com>
Diffstat (limited to 'testcases/config_functest.py')
-rwxr-xr-x | testcases/config_functest.py | 61 |
1 files changed, 13 insertions, 48 deletions
diff --git a/testcases/config_functest.py b/testcases/config_functest.py index e209a3b9..8bc632c7 100755 --- a/testcases/config_functest.py +++ b/testcases/config_functest.py @@ -51,35 +51,31 @@ f.close() """ global variables """ # Directories -HOME = os.environ['HOME']+"/" REPO_PATH = args.repo_path RALLY_DIR = REPO_PATH + functest_yaml.get("general").get("directories").get("dir_rally") -RALLY_REPO_DIR = HOME + functest_yaml.get("general").get("directories").get("dir_rally_repo") -RALLY_INSTALLATION_DIR = HOME + functest_yaml.get("general").get("directories").get("dir_rally_inst") -RALLY_RESULT_DIR = HOME + functest_yaml.get("general").get("directories").get("dir_rally_res") +RALLY_REPO_DIR = functest_yaml.get("general").get("directories").get("dir_repo_rally") +RALLY_INSTALLATION_DIR = functest_yaml.get("general").get("directories").get("dir_rally_inst") +RALLY_RESULT_DIR = functest_yaml.get("general").get("directories").get("dir_rally_res") VPING_DIR = REPO_PATH + functest_yaml.get("general").get("directories").get("dir_vping") ODL_DIR = REPO_PATH + functest_yaml.get("general").get("directories").get("dir_odl") +IMAGE_DIR = functest_yaml.get("general").get("directories").get("dir_functest_data") # Tempest/Rally configuration details DEPLOYMENT_MAME = "opnfv-rally" +RALLY_COMMIT = functest_yaml.get("general").get("openstack").get("rally_stable_commit") #GLANCE image parameters IMAGE_URL = functest_yaml.get("general").get("openstack").get("image_url") IMAGE_DISK_FORMAT = functest_yaml.get("general").get("openstack").get("image_disk_format") IMAGE_NAME = functest_yaml.get("general").get("openstack").get("image_name") IMAGE_FILE_NAME = IMAGE_URL.rsplit('/')[-1] -IMAGE_DIR = HOME + functest_yaml.get("general").get("openstack").get("image_download_path") -IMAGE_PATH = IMAGE_DIR + IMAGE_FILE_NAME +IMAGE_PATH = IMAGE_DIR + "/" + IMAGE_FILE_NAME def action_start(): """ Start the functest environment installation """ - if not check_permissions(): - logger.error("Bad Python cache directory ownership.") - exit(-1) - if not functest_utils.check_internet_connectivity(): logger.error("There is no Internet connectivity. Please check the network configuration.") exit(-1) @@ -93,11 +89,6 @@ def action_start(): logger.debug("Cleaning possible functest environment leftovers.") action_clean() - logger.info("Installing needed libraries on the host") - cmd = "sudo yum -y install gcc libffi-devel python-devel openssl-devel gmp-devel libxml2-devel libxslt-devel postgresql-devel git wget crudini" - if not functest_utils.execute_command(cmd, logger): - logger.error("There has been a problem while installing software packages.") - exit(-1) logger.info("Installing ODL environment...") if not install_odl(): @@ -142,11 +133,11 @@ def action_check(): Check if the functest environment is properly installed """ errors_all = False - + errors = False logger.info("Checking current functest configuration...") logger.debug("Checking script directories...") - errors = False + dirs = [RALLY_DIR, RALLY_INSTALLATION_DIR, VPING_DIR, ODL_DIR] for dir in dirs: if not os.path.exists(dir): @@ -197,11 +188,7 @@ def action_check(): logger.debug("...FAIL") #TODO: check OLD environment setup - if errors_all: - return False - else: - return True - + return not errors_all @@ -214,11 +201,6 @@ def action_clean(): logger.debug("Removing Rally installation directory %s" % RALLY_INSTALLATION_DIR) shutil.rmtree(RALLY_INSTALLATION_DIR,ignore_errors=True) - if os.path.exists(RALLY_REPO_DIR): - logger.debug("Removing Rally repository %s" % RALLY_REPO_DIR) - cmd = "sudo rm -rf " + RALLY_REPO_DIR #need to be sudo, not possible with rmtree - functest_utils.execute_command(cmd,logger) - if os.path.exists(IMAGE_PATH): logger.debug("Deleting image") os.remove(IMAGE_PATH) @@ -240,30 +222,12 @@ def action_clean(): -def check_permissions(): - current_user = getpass.getuser() - cache_dir = HOME+".cache/pip" - logger.info("Checking permissions of '%s'..." %cache_dir) - logger.debug("Current user is '%s'" %current_user) - cache_user = getpwuid(stat(cache_dir).st_uid).pw_name - logger.debug("Cache directory owner is '%s'" %cache_user) - if cache_user != current_user: - logger.info("The owner of '%s' is '%s'. Please run 'sudo chown -R %s %s'." %(cache_dir, cache_user, current_user, cache_dir)) - return False - - return True - - def install_rally(): if check_rally(): logger.info("Rally is already installed.") else: - logger.debug("Cloning repository...") - url = "https://git.openstack.org/openstack/rally" - Repo.clone_from(url, RALLY_REPO_DIR) - logger.debug("Executing %s./install_rally.sh..." %RALLY_REPO_DIR) - install_script = RALLY_REPO_DIR + "install_rally.sh --yes" + install_script = RALLY_REPO_DIR + "/install_rally.sh --yes" cmd = 'sudo ' + install_script functest_utils.execute_command(cmd,logger) @@ -311,7 +275,7 @@ def configure_tempest(): return False logger.debug("Finding tempest.conf file...") - tempest_conf_file = RALLY_INSTALLATION_DIR+"tempest/for-deployment-" \ + tempest_conf_file = RALLY_INSTALLATION_DIR+"/tempest/for-deployment-" \ +deployment_uuid+"/tempest.conf" logger.debug(" Updating fixed_network_name...") @@ -359,7 +323,8 @@ def create_glance_image(path,name,disk_format): """ Create a glance image given the absolute path of the image, its name and the disk format """ - cmd = "glance image-create --name "+name+" --is-public true --disk-format "+disk_format+" --container-format bare --file "+path + cmd = ("glance image-create --name "+name+" --visibility public " + "--disk-format "+disk_format+" --container-format bare --file "+path) functest_utils.execute_command(cmd,logger) return True |