From 1a40722cd446af5416029dc0f3b371a835fa444c Mon Sep 17 00:00:00 2001
From: Morgan Richomme <morgan.richomme@orange.com>
Date: Tue, 26 Jan 2016 15:03:44 +0100
Subject: 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>
---
 .../CI/custom_tests/neutron/010__networks.robot    | 56 ++++++++++++++++++++++
 .../ODL/CI/custom_tests/neutron/020__subnets.robot | 56 ++++++++++++++++++++++
 .../ODL/CI/custom_tests/neutron/030__ports.robot   | 56 ++++++++++++++++++++++
 .../CI/custom_tests/neutron/040__delete_ports.txt  |  2 +-
 .../custom_tests/neutron/050__delete_subnets.txt   |  2 +-
 .../custom_tests/neutron/060__delete_networks.txt  |  2 +-
 testcases/Controllers/ODL/CI/start_tests.sh        |  3 +-
 7 files changed, 173 insertions(+), 4 deletions(-)
 create mode 100644 testcases/Controllers/ODL/CI/custom_tests/neutron/010__networks.robot
 create mode 100644 testcases/Controllers/ODL/CI/custom_tests/neutron/020__subnets.robot
 create mode 100644 testcases/Controllers/ODL/CI/custom_tests/neutron/030__ports.robot

(limited to 'testcases')

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}/
-- 
cgit