summaryrefslogtreecommitdiffstats
path: root/testcases
diff options
context:
space:
mode:
authorjose.lausuch <jose.lausuch@ericsson.com>2015-09-30 15:29:04 +0200
committerjose.lausuch <jose.lausuch@ericsson.com>2015-10-07 10:07:22 +0200
commit71d85bca9549348b0c2f486bac58923f299e5a88 (patch)
tree51ba663c21cf3facfe98625839993379c7b0f08d /testcases
parentec6b78ebea4aee67f299d31af99b9e0e2ea4e9a5 (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')
-rwxr-xr-xtestcases/config_functest.py61
-rw-r--r--testcases/config_functest.yaml23
-rw-r--r--testcases/functest_utils.py2
3 files changed, 30 insertions, 56 deletions
diff --git a/testcases/config_functest.py b/testcases/config_functest.py
index e209a3b94..8bc632c71 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
diff --git a/testcases/config_functest.yaml b/testcases/config_functest.yaml
index e8ee6d9c6..e5a6a937d 100644
--- a/testcases/config_functest.yaml
+++ b/testcases/config_functest.yaml
@@ -6,17 +6,26 @@ general:
dir_rally: testcases/VIM/OpenStack/CI/libraries/
dir_rally_scn: testcases/VIM/OpenStack/CI/suites/
dir_vIMS: testcases/vIMS/CI/
- # Relative to $HOME:
- dir_vIMS_data: functest/vIMS_data/ # $HOME/functest/vIMS_data/
- dir_rally_res: functest/results/ # $HOME/functest/results
- dir_rally_repo: functest/Rally_repo/ # $HOME/Rally_repo/
- dir_rally_inst: .rally/ # $HOME/.rally/ usually
+
+ # Absolute path
+ dir_repos: /home/opnfv/repos
+ dir_repo_functest: /home/opnfv/repos/functest
+ dir_repo_rally: /home/opnfv/repos/rally
+ dir_repo_releng: /home/opnfv/repos/releng
+ dir_functest: /home/opnfv/functest
+ dir_results: /home/opnfv/functest/results
+ dir_functest_conf: /home/opnfv/functest/conf
+ dir_rally_res: /home/opnfv/functest/results/rally
+ dir_functest_data: /home/opnfv/functest/data
+ dir_vIMS_data: /home/opnfv/functest/data/vIMS
+ dir_rally_inst: /root/.rally
openstack:
image_name: functest-img
image_url: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
image_disk_format: qcow2
- image_download_path: functest/ # $HOME/functest/
+ rally_stable_commit: 9a17d8490e7fb4afee2f5629e6db41eabe4bc4d4
+
#Public network. Optional
neutron_public_net_name: net04_ext
neutron_public_subnet_name: net04_ext__subnet
@@ -88,4 +97,4 @@ vIMS:
external_network_name: ''
public_domain: clearwater.opnfv
results:
- test_db_url: http://213.77.62.197 \ No newline at end of file
+ test_db_url: http://213.77.62.197
diff --git a/testcases/functest_utils.py b/testcases/functest_utils.py
index 6d60fbce3..c2e4bc6d5 100644
--- a/testcases/functest_utils.py
+++ b/testcases/functest_utils.py
@@ -344,7 +344,7 @@ def download_url(url, dest_path):
Download a file to a destination path given a URL
"""
name = url.rsplit('/')[-1]
- dest = dest_path + name
+ dest = dest_path + "/" + name
try:
response = urllib2.urlopen(url)
except (urllib2.HTTPError, urllib2.URLError):