summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorgan Richomme <morgan.richomme@orange.com>2016-01-26 15:03:44 +0100
committerMorgan Richomme <morgan.richomme@orange.com>2016-01-26 14:32:28 +0000
commitca5f6106bc2a07a960cfa607ad1c35a8d93c69ce (patch)
treeb9e681458ca1ffa6c1ada9f79a9b261d86fb49c9
parentc552e04dc359e87f06ba9127218c0921757c87e8 (diff)
Patch ODL scenario to support joid (different keystone and neutron API IP)
JIRA: FUNCTEST-124 Change-Id: I84834fcb78e652f3b39696f0e17bf54cb5804559 Signed-off-by: Morgan Richomme <morgan.richomme@orange.com> (cherry picked from commit 1a40722cd446af5416029dc0f3b371a835fa444c)
-rwxr-xr-xdocker/run_tests.sh9
-rw-r--r--testcases/Controllers/ODL/CI/custom_tests/neutron/010__networks.robot56
-rw-r--r--testcases/Controllers/ODL/CI/custom_tests/neutron/020__subnets.robot56
-rw-r--r--testcases/Controllers/ODL/CI/custom_tests/neutron/030__ports.robot56
-rw-r--r--testcases/Controllers/ODL/CI/custom_tests/neutron/040__delete_ports.txt2
-rw-r--r--testcases/Controllers/ODL/CI/custom_tests/neutron/050__delete_subnets.txt2
-rw-r--r--testcases/Controllers/ODL/CI/custom_tests/neutron/060__delete_networks.txt2
-rwxr-xr-xtestcases/Controllers/ODL/CI/start_tests.sh3
8 files changed, 180 insertions, 6 deletions
diff --git a/docker/run_tests.sh b/docker/run_tests.sh
index bf68612f9..9e2021669 100755
--- a/docker/run_tests.sh
+++ b/docker/run_tests.sh
@@ -51,7 +51,9 @@ function clean_openstack(){
}
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'=')
@@ -61,6 +63,9 @@ function odl_tests(){
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
:
@@ -90,7 +95,7 @@ function run_test(){
"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
diff --git a/testcases/Controllers/ODL/CI/custom_tests/neutron/010__networks.robot b/testcases/Controllers/ODL/CI/custom_tests/neutron/010__networks.robot
new file mode 100644
index 000000000..583a6a153
--- /dev/null
+++ b/testcases/Controllers/ODL/CI/custom_tests/neutron/010__networks.robot
@@ -0,0 +1,56 @@
+*** 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
diff --git a/testcases/Controllers/ODL/CI/custom_tests/neutron/020__subnets.robot b/testcases/Controllers/ODL/CI/custom_tests/neutron/020__subnets.robot
new file mode 100644
index 000000000..5f5b82440
--- /dev/null
+++ b/testcases/Controllers/ODL/CI/custom_tests/neutron/020__subnets.robot
@@ -0,0 +1,56 @@
+*** 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
diff --git a/testcases/Controllers/ODL/CI/custom_tests/neutron/030__ports.robot b/testcases/Controllers/ODL/CI/custom_tests/neutron/030__ports.robot
new file mode 100644
index 000000000..8b75733b7
--- /dev/null
+++ b/testcases/Controllers/ODL/CI/custom_tests/neutron/030__ports.robot
@@ -0,0 +1,56 @@
+*** 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
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
index 02c90c37c..f10298839 100644
--- a/testcases/Controllers/ODL/CI/custom_tests/neutron/040__delete_ports.txt
+++ b/testcases/Controllers/ODL/CI/custom_tests/neutron/040__delete_ports.txt
@@ -1,6 +1,6 @@
*** 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
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
index 4121c98fe..fb619825b 100644
--- a/testcases/Controllers/ODL/CI/custom_tests/neutron/050__delete_subnets.txt
+++ b/testcases/Controllers/ODL/CI/custom_tests/neutron/050__delete_subnets.txt
@@ -1,6 +1,6 @@
*** 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
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
index fc823fa4b..528fbfca2 100644
--- a/testcases/Controllers/ODL/CI/custom_tests/neutron/060__delete_networks.txt
+++ b/testcases/Controllers/ODL/CI/custom_tests/neutron/060__delete_networks.txt
@@ -1,6 +1,6 @@
*** 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
diff --git a/testcases/Controllers/ODL/CI/start_tests.sh b/testcases/Controllers/ODL/CI/start_tests.sh
index 4d600224e..5b45a2e92 100755
--- a/testcases/Controllers/ODL/CI/start_tests.sh
+++ b/testcases/Controllers/ODL/CI/start_tests.sh
@@ -51,6 +51,7 @@ ODL_PORT=${ODL_PORT:-8081}
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
@@ -80,7 +81,7 @@ do
((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}/