summaryrefslogtreecommitdiffstats
path: root/testcases/features
diff options
context:
space:
mode:
Diffstat (limited to 'testcases/features')
-rwxr-xr-xtestcases/features/copper.py18
-rwxr-xr-xtestcases/features/doctor.py29
-rwxr-xr-xtestcases/features/domino.py12
-rwxr-xr-xtestcases/features/promise.py9
-rwxr-xr-xtestcases/features/sfc/sfc.py116
5 files changed, 101 insertions, 83 deletions
diff --git a/testcases/features/copper.py b/testcases/features/copper.py
index c79754a1b..9be909427 100755
--- a/testcases/features/copper.py
+++ b/testcases/features/copper.py
@@ -15,12 +15,12 @@
# limitations under the License.
#
import argparse
-import os
import sys
import time
+
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
-import yaml
+
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--report",
@@ -28,11 +28,10 @@ parser.add_argument("-r", "--report",
action="store_true")
args = parser.parse_args()
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
-
-dirs = functest_yaml.get('general').get('directories')
-COPPER_REPO = dirs.get('dir_repo_copper')
+COPPER_REPO = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_repo_copper')
+RESULTS_DIR = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_results')
logger = ft_logger.Logger("copper").getLogger()
@@ -42,7 +41,10 @@ def main():
start_time = time.time()
- ret_val = functest_utils.execute_command(cmd, logger, exit_on_error=False)
+ log_file = RESULTS_DIR + "/copper.log"
+ ret_val = functest_utils.execute_command(cmd,
+ exit_on_error=False,
+ output_file=log_file)
stop_time = time.time()
duration = round(stop_time - start_time, 1)
diff --git a/testcases/features/doctor.py b/testcases/features/doctor.py
index 02edd25ca..68c80a9e4 100755
--- a/testcases/features/doctor.py
+++ b/testcases/features/doctor.py
@@ -16,42 +16,53 @@
import argparse
import os
import time
-import yaml
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
+
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--report",
help="Create json result file",
action="store_true")
args = parser.parse_args()
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
+functest_yaml = functest_utils.get_functest_yaml()
-dirs = functest_yaml.get('general').get('directories')
-DOCTOR_REPO = dirs.get('dir_repo_doctor')
+DOCTOR_REPO = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_repo_doctor')
+RESULTS_DIR = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_results')
logger = ft_logger.Logger("doctor").getLogger()
def main():
exit_code = -1
+
+ # if the image name is explicitly set for the doctor suite, set it as
+ # enviroment variable
+ if 'doctor' in functest_yaml and 'image_name' in functest_yaml['doctor']:
+ os.environ["IMAGE_NAME"] = functest_yaml['doctor']['image_name']
+
cmd = 'cd %s/tests && ./run.sh' % DOCTOR_REPO
+ log_file = RESULTS_DIR + "/doctor.log"
+
start_time = time.time()
- ret = functest_utils.execute_command(cmd, logger, info=True,
- exit_on_error=False)
+ ret = functest_utils.execute_command(cmd,
+ info=True,
+ exit_on_error=False,
+ output_file=log_file)
stop_time = time.time()
duration = round(stop_time - start_time, 1)
if ret == 0:
- logger.info("doctor OK")
+ logger.info("Doctor test case OK")
test_status = 'OK'
exit_code = 0
else:
- logger.info("doctor FAILED")
+ logger.info("Doctor test case FAILED")
test_status = 'NOK'
details = {
diff --git a/testcases/features/domino.py b/testcases/features/domino.py
index 291a3b49b..c717c060e 100755
--- a/testcases/features/domino.py
+++ b/testcases/features/domino.py
@@ -15,9 +15,7 @@
#
import argparse
-import os
import time
-import yaml
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
@@ -29,20 +27,24 @@ parser.add_argument("-r", "--report",
action="store_true")
args = parser.parse_args()
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
+functest_yaml = functest_utils.get_functest_yaml()
dirs = functest_yaml.get('general').get('directories')
DOMINO_REPO = dirs.get('dir_repo_domino')
+RESULTS_DIR = functest_utils.get_parameter_from_yaml(
+ 'general.directories.dir_results')
logger = ft_logger.Logger("domino").getLogger()
def main():
cmd = 'cd %s && ./tests/run_multinode.sh' % DOMINO_REPO
+ log_file = RESULTS_DIR + "/domino.log"
start_time = time.time()
- ret = functest_utils.execute_command(cmd, logger, exit_on_error=False)
+ ret = functest_utils.execute_command(cmd,
+ exit_on_error=False,
+ output_file=log_file)
stop_time = time.time()
duration = round(stop_time - start_time, 1)
diff --git a/testcases/features/promise.py b/testcases/features/promise.py
index 3728adfe5..3f58dcee8 100755
--- a/testcases/features/promise.py
+++ b/testcases/features/promise.py
@@ -9,20 +9,18 @@
#
# Maintainer : jose.lausuch@ericsson.com
#
-import argparse
import json
import os
import subprocess
import time
+import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as functest_utils
import functest.utils.openstack_utils as openstack_utils
import keystoneclient.v2_0.client as ksclient
-from neutronclient.v2_0 import client as ntclient
import novaclient.client as nvclient
-import yaml
-
+from neutronclient.v2_0 import client as ntclient
parser = argparse.ArgumentParser()
@@ -32,8 +30,7 @@ parser.add_argument("-r", "--report",
action="store_true")
args = parser.parse_args()
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
- functest_yaml = yaml.safe_load(f)
+functest_yaml = functest_utils.get_functest_yaml()
dirs = functest_yaml.get('general').get('directories')
PROMISE_REPO = dirs.get('dir_repo_promise')
diff --git a/testcases/features/sfc/sfc.py b/testcases/features/sfc/sfc.py
index 3cf1052b6..27d80bc00 100755
--- a/testcases/features/sfc/sfc.py
+++ b/testcases/features/sfc/sfc.py
@@ -1,12 +1,14 @@
-import argparse
import os
import subprocess
import sys
import time
+
+import argparse
import functest.utils.functest_logger as ft_logger
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_utils as os_utils
import paramiko
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
parser = argparse.ArgumentParser()
@@ -19,7 +21,6 @@ args = parser.parse_args()
""" logging configuration """
logger = ft_logger.Logger("ODL_SFC").getLogger()
-REPO_PATH = os.environ['repos_dir'] + '/functest/'
HOME = os.environ['HOME'] + "/"
VM_BOOT_TIMEOUT = 180
@@ -203,8 +204,8 @@ def main():
# CREATION OF THE 2 SF ####
- tacker_script = "/home/opnfv/repos/functest/testcases/features/sfc/" + \
- TACKER_SCRIPT
+ tacker_script = "%s/testcases/features/sfc/%s" % \
+ (FUNCTEST_REPO, TACKER_SCRIPT)
logger.info("Executing tacker script: '%s'" % tacker_script)
subprocess.call(tacker_script, shell=True)
@@ -260,15 +261,16 @@ def main():
try:
while 1:
- (stdin, stdout, stderr) = ssh.exec_command("ps lax | grep python")
- if "vxlan_tool.py" in stdout.readlines()[0]:
+ (stdin, stdout, stderr) = ssh.exec_command(
+ "ps aux | grep \"vxlan_tool.py\" | grep -v grep")
+ if len(stdout.readlines()) > 0:
logger.debug("HTTP firewall started")
break
else:
logger.debug("HTTP firewall not started")
time.sleep(3)
- except:
- logger.error("vxlan_tool not started in SF1")
+ except Exception:
+ logger.exception("vxlan_tool not started in SF1")
# SSH TO START THE VXLAN_TOOL ON SF2
try:
@@ -284,15 +286,16 @@ def main():
try:
while 1:
- (stdin, stdout, stderr) = ssh.exec_command("ps lax | grep python")
- if "vxlan_tool.py" in stdout.readlines()[0]:
+ (stdin, stdout, stderr) = ssh.exec_command(
+ "ps aux | grep \"vxlan_tool.py\" | grep -v grep")
+ if len(stdout.readlines()) > 0:
logger.debug("SSH firewall started")
break
else:
logger.debug("SSH firewall not started")
time.sleep(3)
- except:
- logger.error("vxlan_tool not started in SF2")
+ except Exception:
+ logger.exception("vxlan_tool not started in SF2")
# SSH to modify the classification flows in compute
@@ -303,55 +306,59 @@ def main():
shell=True,
stdout=subprocess.PIPE)
- # SSH TO EXECUTE cmd_client
+ logger.info("Waiting for 60 seconds before TEST")
+ for j in range(0, 6):
+ logger.info("Test starting in {0} seconds".format(str((6 - j)*10)))
+ time.sleep(10)
+
+ i = 0
+ # SSH TO EXECUTE cmd_client
logger.info("TEST STARTED")
try:
ssh.connect(floatip_client, username="root",
password="opnfv", timeout=2)
command = "nc -w 5 -zv " + instance_ip_2 + " 22 2>&1"
(stdin, stdout, stderr) = ssh.exec_command(command)
+
+ # WRITE THE CORRECT WAY TO DO LOGGING
+ if "timed out" in stdout.readlines()[0]:
+ logger.info('\033[92m' + "TEST 1 [PASSED] "
+ "==> SSH BLOCKED" + '\033[0m')
+ i = i + 1
+ else:
+ logger.error('\033[91m' + "TEST 1 [FAILED] "
+ "==> SSH NOT BLOCKED" + '\033[0m')
+ return
except:
logger.debug("Waiting for %s..." % floatip_client)
time.sleep(6)
# timeout -= 1
- # WRITE THE CORRECT WAY TO DO LOGGING
- i = 0
- if "timed out" in stdout.readlines()[0]:
- logger.info('\033[92m' + "TEST 1 [PASSED] "
- "==> SSH BLOCKED" + '\033[0m')
- i = i + 1
- else:
- logger.error('\033[91m' + "TEST 1 [FAILED] "
- "==> SSH NOT BLOCKED" + '\033[0m')
- return
-
# SSH TO EXECUTE cmd_client
-
try:
ssh.connect(floatip_client, username="root",
password="opnfv", timeout=2)
command = "nc -w 5 -zv " + instance_ip_2 + " 80 2>&1"
(stdin, stdout, stderr) = ssh.exec_command(command)
+
+ if "succeeded" in stdout.readlines()[0]:
+ logger.info('\033[92m' + "TEST 2 [PASSED] "
+ "==> HTTP WORKS" + '\033[0m')
+ i = i + 1
+ else:
+ logger.error('\033[91m' + "TEST 2 [FAILED] "
+ "==> HTTP BLOCKED" + '\033[0m')
+ return
except:
logger.debug("Waiting for %s..." % floatip_client)
time.sleep(6)
# timeout -= 1
- if "succeeded" in stdout.readlines()[0]:
- logger.info('\033[92m' + "TEST 2 [PASSED] "
- "==> HTTP WORKS" + '\033[0m')
- i = i + 1
- else:
- logger.error('\033[91m' + "TEST 2 [FAILED] "
- "==> HTTP BLOCKED" + '\033[0m')
- return
-
# CHANGE OF CLASSIFICATION #
logger.info("Changing the classification")
- tacker_classi = "/home/opnfv/repos/functest/testcases/features/sfc/" + \
- TACKER_CHANGECLASSI
+ tacker_classi = "%s/testcases/features/sfc/%s" % \
+ (FUNCTEST_REPO, TACKER_CHANGECLASSI)
subprocess.call(tacker_classi, shell=True)
logger.info("Wait for ODL to update the classification rules in OVS")
@@ -373,41 +380,40 @@ def main():
password="opnfv", timeout=2)
command = "nc -w 5 -zv " + instance_ip_2 + " 80 2>&1"
(stdin, stdout, stderr) = ssh.exec_command(command)
+
+ if "timed out" in stdout.readlines()[0]:
+ logger.info('\033[92m' + "TEST 3 [WORKS] "
+ "==> HTTP BLOCKED" + '\033[0m')
+ i = i + 1
+ else:
+ logger.error('\033[91m' + "TEST 3 [FAILED] "
+ "==> HTTP NOT BLOCKED" + '\033[0m')
+ return
except:
logger.debug("Waiting for %s..." % floatip_client)
time.sleep(6)
# timeout -= 1
- if "timed out" in stdout.readlines()[0]:
- logger.info('\033[92m' + "TEST 3 [WORKS] "
- "==> HTTP BLOCKED" + '\033[0m')
- i = i + 1
- else:
- logger.error('\033[91m' + "TEST 3 [FAILED] "
- "==> HTTP NOT BLOCKED" + '\033[0m')
- return
-
# SSH TO EXECUTE cmd_client
-
try:
ssh.connect(floatip_client, username="root",
password="opnfv", timeout=2)
command = "nc -w 5 -zv " + instance_ip_2 + " 22 2>&1"
(stdin, stdout, stderr) = ssh.exec_command(command)
+
+ if "succeeded" in stdout.readlines()[0]:
+ logger.info('\033[92m' + "TEST 4 [WORKS] "
+ "==> SSH WORKS" + '\033[0m')
+ i = i + 1
+ else:
+ logger.error('\033[91m' + "TEST 4 [FAILED] "
+ "==> SSH BLOCKED" + '\033[0m')
+ return
except:
logger.debug("Waiting for %s..." % floatip_client)
time.sleep(6)
# timeout -= 1
- if "succeeded" in stdout.readlines()[0]:
- logger.info('\033[92m' + "TEST 4 [WORKS] "
- "==> SSH WORKS" + '\033[0m')
- i = i + 1
- else:
- logger.error('\033[91m' + "TEST 4 [FAILED] "
- "==> SSH BLOCKED" + '\033[0m')
- return
-
if i == 4:
for x in range(0, 5):
logger.info('\033[92m' + "SFC TEST WORKED"