aboutsummaryrefslogtreecommitdiffstats
path: root/testcases/features/sfc
diff options
context:
space:
mode:
Diffstat (limited to 'testcases/features/sfc')
-rwxr-xr-xtestcases/features/sfc/compute_presetup_CI.bash9
-rwxr-xr-xtestcases/features/sfc/delete.sh9
-rwxr-xr-xtestcases/features/sfc/prepare_odl_sfc.py96
-rwxr-xr-xtestcases/features/sfc/sfc.py37
-rwxr-xr-xtestcases/features/sfc/sfc_colorado1.py46
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