*** Settings *** Documentation Test suite for Connection Manager Suite Setup Configure 1 OVSDB Node Suite Setup Suite Teardown Configure 1 OVSDB Node Suite Teardown Test Setup Log Testcase Start To Controller Karaf Force Tags Southbound Library OperatingSystem Library String Library RequestsLibrary Variables ../../../variables/Variables.py Resource ../../../libraries/Utils.robot Resource ../../../libraries/OVSDB.robot *** Variables *** ${OVSDB_PORT} 6634 ${BRIDGE} ovsdb-csit-test-bridge ${SOUTHBOUND_CONFIG_API} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${TOOLS_SYSTEM_IP}:${OVSDB_PORT} ${OVSDB_CONFIG_DIR} ${CURDIR}/../../../variables/ovsdb @{node_list} ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_PORT} ${TOOLS_SYSTEM_IP} ${OVSDB_PORT} *** Test Cases *** Make the OVS instance to listen for connection 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 to OVSDB Node [Documentation] Initiate the connection to OVSDB node from controller ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/connect.json ${sample1} Replace String ${sample} 127.0.0.1 ${TOOLS_SYSTEM_IP} ${body} Replace String ${sample1} 61644 ${OVSDB_PORT} Log URL is ${SOUTHBOUND_CONFIG_API} Log data: ${body} ${resp} RequestsLibrary.Put Request session ${SOUTHBOUND_CONFIG_API} data=${body} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Wait Until Keyword Succeeds 5s 1s Verify OVS Reports Connected Get Operational Topology [Documentation] This request will fetch the operational topology from the connected OVSDB nodes Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${node_list} Create a Bridge [Documentation] This will create bridge on the specified OVSDB node. ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_bridge.json ${sample1} Replace String ${sample} tcp:127.0.0.1:6633 tcp:${ODL_SYSTEM_IP}:6633 ${sample2} Replace String ${sample1} 127.0.0.1 ${TOOLS_SYSTEM_IP} ${sample3} Replace String ${sample2} br01 ${BRIDGE} ${body} Replace String ${sample3} 61644 ${OVSDB_PORT} Log URL is ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE} Log data: ${body} ${resp} RequestsLibrary.Put Request session ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE} data=${body} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Get Config Topology with Bridge [Documentation] This will fetch the configuration topology from configuration data store to verify the bridge is added to the data store ${resp} RequestsLibrary.Get Request session ${CONFIG_TOPO_API} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Response status code error Should Contain ${resp.content} ${BRIDGE} Get Operational Topology with Bridge [Documentation] This request will fetch the operational topology from the connected OVSDB nodes to verify the bridge is added to the data store @{list} Create List ${BRIDGE} Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} Create Port and attach to a Bridge [Documentation] This request will creates port/interface and attach it to the specific bridge ${body} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port.json Log URL is ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/vxlanport/ Log data: ${body} ${resp} RequestsLibrary.Put Request session ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/vxlanport/ data=${body} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Get Operational Topology with Port [Documentation] This request will fetch the operational topology after the Port is added to the bridge @{list} Create List ${BRIDGE} vxlanport Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} Delete the Port [Documentation] This request will delete the port node from the bridge node and data store. ${resp} RequestsLibrary.Delete Request session ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/vxlanport/ Should Be Equal As Strings ${resp.status_code} 200 Response status code error Get Operational Topology after Deletion of Port [Documentation] This request will fetch the operational topology after the Port is deleted @{list} Create List vxlanport Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} Delete the Bridge [Documentation] This request will delete the bridge node from the config data store. ${resp} RequestsLibrary.Delete Request session ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE} Should Be Equal As Strings ${resp.status_code} 200 Response status code error Get Operational Topology after Deletion of Bridge [Documentation] This request will fetch the operational topology after the Bridge is deleted @{list} Create List ${BRIDGE} vxlanport Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} Verify Config Still Has OVS Info [Documentation] This will fetch the configuration topology from configuration data store to verify the bridge is added to the data store ${resp} RequestsLibrary.Get Request session ${CONFIG_TOPO_API} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Response status code error Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${node_list} Delete the OVSDB Node [Documentation] This request will delete the OVSDB node ${resp} RequestsLibrary.Delete Request session ${SOUTHBOUND_CONFIG_API} Should Be Equal As Strings ${resp.status_code} 200 Response status code error Get Operational Topology to make sure the connection has been deleted [Documentation] This request will fetch the operational topology from the connected OVSDB nodes @{list} Create List ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_PORT} Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} Get Configuration Topology to make sure the connection has been deleted [Documentation] This request will fetch the configuration topology from the connected OVSDB nodes @{list} Create List ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_PORT} Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${CONFIG_TOPO_API}/topology/ovsdb:1 ${node_list} Reconnect to OVSDB Node [Documentation] Initiate the connection to OVSDB node from controller ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/connect.json ${sample1} Replace String ${sample} 127.0.0.1 ${TOOLS_SYSTEM_IP} ${body} Replace String ${sample1} 61644 ${OVSDB_PORT} Log URL is ${SOUTHBOUND_CONFIG_API} Log data: ${body} ${resp} RequestsLibrary.Put Request session ${SOUTHBOUND_CONFIG_API} data=${body} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Get Operational Topology After Node Reconnect [Documentation] This request will fetch the operational topology from the connected OVSDB nodes to verify the bridge is added to the data store Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${node_list} Get Config Topology After Reconnect [Documentation] This will fetch the configuration topology from configuration data store after reconnect ${resp} RequestsLibrary.Get Request session ${CONFIG_TOPO_API} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Response status code error Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${node_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 *** Configure 1 OVSDB Node Suite Setup Open Controller Karaf Console On Background Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} Configure 1 OVSDB Node Suite Teardown [Documentation] Cleans up test environment, close existing sessions. Clean OVSDB Test Environment ${TOOLS_SYSTEM_IP} RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${TOOLS_SYSTEM_IP}:${OVSDB_PORT} ${resp} RequestsLibrary.Get Request session ${CONFIG_TOPO_API} Log ${resp.content} Delete All Sessions