OVSDB Southbound TestSuites Updated
[integration/test.git] / test / csit / suites / ovsdb / Southbound_Domain / 030__configure_exit_ovsdb_node.robot
diff --git a/test/csit/suites/ovsdb/Southbound_Domain/030__configure_exit_ovsdb_node.robot b/test/csit/suites/ovsdb/Southbound_Domain/030__configure_exit_ovsdb_node.robot
new file mode 100644 (file)
index 0000000..5c9fcd1
--- /dev/null
@@ -0,0 +1,142 @@
+*** 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.txt
+
+*** Variables ***
+${OVSDB_PORT}     6644
+${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 add-br ${BRIDGE}
+    Run Command On Remote System    ${MININET}    sudo ovs-vsctl set-manager ptcp:6644
+
+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}
+
+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
+
+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
+    [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
+
+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    vx1    10.0.0.19
+    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
+
+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 Port
+    [Documentation]    This request will fetch the operational topology after the Port is deleted
+    [Tags]    Southbound
+    @{list}    Create List    vxlanport    vx1
+    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}