diff options
Diffstat (limited to 'testcases/features/sfc')
-rwxr-xr-x | testcases/features/sfc/sfc.py | 116 |
1 files changed, 61 insertions, 55 deletions
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" |