summaryrefslogtreecommitdiffstats
path: root/testcases/features/sfc/sfc.py
diff options
context:
space:
mode:
Diffstat (limited to 'testcases/features/sfc/sfc.py')
-rwxr-xr-xtestcases/features/sfc/sfc.py75
1 files changed, 66 insertions, 9 deletions
diff --git a/testcases/features/sfc/sfc.py b/testcases/features/sfc/sfc.py
index 122ed5d9d..96ea3ab39 100755
--- a/testcases/features/sfc/sfc.py
+++ b/testcases/features/sfc/sfc.py
@@ -2,13 +2,14 @@ import os
import subprocess
import sys
import time
-
import argparse
import paramiko
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 SSHUtils as ssh_utils
+import ovs_utils
parser = argparse.ArgumentParser()
@@ -21,6 +22,7 @@ args = parser.parse_args()
""" logging configuration """
logger = ft_logger.Logger("ODL_SFC").getLogger()
+FUNCTEST_RESULTS_DIR = '/home/opnfv/functest/results/odl-sfc'
FUNCTEST_REPO = ft_utils.FUNCTEST_REPO
HOME = os.environ['HOME'] + "/"
@@ -54,6 +56,12 @@ TACKER_CHANGECLASSI = "sfc_change_classi.bash"
ssh_options = '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
+PROXY = {
+ 'ip': '10.20.0.2',
+ 'username': 'root',
+ 'password': 'r00tme'
+}
+
def check_ssh(ip):
cmd = "sshpass -p opnfv ssh " + ssh_options + " -q " + ip + " exit"
@@ -82,6 +90,15 @@ def main():
stderr=subprocess.PIPE)
ip_server = process.stdout.readline().rstrip()
+ comp_cmd = ("sshpass -p r00tme ssh " + ssh_options + " root@10.20.0.2"
+ " 'fuel node'|grep compute|awk '{print $10}'")
+ logger.info("Executing script to get compute IPs: '%s'" % comp_cmd)
+ process = subprocess.Popen(comp_cmd,
+ shell=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ ip_computes = [ip.strip() for ip in process.stdout.readlines()]
+
iptable_cmd1 = ("sshpass -p r00tme ssh " + ssh_options + " root@10.20.0.2"
" ssh " + ip_server + " iptables -P INPUT ACCEPT ")
iptable_cmd2 = ("sshpass -p r00tme ssh " + ssh_options + " root@10.20.0.2"
@@ -106,6 +123,20 @@ def main():
neutron_client = os_utils.get_neutron_client()
glance_client = os_utils.get_glance_client()
+ ovs_logger = ovs_utils.OVSLogger(
+ os.path.join(os.getcwd(), 'ovs-logs'),
+ FUNCTEST_RESULTS_DIR)
+
+ controller_clients = [ssh_utils.get_ssh_client(ip_server,
+ 'root',
+ proxy=PROXY)]
+ compute_clients = []
+ for c_ip in ip_computes:
+ c_client = ssh_utils.get_ssh_client(c_ip,
+ 'root',
+ proxy=PROXY)
+ compute_clients.append(c_client)
+
# Download the image
if not os.path.isfile(IMAGE_PATH):
@@ -382,8 +413,14 @@ def main():
i = i + 1
json_results.update({"Test 1: SSH Blocked": "Passed"})
else:
- logger.error('\033[91m' + "TEST 1 [FAILED] "
- "==> SSH NOT BLOCKED" + '\033[0m')
+ timestamp = time.strftime("%Y%m%d-%H%M%S")
+ error = ('\033[91m' + "TEST 1 [FAILED] "
+ "==> SSH NOT BLOCKED" + '\033[0m')
+ logger.error(error)
+ ovs_logger.dump_ovs_logs(controller_clients,
+ compute_clients,
+ related_error=error,
+ timestamp=timestamp)
status = "FAIL"
json_results.update({"Test 1: SSH Blocked": "Failed"})
failures += 1
@@ -405,8 +442,14 @@ def main():
i = i + 1
json_results.update({"Test 2: HTTP works": "Passed"})
else:
- logger.error('\033[91m' + "TEST 2 [FAILED] "
- "==> HTTP BLOCKED" + '\033[0m')
+ timestamp = time.strftime("%Y%m%d-%H%M%S")
+ error = ('\033[91m' + "TEST 2 [FAILED] "
+ "==> HTTP BLOCKED" + '\033[0m')
+ logger.error(error)
+ ovs_logger.dump_ovs_logs(controller_clients,
+ compute_clients,
+ related_error=error,
+ timestamp=timestamp)
status = "FAIL"
json_results.update({"Test 2: HTTP works": "Failed"})
failures += 1
@@ -438,8 +481,14 @@ def main():
i = i + 1
json_results.update({"Test 3: HTTP Blocked": "Passed"})
else:
- logger.error('\033[91m' + "TEST 3 [FAILED] "
- "==> HTTP NOT BLOCKED" + '\033[0m')
+ timestamp = time.strftime("%Y%m%d-%H%M%S")
+ error = ('\033[91m' + "TEST 3 [FAILED] "
+ "==> HTTP NOT BLOCKED" + '\033[0m')
+ logger.error(error)
+ ovs_logger.dump_ovs_logs(controller_clients,
+ compute_clients,
+ related_error=error,
+ timestamp=timestamp)
status = "FAIL"
json_results.update({"Test 3: HTTP Blocked": "Failed"})
failures += 1
@@ -461,8 +510,14 @@ def main():
i = i + 1
json_results.update({"Test 4: SSH works": "Passed"})
else:
- logger.error('\033[91m' + "TEST 4 [FAILED] "
- "==> SSH BLOCKED" + '\033[0m')
+ timestamp = time.strftime("%Y%m%d-%H%M%S")
+ error = ('\033[91m' + "TEST 4 [FAILED] "
+ "==> SSH BLOCKED" + '\033[0m')
+ logger.error(error)
+ ovs_logger.dump_ovs_logs(controller_clients,
+ compute_clients,
+ related_error=error,
+ timestamp=timestamp)
status = "FAIL"
json_results.update({"Test 4: SSH works": "Failed"})
failures += 1
@@ -471,6 +526,8 @@ def main():
time.sleep(6)
# timeout -= 1
+ ovs_logger.create_artifact_archive()
+
if i == 4:
for x in range(0, 5):
logger.info('\033[92m' + "SFC TEST WORKED"