*** Settings *** Documentation Test suite for Connection Manager Suite Setup Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} Suite Teardown Delete All Sessions Library OperatingSystem Library String Library RequestsLibrary Variables ../../../variables/Variables.py Resource ../../../libraries/Utils.robot *** Variables *** ${OVSDB_PORT} 6634 ${BRIDGE} br-s1 ${SOUTHBOUND_CONFIG_API} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${MININET}:${OVSDB_PORT} ${OVSDB_CONFIG_DIR} ${CURDIR}/../../../variables/ovsdb @{node_list} ${BRIDGE} vx1 *** Test Cases *** Create a Topology in OVSDB node [Documentation] Create topology in OVSDB and ready it for further tests [Tags] Southbound Run Command On Remote System ${MININET} sudo ovs-vsctl del-manager Run Command On Remote System ${MININET} sudo ovs-vsctl del-br br-int Run Command On Remote System ${MININET} sudo ovs-vsctl add-br ${BRIDGE} Run Command On Remote System ${MININET} sudo ovs-vsctl add-port ${BRIDGE} vx1 -- set Interface vx1 type=vxlan options:remote_ip=192.168.1.11 Run Command On Remote System ${MININET} sudo ovs-vsctl set-manager ptcp:6634 Connect to OVSDB Node [Documentation] Initiate the connection to OVSDB node from controller [Tags] Southbound ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/connect.json ${sample1} Replace String ${sample} 127.0.0.1 ${MININET} ${body} Replace String ${sample1} 61644 ${OVSDB_PORT} Log URL is ${SOUTHBOUND_CONFIG_API} ${resp} RequestsLibrary.Put session ${SOUTHBOUND_CONFIG_API} data=${body} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Get Operational Topology [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_list} Get Config Topology without Bridge [Documentation] This will fetch the configuration topology from configuration data store to verify the bridge is added to the data store [Tags] Southbound Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${CONFIG_TOPO_API} ${node_list} Delete the integration Bridge [Documentation] This request will delete the bridge node from the config data store. [Tags] Southbound ${resp} RequestsLibrary.Delete session ${SOUTHBOUND_CONFIG_API}%2Fbridge%2Fbr-int Should Be Equal As Strings ${resp.status_code} 200 Response status code error Get Operational Topology after deletion of integration bridge [Documentation] This request will fetch the operational topology from the connected OVSDB nodes [Tags] Southbound @{list} Create List br-int Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API} ${list} Create bridge of already added bridge [Documentation] This will add bridge to the config datastore [Tags] Southbound ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_bridge.json ${sample1} Replace String ${sample} tcp:127.0.0.1:6633 tcp:${CONTROLLER}:6633 ${sample2} Replace String ${sample1} 127.0.0.1 ${MININET} ${sample3} Replace String ${sample2} br01 ${BRIDGE} ${body} Replace String ${sample3} 61644 ${OVSDB_PORT} Log URL is ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE} ${resp} RequestsLibrary.Put 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 [Tags] Southbound @{list} Create List br-s1 Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${CONFIG_TOPO_API} ${list} Create Port of already added port in OVSDB [Documentation] This will add port/interface to the config datastore [Tags] Southbound ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port.json ${sample1} Replace String ${sample} vxlanport vx1 ${body} Replace String ${sample1} 192.168.0.21 192.168.1.10 Log URL is ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/vx1/ ${resp} RequestsLibrary.Put session ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/vx1/ data=${body} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Get Config Topology with Bridge and Port [Documentation] This will fetch the configuration topology from configuration data store to verify the bridge is added to the data store [Tags] Southbound Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${CONFIG_TOPO_API} ${node_list} Modify the destination IP of Port [Documentation] This will modify the dst ip of existing port [Tags] Southbound ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port.json ${sample1} Replace String ${sample} vxlanport vx1 ${body} Replace String ${sample1} 192.168.0.21 10.0.0.19 Log URL is ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/vx1/ ${resp} RequestsLibrary.Put session ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/vx1/ data=${body} Log ${resp.content} Should Be Equal As Strings ${resp.status_code} 200 Get Operational Topology with modified Port [Documentation] This request will fetch the operational topology after the Port is added to the bridge [Tags] Southbound @{list} Create List ${BRIDGE} vx1 10.0.0.19 Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API} ${list} Create Port and attach to a Bridge [Documentation] This request will creates port/interface and attach it to the specific bridge [Tags] Southbound ${body} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port.json Log URL is ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/vxlanport/ ${resp} RequestsLibrary.Put 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 [Tags] Southbound @{list} Create List ${BRIDGE} vxlanport Wait Until Keyword Succeeds 8s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API} ${list} Delete the Port1 [Documentation] This request will delete the port node from the bridge node and data store. [Tags] Southbound ${resp} RequestsLibrary.Delete session ${SOUTHBOUND_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/vx1/ Should Be Equal As Strings ${resp.status_code} 200 Response status code error Get Operational Topology after deletion of Port1 [Documentation] This request will fetch the operational topology after the Port is added to the bridge [Tags] Southbound @{list} Create List vx1 Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API} ${list} Delete the Port2 [Documentation] This request will delete the port node from the bridge node and data store. [Tags] Southbound ${resp} RequestsLibrary.Delete 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 Port2 [Documentation] This request will fetch the operational topology after the Port is deleted [Tags] Southbound @{list} Create List vxlanport Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API} ${list} Delete the Bridge [Documentation] This request will delete the bridge node from the config data store. [Tags] Southbound ${resp} RequestsLibrary.Delete 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 [Tags] Southbound @{list} Create List ${BRIDGE} vxlanport vx1 Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API} ${list} Delete the OVSDB Node [Documentation] This request will delete the OVSDB node [Tags] Southbound ${resp} RequestsLibrary.Delete session ${SOUTHBOUND_CONFIG_API} Should Be Equal As Strings ${resp.status_code} 200 Response status code error Get Operational Topology after Deletion of OVSDB Node [Documentation] This request will fetch the operational topology after the OVSDB node is deleted [Tags] Southbound @{list} Create List ovsdb://${MININET}:${OVSDB_PORT} ${BRIDGE} vxlanport vx1 Wait Until Keyword Succeeds 8s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API} ${list}