summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdocker/common.sh3
-rw-r--r--docker/requirements.pip3
-rwxr-xr-xtestcases/Controllers/ODL/CI/start_tests.sh11
-rw-r--r--testcases/config_functest.yaml4
-rw-r--r--testcases/vPing/CI/libraries/vPing.py3
-rw-r--r--testcases/vPing/CI/libraries/vPing2.py86
6 files changed, 73 insertions, 37 deletions
diff --git a/docker/common.sh b/docker/common.sh
index c1c783983..7d973ab26 100755
--- a/docker/common.sh
+++ b/docker/common.sh
@@ -51,6 +51,9 @@ RALLY_REPO_DIR=$(cat $config_file | grep -w dir_repo_rally | awk 'END {print $NF
RELENG_REPO_DIR=$(cat $config_file | grep -w dir_repo_releng | awk 'END {print $NF}')
VIMS_REPO_DIR=$(cat $config_file | grep -w dir_repo_vims_test | awk 'END {print $NF}')
BGPVPN_REPO_DIR=$(cat $config_file | grep -w dir_repo_bgpvpn | awk 'END {print $NF}')
+ONOS_REPO_DIR=$(cat $config_file | grep -w dir_repo_onos | awk 'END {print $NF}')
+PROMISE_REPO_DIR=$(cat $config_file | grep -w dir_repo_promise | awk 'END {print $NF}')
+OVNO_REPO_DIR=$(cat $config_file | grep -w dir_repo_ovno | awk 'END {print $NF}')
FUNCTEST_DIR=$(cat $config_file | grep -w dir_functest | awk 'END {print $NF}')
FUNCTEST_RESULTS_DIR=$(cat $config_file | grep -w dir_results | awk 'END {print $NF}')
diff --git a/docker/requirements.pip b/docker/requirements.pip
index 2389d60ac..e2b67d3bd 100644
--- a/docker/requirements.pip
+++ b/docker/requirements.pip
@@ -24,4 +24,5 @@ robotframework-sshlibrary==2.1.1
configObj==5.0.6
Flask==0.10.1
xmltodict==0.9.2
-
+scp==0.10.2
+paramiko==1.16.0 \ No newline at end of file
diff --git a/testcases/Controllers/ODL/CI/start_tests.sh b/testcases/Controllers/ODL/CI/start_tests.sh
index a2fd01299..4d600224e 100755
--- a/testcases/Controllers/ODL/CI/start_tests.sh
+++ b/testcases/Controllers/ODL/CI/start_tests.sh
@@ -53,14 +53,15 @@ PASS=${PASS:-'octopus'}
NEUTRON_IP=${NEUTRON_IP:-192.168.0.68}
set +x
-
+init_file=${REPO_DIR}/test/csit/suites/openstack/neutron/__init__.robot
# Change openstack password for admin tenant in neutron suite
-sed -i "s/\"password\": \".*\"/\"password\": \"${PASS}\"/" ${REPO_DIR}/test/csit/suites/openstack/neutron/__init__.robot
+sed -i "s/\"password\": \".*\"/\"password\": \"${PASS}\"/" $init_file
# Add Start Suite and Teardown Suite
-sed -i "/^Documentation.*/a Suite Teardown Stop Suite" ${REPO_DIR}/test/csit/suites/openstack/neutron/__init__.robot
-sed -i "/^Documentation.*/a Suite Setup Start Suite" ${REPO_DIR}/test/csit/suites/openstack/neutron/__init__.robot
-
+if [[ ! `grep 'Suite Teardown' ${init_file}` ]]; then
+ sed -i "/^Documentation.*/a Suite Teardown Stop Suite" $init_file
+ sed -i "/^Documentation.*/a Suite Setup Start Suite" $init_file
+fi
# add custom tests to suite, if there are more custom tests needed this will be reworked
echo -e "${green}Copy custom tests to suite.${nc}"
diff --git a/testcases/config_functest.yaml b/testcases/config_functest.yaml
index 729d972f9..ab59de2ed 100644
--- a/testcases/config_functest.yaml
+++ b/testcases/config_functest.yaml
@@ -65,7 +65,7 @@ general:
neutron_router_name: functest-router
vping:
- ping_timeout: 200
+ ping_timeout: 300
vm_flavor: m1.small #adapt to your environment
vm_name_1: opnfv-vping-1
vm_name_2: opnfv-vping-2
@@ -234,8 +234,10 @@ test-dependencies:
installer: '(apex)|(fuel)'
functest:
vims:
+ scenario: '(ocl)|(odl)|(nosdn)'
vping:
vping_userdata:
+ scenario: '(ocl)|(odl)|(nosdn)'
tempest:
rally:
odl:
diff --git a/testcases/vPing/CI/libraries/vPing.py b/testcases/vPing/CI/libraries/vPing.py
index dc2d2abec..0b09b6d4f 100644
--- a/testcases/vPing/CI/libraries/vPing.py
+++ b/testcases/vPing/CI/libraries/vPing.py
@@ -412,7 +412,6 @@ def main():
name=NAME_VM_2,
flavor=flavor,
image=image,
- # nics = [{"net-id": network_id, "v4-fixed-ip": IP_2}],
nics=[{"port-id": port_id2}],
userdata=u
)
@@ -459,7 +458,7 @@ def main():
" Waiting a bit...")
metadata_tries += 1
else:
- logger.debug("No ping detected yet...")
+ logger.debug("Pinging %s. Waiting for response..." % IP_2)
sec += 1
test_status = "NOK"
diff --git a/testcases/vPing/CI/libraries/vPing2.py b/testcases/vPing/CI/libraries/vPing2.py
index b103febf1..358223585 100644
--- a/testcases/vPing/CI/libraries/vPing2.py
+++ b/testcases/vPing/CI/libraries/vPing2.py
@@ -13,16 +13,17 @@
# 0.2: measure test duration and publish results under json format
#
#
-
-import os
-import time
import argparse
+import datetime
+import logging
+import os
+import paramiko
import pprint
+import subprocess
import sys
-import logging
+import time
import yaml
-import datetime
-import subprocess
+from scp import SCPClient
from novaclient import client as novaclient
from neutronclient.v2_0 import client as neutronclient
from keystoneclient.v2_0 import client as keystoneclient
@@ -414,7 +415,6 @@ def main():
name=NAME_VM_2,
flavor=flavor,
image=image,
- # nics = [{"net-id": network_id, "v4-fixed-ip": IP_2}],
nics=[{"port-id": port_id2}]
)
@@ -431,51 +431,81 @@ def main():
floatip = functest_utils.create_floating_ip(neutron_client)
if floatip == None:
logger.error("Cannot create floating IP.")
+ cleanup(nova_client, neutron_client, image_id, network_dic,
+ port_id1, port_id2)
return (EXIT_CODE)
logger.info("Floating IP created: '%s'" % floatip)
logger.info("Associating floating ip: '%s' to VM2 " % floatip)
if not functest_utils.add_floating_ip(nova_client, vm2.id, floatip):
logger.error("Cannot associate floating IP to VM.")
+ cleanup(nova_client, neutron_client, image_id, network_dic,
+ port_id1, port_id2)
return (EXIT_CODE)
- timeout = 30
+ logger.info("Trying to stablish SSH connection to %s..." % floatip)
+ username='cirros'
+ password='cubswin:)'
+ ssh = paramiko.SSHClient()
+ ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+
+ timeout = 50
while timeout > 0:
- response = os.system("ping -c 1 " + floatip)
- if response == 0:
- logger.debug("Floating IP '%s' is reachable!" % floatip)
- time.sleep(5) # the VM still needs to do some bootup actions
+ try:
+ ssh.connect(floatip, username=username, password=password)
+ logger.debug("Floating IP '%s' is ssh-able!" % floatip)
break
- timeout -= 1
- time.sleep(2)
+ except Exception, e:
+ #print e
+ logger.debug("Waiting for %s..." % floatip)
+ time.sleep(6)
+ timeout -= 1
- if timeout == 0:
+ if timeout == 0: # 300 sec timeout (5 min)
logger.error("Cannot ping the floating IP '%s'." % floatip)
+ cleanup(nova_client, neutron_client, image_id, network_dic,
+ port_id1, port_id2)
return (EXIT_CODE)
- logger.info("SCP ping script to VM2...")
- SSH_OPTS="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "+\
- "-o LogLevel=quiet"
+ scp = SCPClient(ssh.get_transport())
+
ping_script = REPO_PATH + "testcases/vPing/CI/libraries/ping.sh"
- cmd1 = "sshpass -p 'cubswin:)' scp " + SSH_OPTS + " " + \
- ping_script + " cirros@"+floatip+":~/ping.sh"
- cmd2 = "sshpass -p 'cubswin:)' ssh " + SSH_OPTS + \
- " cirros@"+floatip+" 'chmod 755 ~/ping.sh '"
- cmd3 = "sshpass -p 'cubswin:)' ssh " + SSH_OPTS + \
- " cirros@"+floatip+" '~/ping.sh "+IP_1+"'"
+ try:
+ scp.put(ping_script,"~/")
+ except Exception, e:
+ logger.error("Cannot SCP the file '%s' to VM '%s'" % (ping_script,floatip))
+
+
+ #SSH_OPTS="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "+\
+ # "-o LogLevel=quiet"
+
+ #cmd1 = "sshpass -p 'cubswin:)' scp " + SSH_OPTS + " " + \
+ # ping_script + " cirros@"+floatip+":~/ping.sh"
+ #cmd2 = "sshpass -p 'cubswin:)' ssh " + SSH_OPTS + \
+ # " cirros@"+floatip+" 'chmod 755 ~/ping.sh '"
+ #cmd3 = "sshpass -p 'cubswin:)' ssh " + SSH_OPTS + \
+ # " cirros@"+floatip+" '~/ping.sh "+IP_1+"'"
+
+ cmd = 'chmod 755 ~/ping.sh'
+ (stdin, stdout, stderr) = ssh.exec_command(cmd)
+ for line in stdout.readlines():
+ print line
logger.info("Waiting for ping...")
sec = 0
duration = 0
+ cmd = '~/ping.sh ' + IP_1
while True:
time.sleep(1)
# we do the SCP every time in the loop because while testing, I observed
# that for some strange reason, the cirros VM was deleting the file if
# do the scp only once
- subprocess.Popen(cmd1, shell=True, stdout=subprocess.PIPE).stdout.read()
- subprocess.Popen(cmd2, shell=True, stdout=subprocess.PIPE).stdout.read()
- output=subprocess.Popen(cmd3, shell=True, stdout=subprocess.PIPE).stdout.read()
+ (stdin, stdout, stderr) = ssh.exec_command(cmd)
+ output = stdout.readlines()
+ #for line in output:
+ # print line
+
# print "--"+console_log
# report if the test is failed
if "vPing OK" in output:
@@ -491,7 +521,7 @@ def main():
logger.info("Timeout reached.")
break
else:
- logger.debug("No vPing detected...")
+ logger.debug("Pinging %s. Waiting for response..." % IP_2)
sec += 1
cleanup(nova_client, neutron_client, image_id, network_dic,