X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fovsdb%2FSouthbound_Domain%2F040__Vxlan_Extension_Test.robot;h=0e047916cf5c9ce6030c6520d4535cf40b113418;hb=e7546dda2b483c5f05badb6e6d013449ac6d727c;hp=832a02134475fa82648965bcac2381bf5eecee1b;hpb=a2cedd893c7e1f0b7b4551138ad96382f8de3f76;p=integration%2Ftest.git diff --git a/csit/suites/ovsdb/Southbound_Domain/040__Vxlan_Extension_Test.robot b/csit/suites/ovsdb/Southbound_Domain/040__Vxlan_Extension_Test.robot index 832a021344..0e047916cf 100644 --- a/csit/suites/ovsdb/Southbound_Domain/040__Vxlan_Extension_Test.robot +++ b/csit/suites/ovsdb/Southbound_Domain/040__Vxlan_Extension_Test.robot @@ -1,7 +1,9 @@ *** Settings *** Documentation Test suite for Connection Manager -Suite Setup Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} -Suite Teardown Delete All Sessions +Suite Setup Vxlan Extension Test Suite Setup +Suite Teardown Vxlan Extension Test Suite Teardown +Test Setup Log Testcase Start To Controller Karaf +Force Tags Southbound Library OperatingSystem Library String Library Collections @@ -15,168 +17,102 @@ Resource ../../../libraries/OVSDB.robot *** Variables *** ${OVSDB_PORT} 6634 ${OVSDB_CONFIG_DIR} ${CURDIR}/../../../variables/ovsdb -@{node_list1} ovsdb://${MININET1}:${OVSDB_PORT} ${MININET1} ${OVSDB_PORT} ovsdb://${MININET}:${OVSDB_PORT} ${MININET} ${OVSDB_PORT} br-int -${start1} sudo mn --controller=remote,ip=${CONTROLLER} --switch=ovsk,protocols=OpenFlow13 --custom ovsdb.py --topo host,1 -${start2} sudo mn --controller=remote,ip=${CONTROLLER} --switch=ovsk,protocols=OpenFlow13 --custom ovsdb.py --topo host,2 +@{node_list1} ovsdb://${TOOLS_SYSTEM_2_IP}:${OVSDB_PORT} ${TOOLS_SYSTEM_2_IP} ${OVSDB_PORT} ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_PORT} ${TOOLS_SYSTEM_IP} ${OVSDB_PORT} +${start1} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --switch=ovsk,protocols=OpenFlow13 --custom ovsdb.py --topo host,1 +${start2} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --switch=ovsk,protocols=OpenFlow13 --custom ovsdb.py --topo host,2 *** Test Cases *** Make the OVS instance to listen for connection - [Tags] Southbound - Run Command On Remote System ${MININET1} sudo ovs-vsctl del-manager - Run Command On Remote System ${MININET1} sudo ovs-vsctl set-manager ptcp:6634 - Run Command On Remote System ${MININET} sudo ovs-vsctl del-manager - Run Command On Remote System ${MININET} sudo ovs-vsctl set-manager ptcp:6634 + Run Command On Remote System ${TOOLS_SYSTEM_2_IP} sudo ovs-vsctl del-manager + Run Command On Remote System ${TOOLS_SYSTEM_2_IP} sudo ovs-vsctl set-manager ptcp:${OVSDB_PORT} + Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl del-manager + Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl set-manager ptcp:${OVSDB_PORT} Connect controller to OVSDB Node1 [Documentation] Initiate the connection to OVSDB node from controller - [Tags] Southbound - Connect To Ovsdb Node ${MININET1} + Connect To Ovsdb Node ${TOOLS_SYSTEM_2_IP} Connect controller to OVSDB Node2 [Documentation] Initiate the connection to OVSDB node from controller - [Tags] Southbound - Connect To Ovsdb Node ${MININET} + Connect To Ovsdb Node ${TOOLS_SYSTEM_IP} Get Operational Topology from OVSDB Node1 and OVSDB Node2 [Documentation] This request will fetch the operational topology from the connected OVSDB nodes - [Tags] Southbound Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API} ${node_list1} -Delete the integration Bridge from OVSDB node 1 and 2 and Verify it - [Documentation] This request will delete the integation bridge node from the OVSDB as we don't need it and verify the operation. - [Tags] Southbound - Delete Bridge From Ovsdb Node ${MININET} br-int - Delete Bridge From Ovsdb Node ${MININET1} br-int - @{list} Create List br-int - Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API} ${list} - Start the Mininet and create custom topology [Documentation] This will start mininet with custom topology on both the Virtual Machines - [Tags] Southbound - ${conn_id1} Start Mininet ${MININET1} ${start1} ${OVSDB_CONFIG_DIR}/ovsdb.py + ${conn_id1} Start Mininet ${TOOLS_SYSTEM_2_IP} ${start1} ${OVSDB_CONFIG_DIR}/ovsdb.py Set Global Variable ${conn_id1} - ${conn_id2} Start Mininet ${MININET} ${start2} ${OVSDB_CONFIG_DIR}/ovsdb.py + ${conn_id2} Start Mininet ${TOOLS_SYSTEM_IP} ${start2} ${OVSDB_CONFIG_DIR}/ovsdb.py Set Global Variable ${conn_id2} Get Operational Topology with custom topology [Documentation] This request will fetch the operational topology from the connected OVSDB nodes to make sure the mininet created custom topology - [Tags] Southbound @{list} Create List s1 s2 Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API} ${list} Add the bridge s1 in the config datastore of OVSDB Node1 [Documentation] This request will add already operational bridge to the config data store of the OVSDB node. - [Tags] Southbound - Add Bridge To Ovsdb Node ${MININET1} s1 0000000000000001 + Add Bridge To Ovsdb Node ${TOOLS_SYSTEM_2_IP} s1 0000000000000001 Add the bridge s2 in the config datastore of OVSDB Node2 [Documentation] This request will add already operational bridge to the config data store of the OVSDB node. - [Tags] Southbound - Add Bridge To Ovsdb Node ${MININET} s2 0000000000000002 + Add Bridge To Ovsdb Node ${TOOLS_SYSTEM_IP} s2 0000000000000002 Get Config Topology with s1 and s2 Bridges [Documentation] This will fetch the configuration topology from configuration data store to verify the bridge is added to the config data store - [Tags] Southbound @{list} Create List s1 s2 Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${CONFIG_TOPO_API} ${list} Create Vxlan Port and attach to s1 Bridge [Documentation] This request will create vxlan port/interface for vxlan tunnel and attach it to the specific bridge s1 of OVSDB node 1 - [Tags] Southbound - Add Vxlan To Bridge ${MININET} s2 vxlanport ${MININET1} + Add Vxlan To Bridge ${TOOLS_SYSTEM_IP} s2 vxlanport ${TOOLS_SYSTEM_2_IP} Create Vxlan Port and attach to s2 Bridge [Documentation] This request will create vxlan port/interface for vxlan tunnel and attach it to the specific bridge s2 of OVSDB node 2 - [Tags] Southbound - Add Vxlan To Bridge ${MININET1} s1 vxlanport ${MININET} + Add Vxlan To Bridge ${TOOLS_SYSTEM_2_IP} s1 vxlanport ${TOOLS_SYSTEM_IP} Get Operational Topology with vxlan tunnel [Documentation] This request will fetch the operational topology from the connected OVSDB nodes to verify that the vxlan tunnel is created - [Tags] Southbound - @{list} Create List vxlanport ${MININET1} ${MININET} + @{list} Create List vxlanport ${TOOLS_SYSTEM_2_IP} ${TOOLS_SYSTEM_IP} Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API} ${list} -Add Flow1 Rule for s1 and verify - [Documentation] This request will add flow to the switch and after that verify through the config datastore flow - [Tags] Southbound - ${body} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/add_flow_rule1.xml - Set Suite Variable ${body} - Log URL is ${CONFIG_NODES_API}/node/openflow:1/table/0/flow/1 - ${resp} RequestsLibrary.Put session ${CONFIG_NODES_API}/node/openflow:1/table/0/flow/1 headers=${HEADERS_XML} data=${body} - Log ${resp.content} - Should Be Equal As Strings ${resp.status_code} 200 - ${resp} RequestsLibrary.Get session ${CONFIG_NODES_API}/node/openflow:1/table/0/flow/1 headers=${ACCEPT_XML} - Should Be Equal As Strings ${resp.status_code} 200 - compare xml ${body} ${resp.content} - -Add Flow2 Rule for s1 and verify - [Documentation] This request will add flow to the switch and after that verify through the config datastore flow - [Tags] Southbound - ${body} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/add_flow_rule2.xml - Log URL is ${CONFIG_NODES_API}/node/openflow:1/table/0/flow/2 - ${resp} RequestsLibrary.Put session ${CONFIG_NODES_API}/node/openflow:1/table/0/flow/2 headers=${HEADERS_XML} data=${body} - Log ${resp.content} - Should Be Equal As Strings ${resp.status_code} 200 - ${resp} RequestsLibrary.Get session ${CONFIG_NODES_API}/node/openflow:1/table/0/flow/2 headers=${ACCEPT_XML} - Should Be Equal As Strings ${resp.status_code} 200 - compare xml ${body} ${resp.content} - -Get Operational Topology to verify the flows successfully installed in the bridge s1 - [Documentation] This request will fetch the operational topology and verify that the flows has been installed in the switch - [Tags] Southbound - @{list} Create List openflow:1 - Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API} ${list} - -Add Flow1 Rule for s2 and verify - [Documentation] This request will add flow to the switch and after that verify through the config datastore flow - [Tags] Southbound - ${body} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/add_flow_rule1.xml - Log URL is ${CONFIG_NODES_API}/node/openflow:2/table/0/flow/1 - ${resp} RequestsLibrary.Put session ${CONFIG_NODES_API}/node/openflow:2/table/0/flow/1 headers=${HEADERS_XML} data=${body} - Log ${resp.content} - Should Be Equal As Strings ${resp.status_code} 200 - ${resp} RequestsLibrary.Get session ${CONFIG_NODES_API}/node/openflow:2/table/0/flow/1 headers=${ACCEPT_XML} - Should Be Equal As Strings ${resp.status_code} 200 - compare xml ${body} ${resp.content} - -Add Flow2 Rule for s2 and verify - [Documentation] This request will add flow to the switch and after that verify through the config datastore flow - [Tags] Southbound - ${body} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/add_flow_rule2.xml - Log URL is ${CONFIG_NODES_API}/node/openflow:2/table/0/flow/2 - ${resp} RequestsLibrary.Put session ${CONFIG_NODES_API}/node/openflow:2/table/0/flow/2 headers=${HEADERS_XML} data=${body} - Log ${resp.content} - Should Be Equal As Strings ${resp.status_code} 200 - ${resp} RequestsLibrary.Get session ${CONFIG_NODES_API}/node/openflow:2/table/0/flow/2 headers=${ACCEPT_XML} - Should Be Equal As Strings ${resp.status_code} 200 - compare xml ${body} ${resp.content} - -Get Operational Topology to verify the flows successfully installed in the bridge s2 - [Documentation] This request will fetch the operational topology and verify that the flows has been installed in the switch - [Tags] Southbound - @{list} Create List openflow:2 - Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API} ${list} - -Ping host2 to IP of host1 - [Documentation] This step will verify the functionality of the vxlan tunnel between two OVSDB nodes. Ping h2(10.0.0.2)---> 10.0.0.1 , verify no packet loss - Switch Connection ${conn_id2} - SSHLibrary.Write h2 ping -w 1 10.0.0.1 - ${result} Read Until mininet> - Should Contain ${result} 1 received, 0% packet loss - -Cleanup work after test completed - [Documentation] Cleanup/Shutdown work that should be done at the completion of all tests - Stop Mininet ${conn_id2} - Stop Mininet ${conn_id1} - Disconnect controller connection from the connected OVSDBs nodes [Documentation] This request will disconnect the controller from the connected OVSDB node for clean startup for next suite. [Tags] Southbound - Disconnect From Ovsdb Node ${MININET} - Disconnect From Ovsdb Node ${MININET1} + Disconnect From Ovsdb Node ${TOOLS_SYSTEM_IP} + Disconnect From Ovsdb Node ${TOOLS_SYSTEM_2_IP} Verify that the operational topology is clean [Documentation] This request will verify the operational toplogy after the mininet is cleaned. [Tags] Southbound - @{list} Create List ${MININET} ${MININET1} s1 s2 + @{list} Create List ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} s1 s2 Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API} ${list} + +Check For Bug 4756 + [Documentation] bug 4756 has been seen in the OVSDB Southbound suites. This test case should be one of the last test + ... case executed. + Check Karaf Log File Does Not Have Messages ${ODL_SYSTEM_IP} SimpleShardDataTreeCohort.*Unexpected failure in validation phase + [Teardown] Report_Failure_Due_To_Bug 4756 + +Check For Bug 4794 + [Documentation] bug 4794 has been seen in the OVSDB Southbound suites. This test case should be one of the last test + ... case executed. + Check Karaf Log File Does Not Have Messages ${ODL_SYSTEM_IP} Shard.*shard-topology-operational An exception occurred while preCommitting transaction + [Teardown] Report_Failure_Due_To_Bug 4794 + +*** Keywords *** +Vxlan Extension Test Suite Setup + Open Controller Karaf Console On Background + Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} + +Vxlan Extension Test Suite Teardown + [Documentation] Cleans up test environment, close existing sessions. + Clean OVSDB Test Environment ${TOOLS_SYSTEM_IP} + Clean OVSDB Test Environment ${TOOLS_SYSTEM_2_IP} + RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${TOOLS_SYSTEM_IP}:${OVSDB_PORT} + RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${TOOLS_SYSTEM_2_IP}:${OVSDB_PORT} + ${resp} RequestsLibrary.Get Request session ${CONFIG_TOPO_API} + Log ${resp.content} + Delete All Sessions