summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rwxr-xr-xci/exec_test.sh2
-rw-r--r--testcases/OpenStack/rally/blacklist.txt26
-rwxr-xr-xtestcases/OpenStack/rally/run_rally-cert.py65
-rw-r--r--testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml4
-rw-r--r--testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml4
-rwxr-xr-xtestcases/features/sfc/compute_presetup_CI.bash5
-rwxr-xr-xtestcases/features/sfc/prepare_odl_sfc.py96
8 files changed, 166 insertions, 37 deletions
diff --git a/.gitignore b/.gitignore
index 155eeb1de..80f567613 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
.*.sw?
.project
.pydevproject
+rally_conf.json
/docs_build/
/docs_output/
/releng/
diff --git a/ci/exec_test.sh b/ci/exec_test.sh
index ad1e56372..6fdc42666 100755
--- a/ci/exec_test.sh
+++ b/ci/exec_test.sh
@@ -161,7 +161,7 @@ function run_test(){
"odl-sfc")
ODL_SFC_DIR=${FUNCTEST_REPO_DIR}/testcases/features/sfc
# pass FUNCTEST_REPO_DIR inside prepare_odl_sfc.bash
- FUNCTEST_REPO_DIR=${FUNCTEST_REPO_DIR} bash ${ODL_SFC_DIR}/prepare_odl_sfc.bash || exit $?
+ FUNCTEST_REPO_DIR=${FUNCTEST_REPO_DIR} python ${ODL_SFC_DIR}/prepare_odl_sfc.py || exit $?
source ${ODL_SFC_DIR}/tackerc
python ${ODL_SFC_DIR}/sfc_colorado1.py $report
;;
diff --git a/testcases/OpenStack/rally/blacklist.txt b/testcases/OpenStack/rally/blacklist.txt
index 02d85f4d8..3a17fa616 100644
--- a/testcases/OpenStack/rally/blacklist.txt
+++ b/testcases/OpenStack/rally/blacklist.txt
@@ -1,8 +1,18 @@
--
- scenarios:
- - os-nosdn-lxd-ha
- - os-nosdn-lxd-noha
- installers:
- - joid
- tests:
- - NovaServers.boot_server_from_volume_and_delete
+scenario:
+ -
+ scenarios:
+ - os-nosdn-lxd-ha
+ - os-nosdn-lxd-noha
+ installers:
+ - joid
+ tests:
+ - NovaServers.boot_server_from_volume_and_delete
+
+functionality:
+ -
+ functions:
+ - no_live_migration
+ tests:
+ - NovaServers.boot_and_live_migrate_server
+ - NovaServers.boot_server_attach_created_volume_and_live_migrate
+ - NovaServers.boot_server_from_volume_and_live_migrate
diff --git a/testcases/OpenStack/rally/run_rally-cert.py b/testcases/OpenStack/rally/run_rally-cert.py
index d35639cc8..90084a127 100755
--- a/testcases/OpenStack/rally/run_rally-cert.py
+++ b/testcases/OpenStack/rally/run_rally-cert.py
@@ -187,7 +187,6 @@ def build_task_args(test_file_name):
net_id = network_dict['net_id']
task_args['netid'] = str(net_id)
- task_args['live_migration'] = live_migration_supported()
auth_url = os.getenv('OS_AUTH_URL')
if auth_url is not None:
@@ -273,30 +272,60 @@ def get_cmd_output(proc):
return result
-def apply_blacklist(case_file_name, result_file_name):
- logger.debug("Applying blacklist...")
- cases_file = open(case_file_name, 'r')
- result_file = open(result_file_name, 'w')
+def excl_scenario():
black_tests = []
try:
+ with open(BLACKLIST_FILE, 'r') as black_list_file:
+ black_list_yaml = yaml.safe_load(black_list_file)
+
installer_type = os.getenv('INSTALLER_TYPE')
deploy_scenario = os.getenv('DEPLOY_SCENARIO')
if (bool(installer_type) * bool(deploy_scenario)):
- # if INSTALLER_TYPE and DEPLOY_SCENARIO are set we read the file
- with open(BLACKLIST_FILE, 'r') as black_list_file:
- black_list_yaml = yaml.safe_load(black_list_file)
-
- for item in black_list_yaml:
- scenarios = item['scenarios']
- installers = item['installers']
- if (deploy_scenario in scenarios and
- installer_type in installers):
- tests = item['tests']
- black_tests.extend(tests)
+ if 'scenario' in black_list_yaml.keys():
+ for item in black_list_yaml['scenario']:
+ scenarios = item['scenarios']
+ installers = item['installers']
+ if (deploy_scenario in scenarios and
+ installer_type in installers):
+ tests = item['tests']
+ black_tests.extend(tests)
+ except:
+ logger.debug("Scenario exclusion not applied.")
+
+ return black_tests
+
+
+def excl_func():
+ black_tests = []
+ func_list = []
+
+ try:
+ with open(BLACKLIST_FILE, 'r') as black_list_file:
+ black_list_yaml = yaml.safe_load(black_list_file)
+
+ if not live_migration_supported():
+ func_list.append("no_live_migration")
+
+ if 'functionality' in black_list_yaml.keys():
+ for item in black_list_yaml['functionality']:
+ functions = item['functions']
+ for func in func_list:
+ if func in functions:
+ tests = item['tests']
+ black_tests.extend(tests)
except:
- black_tests = []
- logger.debug("Blacklisting not applied.")
+ logger.debug("Functionality exclusion not applied.")
+
+ return black_tests
+
+
+def apply_blacklist(case_file_name, result_file_name):
+ logger.debug("Applying blacklist...")
+ cases_file = open(case_file_name, 'r')
+ result_file = open(result_file_name, 'w')
+
+ black_tests = list(set(excl_func() + excl_scenario()))
include = True
for cases_line in cases_file:
diff --git a/testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml b/testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml
index 077850f53..d7622093d 100644
--- a/testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml
+++ b/testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml
@@ -227,8 +227,6 @@
sla:
{{ no_failures_sla() }}
-{% if live_migration %}
-
NovaServers.boot_and_live_migrate_server:
- args:
{{ vm_params(image_name, flavor_name) }}
@@ -273,8 +271,6 @@
sla:
{{ no_failures_sla() }}
-{% endif %}
-
NovaKeypair.boot_and_delete_server_with_keypair:
-
args:
diff --git a/testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml b/testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml
index 947819dc7..e2795cf71 100644
--- a/testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml
+++ b/testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml
@@ -1,5 +1,3 @@
-{% if live_migration %}
-
NovaServers.boot_and_live_migrate_server:
- args:
{{ vm_params(image_name, flavor_name) }}
@@ -44,8 +42,6 @@
sla:
{{ no_failures_sla() }}
-{% endif %}
-
NovaKeypair.boot_and_delete_server_with_keypair:
-
args:
diff --git a/testcases/features/sfc/compute_presetup_CI.bash b/testcases/features/sfc/compute_presetup_CI.bash
index 23b2e4c92..36148aa15 100755
--- a/testcases/features/sfc/compute_presetup_CI.bash
+++ b/testcases/features/sfc/compute_presetup_CI.bash
@@ -9,9 +9,10 @@ BASEDIR=`dirname $0`
INSTALLER_IP=${INSTALLER_IP:-10.20.0.2}
pushd $BASEDIR
-ip=`sshpass -p r00tme ssh $ssh_options root@${INSTALLER_IP} 'fuel node'|grep compute|\
-awk '{print $10}' | head -1`
+#ip=`sshpass -p r00tme ssh $ssh_options root@${INSTALLER_IP} 'fuel node'|grep compute|\
+#awk '{print $10}' | head -1`
+ip=$1
echo $ip
#sshpass -p r00tme scp $ssh_options correct_classifier.bash ${INSTALLER_IP}:/root
#sshpass -p r00tme ssh $ssh_options root@${INSTALLER_IP} 'scp correct_classifier.bash '"$ip"':/root'
diff --git a/testcases/features/sfc/prepare_odl_sfc.py b/testcases/features/sfc/prepare_odl_sfc.py
new file mode 100755
index 000000000..78f4d7646
--- /dev/null
+++ b/testcases/features/sfc/prepare_odl_sfc.py
@@ -0,0 +1,96 @@
+#
+# Author: George Paraskevopoulos (geopar@intracom-telecom.com)
+# Manuel Buil (manuel.buil@ericsson.com)
+# Prepares the controller and the compute nodes for the odl-sfc testcase
+#
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+import os
+import sys
+import subprocess
+import paramiko
+import functest.utils.functest_logger as ft_logger
+
+logger = ft_logger.Logger("ODL_SFC").getLogger()
+
+try:
+ FUNCTEST_REPO_DIR = os.environ['FUNCTEST_REPO_DIR']
+except:
+ logger.debug("FUNCTEST_REPO_DIR does not exist!!!!!")
+
+FUNCTEST_REPO_DIR = "/home/opnfv/repos/functest"
+
+try:
+ INSTALLER_IP = os.environ['INSTALLER_IP']
+
+except:
+ logger.debug("INSTALLER_IP does not exist. We create 10.20.0.2")
+ INSTALLER_IP = "10.20.0.2"
+
+os.environ['ODL_SFC_LOG'] = "/home/opnfv/functest/results/odl-sfc.log"
+os.environ['ODL_SFC_DIR'] = FUNCTEST_REPO_DIR + "/testcases/features/sfc"
+
+command = os.environ['ODL_SFC_DIR'] + ("/server_presetup_CI.bash | "
+ "tee -a ${ODL_SFC_LOG} "
+ "1>/dev/null 2>&1")
+
+output = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
+
+# This code is for debugging purposes
+# for line in iter(output.stdout.readline, ''):
+# i = line.rstrip()
+# print(i)
+
+# Make sure the process is finished before checking the returncode
+if not output.poll():
+ output.wait()
+
+# Get return value
+if output.returncode:
+ print("The presetup of the server did not work")
+ sys.exit(output.returncode)
+
+logger.info("The presetup of the server worked ")
+
+ssh_options = "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+ssh = paramiko.SSHClient()
+ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+
+try:
+ ssh.connect(INSTALLER_IP, username="root",
+ password="r00tme", timeout=2)
+ command = "fuel node | grep compute | awk '{print $10}'"
+ logger.info("Executing ssh to collect the compute IPs")
+ (stdin, stdout, stderr) = ssh.exec_command(command)
+except:
+ logger.debug("Something went wrong in the ssh to collect the computes IP")
+
+output = stdout.readlines()
+for ip in output:
+ command = os.environ['ODL_SFC_DIR'] + ("/compute_presetup_CI.bash "
+ "" + ip.rstrip() + "| tee -a "
+ "${ODL_SFC_LOG} 1>/dev/null 2>&1")
+
+ output = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
+
+# This code is for debugging purposes
+# for line in iter(output.stdout.readline, ''):
+# print(line)
+# sys.stdout.flush()
+
+ output.stdout.close()
+
+ if not (output.poll()):
+ output.wait()
+
+ # Get return value
+ if output.returncode:
+ print("The compute config did not work on compute %s" % ip)
+ sys.exit(output.returncode)
+
+sys.exit(0)