}
function odl_tests(){
- neutron_ip=$(keystone catalog --service identity | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
+ keystone_ip=$(keystone catalog --service identity | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
+ # historically most of the installers use the same IP for neutron and keystone API
+ neutron_ip=keystone_ip
odl_ip=$(keystone catalog --service network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
usr_name=$(env | grep OS | grep OS_USERNAME | cut -f2 -d'=')
password=$(env | grep OS | grep OS_PASSWORD | cut -f2 -d'=')
elif [ $INSTALLER_TYPE == "apex" ]; then
:
elif [ $INSTALLER_TYPE == "joid" ]; then
+ odl_ip=$(env | grep ODL_CONTROLLER | cut -f2 -d'=')
+ neutron_ip=$(keystone catalog --service network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
+ odl_port=8080
:
elif [ $INSTALLER_TYPE == "compass" ]; then
:
"odl")
info "Running ODL test..."
odl_tests
- ODL_PORT=$odl_port ODL_IP=$odl_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$password \
+ ODL_PORT=$odl_port ODL_IP=$odl_ip KEYSTONE_IP=$keystone_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$password \
${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh
# push results to the DB in case of CI
--- /dev/null
+*** Settings ***
+Documentation Checking Network created in OpenStack are pushed to OpenDaylight
+Suite Setup Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
+Suite Teardown Delete All Sessions
+Library SSHLibrary
+Library Collections
+Library OperatingSystem
+Library RequestsLibrary
+Library ../../../libraries/Common.py
+Variables ../../../variables/Variables.py
+
+*** Variables ***
+${ODLREST} /controller/nb/v2/neutron/networks
+${OSREST} /v2.0/networks
+${postNet} {"network":{"name":"odl_network","admin_state_up":true}}
+
+*** Test Cases ***
+Check OpenStack Networks
+ [Documentation] Checking OpenStack Neutron for known networks
+ [Tags] Network Neutron OpenStack
+ Log ${X-AUTH}
+ ${resp} get OSSession ${OSREST}
+ Should be Equal As Strings ${resp.status_code} 200
+ ${OSResult} To Json ${resp.content}
+ Set Suite Variable ${OSResult}
+ Log ${OSResult}
+
+Check OpenDaylight Networks
+ [Documentation] Checking OpenDaylight Neutron API for Known Networks
+ [Tags] Network Neutron 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}
+
+Create Network
+ [Documentation] Create new network in OpenStack
+ [Tags] Create Network OpenStack Neutron
+ Log ${postNet}
+ ${resp} post OSSession ${OSREST} data=${postNet}
+ Should be Equal As Strings ${resp.status_code} 201
+ ${result} To JSON ${resp.content}
+ ${result} Get From Dictionary ${result} network
+ ${NETID} Get From Dictionary ${result} id
+ Log ${result}
+ Log ${NETID}
+ Set Global Variable ${NETID}
+ sleep 2
+
+Check Network
+ [Documentation] Check Network created in OpenDaylight
+ [Tags] Check Network OpenDaylight
+ ${resp} get ODLSession ${ODLREST}/${NetID}
+ Should be Equal As Strings ${resp.status_code} 200
--- /dev/null
+*** Settings ***
+Documentation Checking Subnets created in OpenStack are pushed to OpenDaylight
+Suite Setup Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
+Suite Teardown Delete All Sessions
+Library SSHLibrary
+Library Collections
+Library OperatingSystem
+Library RequestsLibrary
+Library ../../../libraries/Common.py
+Variables ../../../variables/Variables.py
+
+*** Variables ***
+${ODLREST} /controller/nb/v2/neutron/subnets
+${OSREST} /v2.0/subnets
+${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 ***
+Check OpenStack Subnets
+ [Documentation] Checking OpenStack Neutron for known Subnets
+ [Tags] Subnets Neutron OpenStack
+ Log ${X-AUTH}
+ ${resp} get OSSession ${OSREST}
+ Should be Equal As Strings ${resp.status_code} 200
+ ${OSResult} To Json ${resp.content}
+ Set Suite Variable ${OSResult}
+ Log ${OSResult}
+
+Check OpenDaylight subnets
+ [Documentation] Checking OpenDaylight Neutron API for Known Subnets
+ [Tags] Subnets Neutron 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}
+
+Create New subnet
+ [Documentation] Create new subnet in OpenStack
+ [Tags] Create Subnet OpenStack Neutron
+ Log ${data}
+ ${resp} post OSSession ${OSREST} data=${data}
+ Should be Equal As Strings ${resp.status_code} 201
+ ${result} To JSON ${resp.content}
+ ${result} Get From Dictionary ${result} subnet
+ ${SUBNETID} Get From Dictionary ${result} id
+ Log ${result}
+ Log ${SUBNETID}
+ Set Global Variable ${SUBNETID}
+ sleep 2
+
+Check New subnet
+ [Documentation] Check new subnet created in OpenDaylight
+ [Tags] Check subnet OpenDaylight
+ ${resp} get ODLSession ${ODLREST}/${SUBNETID}
+ Should be Equal As Strings ${resp.status_code} 200
--- /dev/null
+*** Settings ***
+Documentation Checking Port created in OpenStack are pushed to OpenDaylight
+Suite Setup Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
+Suite Teardown Delete All Sessions
+Library SSHLibrary
+Library Collections
+Library OperatingSystem
+Library RequestsLibrary
+Library ../../../libraries/Common.py
+Variables ../../../variables/Variables.py
+
+*** Variables ***
+${ODLREST} /controller/nb/v2/neutron/ports
+${OSREST} /v2.0/ports
+${data} {"port":{"network_id":"${NETID}","admin_state_up": true}}
+
+*** Test Cases ***
+Check OpenStack ports
+ [Documentation] Checking OpenStack Neutron for known ports
+ [Tags] Ports Neutron OpenStack
+ Log ${X-AUTH}
+ ${resp} get OSSession ${OSREST}
+ Should be Equal As Strings ${resp.status_code} 200
+ ${OSResult} To Json ${resp.content}
+ Set Suite Variable ${OSResult}
+ Log ${OSResult}
+
+Check OpenDaylight ports
+ [Documentation] Checking OpenDaylight Neutron API for Known Ports
+ [Tags] Ports Neutron 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}
+
+Create New Port
+ [Documentation] Create new port in OpenStack
+ [Tags] Create port OpenStack Neutron
+ Log ${data}
+ ${resp} post OSSession ${OSREST} data=${data}
+ Should be Equal As Strings ${resp.status_code} 201
+ ${result} To JSON ${resp.content}
+ ${result} Get From Dictionary ${result} port
+ ${PORTID} Get From Dictionary ${result} id
+ Log ${result}
+ Log ${PORTID}
+ Set Global Variable ${PORTID}
+ sleep 2
+
+Check New Port
+ [Documentation] Check new subnet created in OpenDaylight
+ [Tags] Check subnet OpenDaylight
+ ${resp} get ODLSession ${ODLREST}/${PORTID}
+ Should be Equal As Strings ${resp.status_code} 200
*** Settings ***
Documentation Checking Port deleted in OpenStack are deleted also in OpenDaylight
-Suite Setup Create Session OSSession http://${OPENSTACK}:9696 headers=${X-AUTH}
+Suite Setup Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
Suite Teardown Delete All Sessions
Library SSHLibrary
Library Collections
*** Settings ***
Documentation Checking Subnets deleted in OpenStack are deleted also in OpenDaylight
-Suite Setup Create Session OSSession http://${OPENSTACK}:9696 headers=${X-AUTH}
+Suite Setup Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
Suite Teardown Delete All Sessions
Library SSHLibrary
Library Collections
*** Settings ***
Documentation Checking Network deleted in OpenStack are deleted also in OpenDaylight
-Suite Setup Create Session OSSession http://${OPENSTACK}:9696 headers=${X-AUTH}
+Suite Setup Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
Suite Teardown Delete All Sessions
Library SSHLibrary
Library Collections
USR_NAME=${USR_NAME:-'neutron'}
PASS=${PASS:-'octopus'}
NEUTRON_IP=${NEUTRON_IP:-192.168.0.68}
+KEYSTONE_IP=${NEUTRON_IP:-192.168.0.69}
set +x
init_file=${REPO_DIR}/test/csit/suites/openstack/neutron/__init__.robot
((test_num++))
echo -e "${light_green}Starting test: $line ${nc}"
- pybot -v OPENSTACK:${NEUTRON_IP} -v PORT:${ODL_PORT} -v CONTROLLER:${ODL_IP} ${REPO_DIR}/$line
+ pybot -v OPENSTACK:${KEYSTONE_IP} -v NEUTRON:${NEUTRON_IP} -v PORT:${ODL_PORT} -v CONTROLLER:${ODL_IP} ${REPO_DIR}/$line
mkdir -p $RESULTS_DIR/logs/${test_num}
mv log.html $RESULTS_DIR/logs/${test_num}/
mv report.html $RESULTS_DIR/logs/${test_num}/