diff options
-rwxr-xr-x[-rw-r--r--] | testcases/Controllers/ODL/CI/create_venv.sh | 2 | ||||
-rw-r--r-- | testcases/Controllers/ODL/CI/custom_tests/neutron/040__delete_ports.txt | 37 | ||||
-rw-r--r-- | testcases/Controllers/ODL/CI/custom_tests/neutron/050__delete_subnets.txt | 37 | ||||
-rw-r--r-- | testcases/Controllers/ODL/CI/custom_tests/neutron/060__delete_networks.txt | 37 | ||||
-rwxr-xr-x[-rw-r--r--] | testcases/Controllers/ODL/CI/start_tests.sh | 17 | ||||
-rw-r--r-- | testcases/vPing/CI/libraries/vPing.py | 29 |
6 files changed, 146 insertions, 13 deletions
diff --git a/testcases/Controllers/ODL/CI/create_venv.sh b/testcases/Controllers/ODL/CI/create_venv.sh index 5d0733a5a..19d9b49c4 100644..100755 --- a/testcases/Controllers/ODL/CI/create_venv.sh +++ b/testcases/Controllers/ODL/CI/create_venv.sh @@ -13,7 +13,7 @@ function venv_install() { elif command -v virtualenv; then virtualenv $1 else - echo Please make sure virtualenv package is installed. + echo Cannot find virtualenv command. return 1 fi } diff --git a/testcases/Controllers/ODL/CI/custom_tests/neutron/040__delete_ports.txt b/testcases/Controllers/ODL/CI/custom_tests/neutron/040__delete_ports.txt new file mode 100644 index 000000000..ec9d8c4b5 --- /dev/null +++ b/testcases/Controllers/ODL/CI/custom_tests/neutron/040__delete_ports.txt @@ -0,0 +1,37 @@ +*** Settings *** +Documentation Checking Port deleted in OpenStack are deleted also in OpenDaylight +Suite Setup Create Session OSSession http://${OPENSTACK}:9696 headers=${X-AUTH} +Suite Teardown Delete All Sessions +Library SSHLibrary +Library Collections +Library OperatingSystem +Library ../integration/test/csit/libraries/RequestsLibrary.py +Library ../integration/test/csit/libraries/Common.py +Variables ../integration/test/csit/variables/Variables.py + +*** Variables *** +${ODLREST} /controller/nb/v2/neutron/ports +${OSREST} /v2.0/ports/${PORTID} +${data} {"port":{"network_id":"${NETID}","admin_state_up": true}} + +*** Test Cases *** +Delete New Port + [Documentation] Delete previously created port in OpenStack + [Tags] Delete port OpenStack Neutron + Log ${data} + ${resp} delete OSSession ${OSREST} + Should be Equal As Strings ${resp.status_code} 204 + Log ${resp.content} + sleep 2 + +Check Port Deleted + [Documentation] Check port deleted in OpenDaylight + [Tags] Check port deleted OpenDaylight + Create Session ODLSession http://${CONTROLLER}:${PORT} headers=${HEADERS} auth=${AUTH} + ${resp} get ODLSession ${ODLREST} + Should be Equal As Strings ${resp.status_code} 200 + ${ODLResult} To Json ${resp.content} + Set Suite Variable ${ODLResult} + Log ${ODLResult} + ${resp} get ODLSession ${ODLREST}/${PORTID} + Should be Equal As Strings ${resp.status_code} 404 diff --git a/testcases/Controllers/ODL/CI/custom_tests/neutron/050__delete_subnets.txt b/testcases/Controllers/ODL/CI/custom_tests/neutron/050__delete_subnets.txt new file mode 100644 index 000000000..943fe3183 --- /dev/null +++ b/testcases/Controllers/ODL/CI/custom_tests/neutron/050__delete_subnets.txt @@ -0,0 +1,37 @@ +*** Settings *** +Documentation Checking Subnets deleted in OpenStack are deleted also in OpenDaylight +Suite Setup Create Session OSSession http://${OPENSTACK}:9696 headers=${X-AUTH} +Suite Teardown Delete All Sessions +Library SSHLibrary +Library Collections +Library OperatingSystem +Library ../integration/test/csit/libraries/RequestsLibrary.py +Library ../integration/test/csit/libraries/Common.py +Variables ../integration/test/csit/variables/Variables.py + +*** Variables *** +${ODLREST} /controller/nb/v2/neutron/subnets +${OSREST} /v2.0/subnets/${SUBNETID} +${data} {"subnet":{"network_id":"${NETID}","ip_version":4,"cidr":"172.16.64.0/24","allocation_pools":[{"start":"172.16.64.20","end":"172.16.64.120"}]}} + +*** Test Cases *** +Delete New subnet + [Documentation] Delete previously created subnet in OpenStack + [Tags] Delete Subnet OpenStack Neutron + Log ${data} + ${resp} delete OSSession ${OSREST} + Should be Equal As Strings ${resp.status_code} 204 + Log ${resp.content} + sleep 2 + +Check New subnet deleted + [Documentation] Check subnet deleted in OpenDaylight + [Tags] Check subnet deleted OpenDaylight + Create Session ODLSession http://${CONTROLLER}:${PORT} headers=${HEADERS} auth=${AUTH} + ${resp} get ODLSession ${ODLREST} + Should be Equal As Strings ${resp.status_code} 200 + ${ODLResult} To Json ${resp.content} + Set Suite Variable ${ODLResult} + Log ${ODLResult} + ${resp} get ODLSession ${ODLREST}/${SUBNETID} + Should be Equal As Strings ${resp.status_code} 404 diff --git a/testcases/Controllers/ODL/CI/custom_tests/neutron/060__delete_networks.txt b/testcases/Controllers/ODL/CI/custom_tests/neutron/060__delete_networks.txt new file mode 100644 index 000000000..f486af149 --- /dev/null +++ b/testcases/Controllers/ODL/CI/custom_tests/neutron/060__delete_networks.txt @@ -0,0 +1,37 @@ +*** Settings *** +Documentation Checking Network deleted in OpenStack are deleted also in OpenDaylight +Suite Setup Create Session OSSession http://${OPENSTACK}:9696 headers=${X-AUTH} +Suite Teardown Delete All Sessions +Library SSHLibrary +Library Collections +Library OperatingSystem +Library ../integration/test/csit/libraries/RequestsLibrary.py +Library ../integration/test/csit/libraries/Common.py +Variables ../integration/test/csit/variables/Variables.py + +*** Variables *** +${ODLREST} /controller/nb/v2/neutron/networks +${OSREST} /v2.0/networks/${NETID} +${postNet} {"network":{"name":"odl_network","admin_state_up":true}} + +*** Test Cases *** +Delete Network + [Documentation] Delete network in OpenStack + [Tags] Delete Network OpenStack Neutron + Log ${postNet} + ${resp} delete OSSession ${OSREST} + Should be Equal As Strings ${resp.status_code} 204 + Log ${resp.content} + sleep 2 + +Check Network deleted + [Documentation] Check Network deleted in OpenDaylight + [Tags] Check Network OpenDaylight + Create Session ODLSession http://${CONTROLLER}:${PORT} headers=${HEADERS} auth=${AUTH} + ${resp} get ODLSession ${ODLREST} + Should be Equal As Strings ${resp.status_code} 200 + ${ODLResult} To Json ${resp.content} + Set Suite Variable ${ODLResult} + Log ${ODLResult} + ${resp} get ODLSession ${ODLREST}/${NetID} + Should be Equal As Strings ${resp.status_code} 404 diff --git a/testcases/Controllers/ODL/CI/start_tests.sh b/testcases/Controllers/ODL/CI/start_tests.sh index 367a075f7..c2e2c325e 100644..100755 --- a/testcases/Controllers/ODL/CI/start_tests.sh +++ b/testcases/Controllers/ODL/CI/start_tests.sh @@ -17,7 +17,7 @@ usage: where: -h show this help text - var one of the following: OSTACK_IP, ODL_PORT, USR_NAME, USR_PASSWORD + var one of the following: ODL_IP, ODL_PORT, USR_NAME, PASS, NEUTRON_IP value new value for var example: @@ -38,10 +38,11 @@ done echo -e "${green}Current environment parameters for ODL suite.${nc}" # Following vars might be also specified as CLI params set -x -OSTACK_IP=${OSTACK_IP:-'oscontrol'} +ODL_IP=${ODL_IP:-'192.168.1.5'} ODL_PORT=${ODL_PORT:-8081} -USR_NAME=${USR_NAME:-'admin'} -USR_PASSWORD=${USR_PASSWORD:-'octopus'} +USR_NAME=${USR_NAME:-'neutron'} +PASS=${PASS:-'octopus'} +NEUTRON_IP=${NEUTRON_IP:-192.168.0.68} set +x echo -e "${green}Cloning ODL integration git repo.${nc}" @@ -55,7 +56,7 @@ else fi # Change openstack password for admin tenant in neutron suite -sed -i "s/\"password\": \"admin\"/\"password\": \"${USR_PASSWORD}\"/" integration/test/csit/suites/openstack/neutron/__init__.robot +sed -i "s/\"password\": \"admin\"/\"password\": \"${PASS}\"/" integration/test/csit/suites/openstack/neutron/__init__.robot if source $BASEDIR/venv/bin/activate; then echo -e "${green}Python virtualenv activated.${nc}" @@ -64,6 +65,10 @@ else exit 1 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}" +cp -vf $BASEDIR/custom_tests/neutron/* $BASEDIR/integration/test/csit/suites/openstack/neutron/ + # List of tests are specified in test_list.txt # those are relative paths to test directories from integartion suite echo -e "${green}Executing chosen tests.${nc}" @@ -76,7 +81,7 @@ do [[ -z "${line}" ]] && continue echo -e "${light_green}Starting test: $line ${nc}" - pybot -v OPENSTACK:${OSTACK_IP} -v PORT:${ODL_PORT} -v CONTROLLER:${OSTACK_IP} $line + pybot -v OPENSTACK:${NEUTRON_IP} -v PORT:${ODL_PORT} -v CONTROLLER:${ODL_IP} $line mkdir -p $BASEDIR/logs/${test_num} mv log.html $BASEDIR/logs/${test_num}/ mv report.html $BASEDIR/logs/${test_num}/ diff --git a/testcases/vPing/CI/libraries/vPing.py b/testcases/vPing/CI/libraries/vPing.py index 3836a1a4c..1eb219dfb 100644 --- a/testcases/vPing/CI/libraries/vPing.py +++ b/testcases/vPing/CI/libraries/vPing.py @@ -24,6 +24,7 @@ with open(HOME+'.functest/functest.yaml') as f: functest_yaml = yaml.safe_load(f) f.close() +VM_BOOT_TIMEOUT = 180 PING_TIMEOUT = functest_yaml.get("vping").get("ping_timeout") NAME_VM_1 = functest_yaml.get("vping").get("vm_name_1") NAME_VM_2 = functest_yaml.get("vping").get("vm_name_2") @@ -98,10 +99,18 @@ def get_server(creds, servername): def waitVmActive(nova,vm): # sleep and wait for VM status change - while get_status(nova,vm) != "ACTIVE": - time.sleep(3) - logger.debug("Status: %s" % vm.status) - logger.debug("Status: %s" % vm.status) + sleep_time = 3 + count = VM_BOOT_TIMEOUT / sleep_time + while True: + status = get_status(nova,vm) + logger.debug("Status: %s" % status) + if status == "ACTIVE": + return True + if status == "ERROR" or count == 0: + return False + count-=1 + time.sleep(sleep_time) + return False def get_status(nova,vm): vm = nova.servers.get(vm.id) @@ -172,7 +181,11 @@ def main(): #wait until VM status is active - waitVmActive(nova,vm1) + if not waitVmActive(nova,vm1): + logger.error("Instance '%s' cannot be booted. Status is '%s'" % (NAME_VM_1,get_status(nova,vm1))) + return (EXIT_CODE) + else: + logger.info("Instance '%s' is ACTIVE." % NAME_VM_1) #retrieve IP of first VM logger.debug("Fetching IP...") @@ -199,7 +212,11 @@ def main(): userdata = u, ) - waitVmActive(nova,vm2) + if not waitVmActive(nova,vm2): + logger.error("Instance '%s' cannot be booted. Status is '%s'" % (NAME_VM_2,get_status(nova,vm2))) + return (EXIT_CODE) + else: + logger.info("Instance '%s' is ACTIVE." % NAME_VM_2) sec = 0 console_log = vm2.get_console_output() |