X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fovsdb%2FSouthbound_Domain%2F010__configure_1_ovsdb_node.robot;h=1af7400b4906ad8ee391535bca4e510fe7a67b25;hb=20aee3e2e85762291fecd0e8d29d1d404cd322a3;hp=1687f0b569d181b69fc6a7bd06709e59d84b0cd8;hpb=58702447db050ccc0190d2a0c10a94a3aed4aecc;p=integration%2Ftest.git diff --git a/csit/suites/ovsdb/Southbound_Domain/010__configure_1_ovsdb_node.robot b/csit/suites/ovsdb/Southbound_Domain/010__configure_1_ovsdb_node.robot index 1687f0b569..1af7400b49 100644 --- a/csit/suites/ovsdb/Southbound_Domain/010__configure_1_ovsdb_node.robot +++ b/csit/suites/ovsdb/Southbound_Domain/010__configure_1_ovsdb_node.robot @@ -1,168 +1,204 @@ *** 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 +Suite Setup OVSDB.Suite Setup +Suite Teardown Suite Teardown +Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing Force Tags Southbound Library OperatingSystem -Library String Library RequestsLibrary -Variables ../../../variables/Variables.py -Resource ../../../libraries/Utils.robot Resource ../../../libraries/OVSDB.robot +Resource ../../../libraries/SetupUtils.robot +Resource ../../../libraries/Utils.robot +Resource ../../../variables/Variables.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} +${BRIDGE} ovsconf_br +${PORT} ovsconf_vx1 +${QOS} QOS-1 +${QUEUE} QUEUE-1 +@{NODE_LIST} ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT} ${TOOLS_SYSTEM_IP} ${OVSDB_NODE_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} + Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl del-manager + Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl set-manager ptcp:${OVSDB_NODE_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} "20?" - Wait Until Keyword Succeeds 5s 1s Verify OVS Reports Connected + OVSDB.Connect To Ovsdb Node ${TOOLS_SYSTEM_IP} + BuiltIn.Wait Until Keyword Succeeds 5s 1s OVSDB.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} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${NODE_LIST} pretty_print_json=True 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} "20?" + OVSDB.Add Bridge To Ovsdb Node ${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT} ${TOOLS_SYSTEM_IP} ${BRIDGE} 0000000000000040 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} + ${resp} = RequestsLibrary.Get Request session ${CONFIG_TOPO_API} + OVSDB.Log Request ${resp.content} + BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 + BuiltIn.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} + @{list} = BuiltIn.Create List ${BRIDGE} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} pretty_print_json=True -Create Port and attach to a Bridge +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} "20?" + OVSDB.Add Termination Point ${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT} ${BRIDGE} ${PORT} 10.0.0.10 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} + @{list} = BuiltIn.Create List ${BRIDGE} ${PORT} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} pretty_print_json=True 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 + ${resp} = RequestsLibrary.Delete Request session ${SOUTHBOUND_NODE_CONFIG_API}%2Fbridge%2F${BRIDGE}/termination-point/${PORT}/ + BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 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} + @{list} = BuiltIn.Create List ${PORT} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements Not At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} pretty_print_json=True 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 + ${resp} = RequestsLibrary.Delete Request session ${SOUTHBOUND_NODE_CONFIG_API}%2Fbridge%2F${BRIDGE} + BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 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} + @{list} = BuiltIn.Create List ${BRIDGE} ${PORT} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements Not At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} pretty_print_json=True 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} + [Documentation] This will fetch the configuration topology from configuration data store to verify the node is still in the data store + ${resp} = RequestsLibrary.Get Request session ${CONFIG_TOPO_API} + OVSDB.Log Request ${resp.content} + BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${NODE_LIST} pretty_print_json=True 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 + ${resp} = RequestsLibrary.Delete Request session ${SOUTHBOUND_NODE_CONFIG_API} + BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 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} + @{list} = BuiltIn.Create List ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements Not At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} pretty_print_json=True 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} + @{list} = BuiltIn.Create List ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements Not At URI ${CONFIG_TOPO_API}/topology/ovsdb:1 ${list} pretty_print_json=True 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} "20?" + OVSDB.Connect To Ovsdb Node ${TOOLS_SYSTEM_IP} 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} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${NODE_LIST} pretty_print_json=True 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} + OVSDB.Log Request ${resp.content} + BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${NODE_LIST} pretty_print_json=True + +Create OVSDB NODE HOST1 + [Documentation] This request will create OVSDB NODE HOST1 + OVSDB.Create Ovsdb Node ${TOOLS_SYSTEM_IP} + +Create QOS entry + [Documentation] This request will create QOS entry + OVSDB.Create Qos ${QOS} + +Create Queue entry to the queues list of a ovsdb node + [Documentation] This request will creates Queue entry in the queues list of a ovsdb node + OVSDB.Create Queue ${QUEUE} + +Update existing Queue entry to a OVSDB Node + [Documentation] This request will update the existing queue entry to a OVSDB Node + OVSDB.Create Queue ${queue} + +Update QOS with a Linked queue entry to a OVSDB Node + [Documentation] This request will update the QOS entry with a Linked queue entry to a OVSDB Node + OVSDB.Update Qos ${QOS} + +Get QOS Config Topology with port + [Documentation] This will fetch the configuration topology from configuration data store to verify the QOS is added to the data store + ${resp} = RequestsLibrary.Get Request session ${CONFIG_TOPO_API} + OVSDB.Log Request ${resp.content} + BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} + BuiltIn.Should Contain ${resp.content} ${QOS} + +Get QOS Operational Topology with port + [Documentation] This request will fetch the operational topology from the connected OVSDB nodes to verify the QOS is added to the data store + @{list} = BuiltIn.Create List ${QOS} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} pretty_print_json=True + +Get Queue Config Topology with port + [Documentation] This request will fetch the configuration topology from configuration data store to verify the Queue is added to the data store + ${resp} = RequestsLibrary.Get Request session ${CONFIG_TOPO_API} + OVSDB.Log Request ${resp.content} + BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} + BuiltIn.Should Contain ${resp.content} ${QUEUE} + +Get Queue Operational Topology with port + [Documentation] This request will fetch the operational topology from the connected OVSDB nodes to verify the Queue is added to the data store + @{list} = BuiltIn.Create List ${QUEUE} + BuiltIn.Wait Until Keyword Succeeds 8s 2s Utils.Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} pretty_print_json=True + +Delete a Queue entry from a Qos entry + [Documentation] This request will Delete a Queue entry from a Qos entry + ${resp} = RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:HOST1/ovsdb:qos-entries/${QOS}/queue-list/0/ + BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} + +Delete a QoS entry from a node + [Documentation] This request will Delete a QoS entry from a node. + ${resp} = RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:HOST1/ovsdb:qos-entries/${QOS}/ + BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} + +Delete a Queue entry from an ovsdb node + [Documentation] This request will Delete a Queue entry from an ovsdb node + ${resp} = RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:HOST1/ovsdb:queues/${QUEUE}/ + BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} + +Delete the OVSDB Node HOST1 + [Documentation] This request will delete the OVSDB node + ${resp} = RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:HOST1 + BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} + +Get Config Topology to verify that deleted configurations are cleaned from config datastore + [Documentation] This request will fetch the configuration topology from configuration data store to verify OVSDB NODE is deleted frrom the configuration data store + ${resp} = RequestsLibrary.Get Request session ${CONFIG_TOPO_API} + OVSDB.Log Request ${resp.content} + BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} + BuiltIn.Should Not Contain ${resp.content} ovsdb:HOST1 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 + Utils.Check Karaf Log File Does Not Have Messages ${ODL_SYSTEM_IP} SimpleShardDataTreeCohort.*Unexpected failure in validation phase + [Teardown] Utils.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 + Utils.Check Karaf Log File Does Not Have Messages ${ODL_SYSTEM_IP} Shard.*shard-topology-operational An exception occurred while preCommitting transaction + [Teardown] Utils.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 +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 + @{uris} = Builtin.Create List ${SOUTHBOUND_NODE_CONFIG_API} + OVSDB.Suite Teardown ${uris}