diff options
Diffstat (limited to 'testcases/features/sfc')
-rwxr-xr-x | testcases/features/sfc/compute_presetup_CI.bash | 9 | ||||
-rwxr-xr-x | testcases/features/sfc/delete.sh | 9 | ||||
-rwxr-xr-x | testcases/features/sfc/prepare_odl_sfc.py | 96 | ||||
-rwxr-xr-x | testcases/features/sfc/sfc.py | 37 | ||||
-rwxr-xr-x | testcases/features/sfc/sfc_colorado1.py | 46 |
5 files changed, 120 insertions, 77 deletions
diff --git a/testcases/features/sfc/compute_presetup_CI.bash b/testcases/features/sfc/compute_presetup_CI.bash index c776c2f8c..36148aa15 100755 --- a/testcases/features/sfc/compute_presetup_CI.bash +++ b/testcases/features/sfc/compute_presetup_CI.bash @@ -9,12 +9,13 @@ 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' +#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' sshpass -p r00tme ssh $ssh_options root@${INSTALLER_IP} 'ssh root@'"$ip"' ifconfig br-int up' output=$(sshpass -p r00tme ssh $ssh_options root@${INSTALLER_IP} 'ssh root@'"$ip"' ip route | \ diff --git a/testcases/features/sfc/delete.sh b/testcases/features/sfc/delete.sh index b8d1fde1c..c04ae6375 100755 --- a/testcases/features/sfc/delete.sh +++ b/testcases/features/sfc/delete.sh @@ -8,11 +8,8 @@ tacker vnf-delete testVNF1 tacker vnf-delete testVNF2 tacker vnfd-delete test-vnfd1 tacker vnfd-delete test-vnfd2 -#openstack stack delete sfc --y -heat stack-delete sfc --y -#openstack stack delete sfc_test1 --y -heat stack-delete sfc_test1 --y -#openstack stack delete sfc_test2 --y -heat stack-delete sfc_test2 --y +openstack stack delete sfc --y +openstack stack delete sfc_test1 --y +openstack stack delete sfc_test2 --y nova delete client nova delete server 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) diff --git a/testcases/features/sfc/sfc.py b/testcases/features/sfc/sfc.py index 478b59782..72b4e00cb 100755 --- a/testcases/features/sfc/sfc.py +++ b/testcases/features/sfc/sfc.py @@ -82,15 +82,6 @@ def main(): stderr=subprocess.PIPE) ip_server = process.stdout.readline().rstrip() - contr_cmd2 = ("sshpass -p r00tme ssh " + ssh_options + " root@10.20.0.2" - " 'fuel node'|grep compute|awk '{print $10}'") - logger.info("Executing script to get ip_compute: '%s'" % contr_cmd2) - process = subprocess.Popen(contr_cmd2, - shell=True, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - ip_compute = process.stdout.readline().rstrip() - 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" @@ -183,7 +174,8 @@ def main(): instance = os_utils.create_instance_and_wait_for_active(FLAVOR, image_id, network_id, - INSTANCE_NAME) + INSTANCE_NAME, + av_zone='nova') if instance is None: logger.error("Error while booting instance.") @@ -219,11 +211,12 @@ def main(): logger.info("Creating instance '%s'..." % INSTANCE_NAME) logger.debug( "Configuration:\n name=%s \n flavor=%s \n image=%s \n " - "network=%s \n" % (INSTANCE_NAME, FLAVOR, image_id, network_id)) + "network=%s \n" % (INSTANCE_NAME_2, FLAVOR, image_id, network_id)) instance_2 = os_utils.create_instance_and_wait_for_active(FLAVOR, image_id, network_id, - INSTANCE_NAME_2) + INSTANCE_NAME_2, + av_zone='nova') if instance_2 is None: logger.error("Error while booting instance.") @@ -372,15 +365,6 @@ def main(): except Exception: logger.exception("vxlan_tool not started in SF2") - # SSH to modify the classification flows in compute - - contr_cmd3 = ("sshpass -p r00tme ssh " + ssh_options + " root@10.20.0.2" - " 'ssh " + ip_compute + " 'bash correct_classifier.bash''") - logger.info("Executing script to modify the classi: '%s'" % contr_cmd3) - process = subprocess.Popen(contr_cmd3, - shell=True, - stdout=subprocess.PIPE) - i = 0 # SSH TO EXECUTE cmd_client @@ -438,16 +422,7 @@ def main(): subprocess.call(tacker_classi, shell=True) logger.info("Wait for ODL to update the classification rules in OVS") - time.sleep(10) - - # SSH to modify the classification flows in compute - - contr_cmd4 = ("sshpass -p r00tme ssh " + ssh_options + " root@10.20.0.2" - " 'ssh " + ip_compute + " 'bash correct_classifier.bash''") - logger.info("Executing script to modify the classi: '%s'" % contr_cmd4) - process = subprocess.Popen(contr_cmd4, - shell=True, - stdout=subprocess.PIPE) + time.sleep(100) # SSH TO EXECUTE cmd_client diff --git a/testcases/features/sfc/sfc_colorado1.py b/testcases/features/sfc/sfc_colorado1.py index 5580d9ed5..ef3a489cf 100755 --- a/testcases/features/sfc/sfc_colorado1.py +++ b/testcases/features/sfc/sfc_colorado1.py @@ -81,15 +81,6 @@ def main(): stderr=subprocess.PIPE) ip_server = process.stdout.readline().rstrip() - contr_cmd2 = ("sshpass -p r00tme ssh " + ssh_options + " root@10.20.0.2" - " 'fuel node'|grep compute|awk '{print $10}'") - logger.info("Executing script to get ip_compute: '%s'" % contr_cmd2) - process = subprocess.Popen(contr_cmd2, - shell=True, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - ip_compute = process.stdout.readline().rstrip() - 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" @@ -181,10 +172,12 @@ def main(): logger.debug( "Configuration:\n name=%s \n flavor=%s \n image=%s \n " "network=%s \n" % (INSTANCE_NAME, FLAVOR, image_id, network_id)) - instance = os_utils.create_instance_and_wait_for_active(FLAVOR, - image_id, - network_id, - INSTANCE_NAME) + instance = os_utils.create_instance_and_wait_for_active( + FLAVOR, + image_id, + network_id, + INSTANCE_NAME, + av_zone='nova') if instance is None: logger.error("Error while booting instance.") @@ -225,12 +218,13 @@ def main(): logger.info("Creating instance '%s'..." % INSTANCE_NAME) logger.debug( "Configuration:\n name=%s \n flavor=%s \n image=%s \n " - "network=%s \n" % (INSTANCE_NAME, FLAVOR, image_id, network_id)) + "network=%s \n" % (INSTANCE_NAME_2, FLAVOR, image_id, network_id)) instance_2 = os_utils.create_instance_and_wait_for_active( FLAVOR, image_id, network_id, - INSTANCE_NAME_2) + INSTANCE_NAME_2, + av_zone='nova') if instance_2 is None: logger.error("Error while booting instance.") @@ -393,16 +387,6 @@ def main(): except Exception: logger.exception("vxlan_tool not started in SF2") - # SSH to modify the classification flows in compute - - contr_cmd3 = ("sshpass -p r00tme ssh " + ssh_options + " " - "root@10.20.0.2 'ssh " + ip_compute + " " - "'bash correct_classifier.bash''") - logger.info("Executing script to modify the classi: '%s'" % contr_cmd3) - process = subprocess.Popen(contr_cmd3, - shell=True, - stdout=subprocess.PIPE) - i = 0 # SSH TO EXECUTE cmd_client @@ -460,17 +444,7 @@ def main(): subprocess.call(tacker_classi, shell=True) logger.info("Wait for ODL to update the classification rules in OVS") - time.sleep(10) - - # SSH to modify the classification flows in compute - - contr_cmd4 = ("sshpass -p r00tme ssh " + ssh_options + " " - "root@10.20.0.2 'ssh " + ip_compute + " " - "'bash correct_classifier.bash''") - logger.info("Executing script to modify the classi: '%s'" % contr_cmd4) - process = subprocess.Popen(contr_cmd4, - shell=True, - stdout=subprocess.PIPE) + time.sleep(100) # SSH TO EXECUTE cmd_client |