X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fovsdb%2FSouthbound_Domain%2FBug_Validation.robot;h=7b9fe519b0e7e1b322c62f1894a8223baf8ae732;hb=HEAD;hp=8d80ff535c8cb57b39c685af861cf3e1525b69dd;hpb=39de3404b2681d425af82a66f7f665ecd4a2da3a;p=integration%2Ftest.git diff --git a/csit/suites/ovsdb/Southbound_Domain/Bug_Validation.robot b/csit/suites/ovsdb/Southbound_Domain/Bug_Validation.robot index 8d80ff535c..7b9fe519b0 100644 --- a/csit/suites/ovsdb/Southbound_Domain/Bug_Validation.robot +++ b/csit/suites/ovsdb/Southbound_Domain/Bug_Validation.robot @@ -1,30 +1,36 @@ *** Settings *** -Documentation Collection of test cases to validate OVSDB projects bugs. -... -... TODO: there seems to be some thoughts around never having one-off bug reproduction -... test cases, but rather they should exist as another test case in some appropriate -... suite. Also it was suggested that using bug ids for test case names was not ideal -... this to-do is written in case it's decided to refactor all of these test cases out -... of this suite and/or to rename the test cases at a later time. -Suite Setup Suite Setup -Suite Teardown Suite Teardown -Test Setup Test Setup -Test Teardown Test Teardown -Force Tags Southbound -Library OperatingSystem -Library RequestsLibrary -Library String -Resource ../../../libraries/KarafKeywords.robot -Resource ../../../libraries/OVSDB.robot -Resource ../../../libraries/SetupUtils.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/WaitForFailure.robot -Resource ../../../variables/Variables.robot +Documentation Collection of test cases to validate OVSDB projects bugs. +... +... TODO: there seems to be some thoughts around never having one-off bug reproduction +... test cases, but rather they should exist as another test case in some appropriate +... suite. Also it was suggested that using bug ids for test case names was not ideal +... this to-do is written in case it's decided to refactor all of these test cases out +... of this suite and/or to rename the test cases at a later time. + +Library OperatingSystem +Library RequestsLibrary +Library String +Resource ../../../libraries/KarafKeywords.robot +Resource ../../../libraries/OVSDB.robot +Resource ../../../libraries/SetupUtils.robot +Resource ../../../libraries/Utils.robot +Resource ../../../libraries/WaitForFailure.robot +Resource ../../../variables/Variables.robot +Resource ../../../variables/ovsdb/Variables.robot + +Suite Setup Suite Setup +Suite Teardown Suite Teardown +Test Setup Test Setup +Test Teardown Test Teardown + +Force Tags southbound + *** Variables *** -${BRIDGE} ovsbug_br -${OVSDB_UUID} ${EMPTY} -${OVSDB_UUID2} ${EMPTY} +${BRIDGE} ovsbug_br +${OVSDB_UUID} ${EMPTY} +${OVSDB_UUID2} ${EMPTY} + *** Test Cases *** Bug 7414 Same Endpoint Name @@ -36,7 +42,9 @@ Bug 7414 Same Endpoint Name ${bridge} = BuiltIn.Set Variable ovsbug_br_7414 # connect two ovs Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT} - Utils.Run Command On Mininet ${TOOLS_SYSTEM_2_IP} sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT} + Utils.Run Command On Mininet + ... ${TOOLS_SYSTEM_2_IP} + ... sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT} BuiltIn.Wait Until Keyword Succeeds 5s 1s OVSDB.Verify OVS Reports Connected ${TOOLS_SYSTEM_IP} BuiltIn.Wait Until Keyword Succeeds 5s 1s OVSDB.Verify OVS Reports Connected ${TOOLS_SYSTEM_2_IP} # add brtest to both @@ -45,10 +53,20 @@ Bug 7414 Same Endpoint Name # send one rest request to create a TP endpoint on each ovs (same name) ${body} = OVSDB.Modify Multi Port Body vtep1 vtep1 ${bridge} # check that each ovs has the correct endpoint - BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify TEP Creation on OVS ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} - BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify TEP Creation on OVS ${TOOLS_SYSTEM_2_IP} ${TOOLS_SYSTEM_IP} + BuiltIn.Wait Until Keyword Succeeds + ... 60s + ... 10s + ... Verify TEP Creation on OVS + ... ${TOOLS_SYSTEM_IP} + ... ${TOOLS_SYSTEM_2_IP} + BuiltIn.Wait Until Keyword Succeeds + ... 60s + ... 10s + ... Verify TEP Creation on OVS + ... ${TOOLS_SYSTEM_2_IP} + ... ${TOOLS_SYSTEM_IP} [Teardown] BuiltIn.Run Keywords Test Teardown - ... AND RequestsLibrary.Delete Request session ${CONFIG_TOPO_API} data=${body} + ... AND RequestsLibrary.DELETE On Session session url=${RFC8040_TOPO_API} data=${body} expected_status=anything Bug 7414 Different Endpoint Name [Documentation] This test case is supplemental to the other test case for bug 7414. Even when the other @@ -62,7 +80,9 @@ Bug 7414 Different Endpoint Name ${bridge} = BuiltIn.Set Variable ovsbug_br_7414 # connect two ovs Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT} - Utils.Run Command On Mininet ${TOOLS_SYSTEM_2_IP} sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT} + Utils.Run Command On Mininet + ... ${TOOLS_SYSTEM_2_IP} + ... sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT} BuiltIn.Wait Until Keyword Succeeds 5s 1s OVSDB.Verify OVS Reports Connected ${TOOLS_SYSTEM_IP} BuiltIn.Wait Until Keyword Succeeds 5s 1s OVSDB.Verify OVS Reports Connected ${TOOLS_SYSTEM_2_IP} # add brtest to both @@ -71,10 +91,20 @@ Bug 7414 Different Endpoint Name # send one rest request to create a TP endpoint on each ovs (different name) ${body} = OVSDB.Modify Multi Port Body vtep1 vtep2 ${bridge} # check that each ovs has the correct endpoint - BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify TEP Creation on OVS ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} - BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify TEP Creation on OVS ${TOOLS_SYSTEM_2_IP} ${TOOLS_SYSTEM_IP} + BuiltIn.Wait Until Keyword Succeeds + ... 60s + ... 10s + ... Verify TEP Creation on OVS + ... ${TOOLS_SYSTEM_IP} + ... ${TOOLS_SYSTEM_2_IP} + BuiltIn.Wait Until Keyword Succeeds + ... 60s + ... 10s + ... Verify TEP Creation on OVS + ... ${TOOLS_SYSTEM_2_IP} + ... ${TOOLS_SYSTEM_IP} [Teardown] BuiltIn.Run Keywords Test Teardown - ... AND RequestsLibrary.Delete Request session ${CONFIG_TOPO_API} data=${body} + ... AND RequestsLibrary.DELETE On Session session url=${RFC8040_TOPO_API} data=${body} expected_status=anything Bug 5221 [Documentation] In the case that an ovs node is rebooted, or the ovs service is @@ -86,18 +116,46 @@ Bug 5221 OVSDB.Connect To OVSDB Node ${TOOLS_SYSTEM_IP} BuiltIn.Wait Until Keyword Succeeds 5s 1s OVSDB.Verify OVS Reports Connected @{list} = BuiltIn.Create List ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_NODE_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 - OVSDB.Add Bridge To Ovsdb Node ${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT} ${TOOLS_SYSTEM_IP} ${bridge} 0000000000005221 + BuiltIn.Wait Until Keyword Succeeds + ... 8s + ... 2s + ... Utils.Check For Elements At URI + ... ${RFC8040_OPERATIONAL_TOPO_OVSDB1_API} + ... ${list} + ... pretty_print_json=True + OVSDB.Add Bridge To Ovsdb Node + ... ${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT} + ... ${TOOLS_SYSTEM_IP} + ... ${bridge} + ... 0000000000005221 @{list} = BuiltIn.Create List ovsdb://${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT}/bridge/${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 + BuiltIn.Wait Until Keyword Succeeds + ... 8s + ... 2s + ... Utils.Check For Elements At URI + ... ${RFC8040_OPERATIONAL_TOPO_OVSDB1_API} + ... ${list} + ... pretty_print_json=True Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo /usr/share/openvswitch/scripts/ovs-ctl stop - 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 + BuiltIn.Wait Until Keyword Succeeds + ... 8s + ... 2s + ... Utils.Check For Elements Not At URI + ... ${RFC8040_OPERATIONAL_TOPO_OVSDB1_API} + ... ${list} + ... pretty_print_json=True Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo /usr/share/openvswitch/scripts/ovs-ctl start # Depending on when the retry timers are firing, it may take some 10s of seconds to reconnect, so setting to 30 to cover that. - BuiltIn.Wait Until Keyword Succeeds 30s 2s Utils.Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/ovsdb:1 ${list} pretty_print_json=True + BuiltIn.Wait Until Keyword Succeeds + ... 30s + ... 2s + ... Utils.Check For Elements At URI + ... ${RFC8040_OPERATIONAL_TOPO_OVSDB1_API} + ... ${list} + ... pretty_print_json=True [Teardown] BuiltIn.Run Keywords Test Teardown - ... AND RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${TOOLS_SYSTEM_IP}:6634%2Fbridge%2F${bridge} - ... AND RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${TOOLS_SYSTEM_IP}:6634 + ... AND RequestsLibrary.DELETE On Session session url=${RFC8040_SOUTHBOUND_NODE_TOOLS_API}%2Fbridge%2F${bridge} expected_status=anything + ... AND RequestsLibrary.DELETE On Session session url=${RFC8040_SOUTHBOUND_NODE_TOOLS_API} expected_status=anything Bug 5177 [Documentation] This test case will recreate the bug using the same basic steps as @@ -114,13 +172,18 @@ Bug 5177 BuiltIn.Set Suite Variable ${OVSDB_UUID} ${node} = BuiltIn.Set Variable uuid/${OVSDB_UUID} OVSDB.Add Bridge To Ovsdb Node ${node} ${TOOLS_SYSTEM_IP} ${BRIDGE} 0000000000005177 - ${resp} = RequestsLibrary.Get Request session ${CONFIG_TOPO_API} - OVSDB.Log Request ${resp.text} - BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 + ${resp} = RequestsLibrary.GET On Session session url=${RFC8040_CONFIG_TOPO_API} expected_status=200 + Utils.Log Content ${resp.text} BuiltIn.Should Contain ${resp.text} ${node}/bridge/${BRIDGE} Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT} @{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 + BuiltIn.Wait Until Keyword Succeeds + ... 8s + ... 2s + ... Utils.Check For Elements At URI + ... ${RFC8040_OPERATIONAL_TOPO_OVSDB1_API} + ... ${list} + ... pretty_print_json=True # Do not cleanup as the next test requires the steps done in this test [Teardown] BuiltIn.Run Keywords Utils.Report_Failure_Due_To_Bug 5177 ... AND OVSDB.Log Config And Operational Topology @@ -136,11 +199,16 @@ Bug 4794 Delete Bridge From Ovsdb Node ${node_id} ${BRIDGE} Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl del-manager # If the exception is seen in karaf.log within 10s, the following line will FAIL, which is the point. - Verify_Keyword_Does_Not_Fail_Within_Timeout 10s 1s Utils.Check Karaf Log File Does Not Have Messages ${ODL_SYSTEM_IP} Shard.*shard-topology-operational An exception occurred while preCommitting transaction + Verify_Keyword_Does_Not_Fail_Within_Timeout + ... 10s + ... 1s + ... Utils.Check Karaf Log File Does Not Have Messages + ... ${ODL_SYSTEM_IP} + ... Shard.*shard-topology-operational An exception occurred while preCommitting transaction # TODO: Bug 5178 [Teardown] BuiltIn.Run Keywords Test Teardown - ... AND RequestsLibrary.Delete Request session ${SOUTHBOUND_CONFIG_API}${node_id}%2Fbridge%2F${BRIDGE} - ... AND RequestsLibrary.Delete Request session ${SOUTHBOUND_CONFIG_API}${node_id} + ... AND RequestsLibrary.DELETE On Session session url=${RFC8040_SOUTHBOUND_NODE_API}${node_id}%2Fbridge%2F${BRIDGE} expected_status=anything + ... AND RequestsLibrary.DELETE On Session session url=${RFC8040_SOUTHBOUND_NODE_API}${node_id} expected_status=anything Bug 8280 [Documentation] Any config created for a bridge (e.g. added ports) should be reconciled when a bridge is @@ -157,7 +225,7 @@ Bug 8280 OVSDB.Add Termination Point uuid/${OVSDB_UUID2} ${BRIDGE} port1 OVSDB.Add Termination Point uuid/${OVSDB_UUID2} ${BRIDGE} port2 ${config_store_elements} = BuiltIn.Create List ${BRIDGE} port1 port2 - Utils.Check For Elements At URI ${CONFIG_TOPO_API} ${config_store_elements} pretty_print_json=True + Utils.Check For Elements At URI ${RFC8040_CONFIG_TOPO_API} ${config_store_elements} pretty_print_json=True ${ovs_output} = Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl show BuiltIn.Log ${ovs_output} ${ovs_output} = Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl del-manager @@ -165,11 +233,11 @@ Bug 8280 OVSDB.Verify Ovs-vsctl Output show Port "port2" ${TOOLS_SYSTEM_IP} False Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT} BuiltIn.Wait Until Keyword Succeeds 5s 1s OVSDB.Verify OVS Reports Connected ${TOOLS_SYSTEM_IP} - Utils.Check For Elements At URI ${CONFIG_TOPO_API} ${config_store_elements} pretty_print_json=True + Utils.Check For Elements At URI ${RFC8040_CONFIG_TOPO_API} ${config_store_elements} pretty_print_json=True BuiltIn.Wait Until Keyword Succeeds 5s 1s Verify Ovs-vsctl Output show Port "port2" [Teardown] BuiltIn.Run Keywords Test Teardown - ... AND RequestsLibrary.Delete Request session ${SOUTHBOUND_CONFIG_API}uuid%2F${OVSDB_UUID2}%2Fbridge%2F${BRIDGE} - ... AND RequestsLibrary.Delete Request session ${SOUTHBOUND_CONFIG_API}uuid%2F${OVSDB_UUID2} + ... AND RequestsLibrary.DELETE On Session session url=${RFC8040_SOUTHBOUND_NODE_API}uuid%2F${OVSDB_UUID2}%2Fbridge%2F${BRIDGE} expected_status=anything + ... AND RequestsLibrary.DELETE On Session session url=${RFC8040_SOUTHBOUND_NODE_API}uuid%2F${OVSDB_UUID2} expected_status=anything Bug 7160 [Documentation] If this bug is reproduced, it's possible that the operational store will be @@ -188,25 +256,39 @@ Bug 7160 OVSDB.Log Config And Operational Topology OVSDB.Create Qos Linked Queue OVSDB.Log Config And Operational Topology - ${resp} RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:HOST1/ovsdb:qos-entries/${qos}/queue-list/0/ + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_HOST1_API}/ovsdb:qos-entries=${qos}/queue-list=0 OVSDB.Log Config And Operational Topology - ${resp} RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:HOST1/ovsdb:qos-entries/${qos}/ + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_HOST1_API}/ovsdb:qos-entries=${qos} OVSDB.Log Config And Operational Topology - ${resp} RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:HOST1/ovsdb:queues/${queue}/ + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_HOST1_API}/ovsdb:queues=${queue} OVSDB.Log Config And Operational Topology - ${resp} RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:HOST1 + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_HOST1_API} OVSDB.Log Config And Operational Topology Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl del-manager - ${node} BuiltIn.Set Variable ovsdb:%2F%2F${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT} - RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/${node} + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_TOOLS_API} OVSDB.Log Config And Operational Topology BuiltIn.Wait Until Keyword Succeeds 5s 1s OVSDB.Config and Operational Topology Should Be Empty + *** Keywords *** Suite Setup SetupUtils.Setup_Utils_For_Setup_And_Teardown KarafKeywords.Open Controller Karaf Console On Background - RequestsLibrary.Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} + RequestsLibrary.Create Session + ... session + ... http://${ODL_SYSTEM_IP}:${RESTCONFPORT} + ... auth=${AUTH} + ... headers=${HEADERS} Clean All Ovs Nodes Utils.Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:${OVSDBPORT} BuiltIn.Wait Until Keyword Succeeds 5s 1s OVSDB.Verify OVS Reports Connected @@ -217,15 +299,30 @@ Suite Teardown [Documentation] Cleans up test environment, close existing sessions. Clean All Ovs Nodes # Best effort to clean config store, by deleting all the types of nodes that are used in this suite - ${node} = BuiltIn.Set Variable ovsdb:%2F%2Fuuid%2F${OVSDB_UUID} - RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/${node}%2Fbridge%2F${BRIDGE} - RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/${node} - ${node} = BuiltIn.Set Variable ovsdb:%2F%2Fuuid%2F${OVSDB_UUID2} - RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/${node}%2Fbridge%2F${BRIDGE} - RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/${node} - ${node} = BuiltIn.Set Variable ovsdb:%2F%2F${TOOLS_SYSTEM_IP}:${OVSDB_NODE_PORT} - RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/${node}%2Fbridge%2F${BRIDGE} - RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/${node} + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_API}uuid%2F${OVSDB_UUID}%2Fbridge%2F${BRIDGE} + ... expected_status=anything + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_API}uuid%2F${OVSDB_UUID} + ... expected_status=anything + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_API}uuid%2F${OVSDB_UUID2}%2Fbridge%2F${BRIDGE} + ... expected_status=anything + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_API}uuid%2F${OVSDB_UUID2} + ... expected_status=anything + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_TOOLS_API}%2Fbridge%2F${BRIDGE} + ... expected_status=anything + RequestsLibrary.DELETE On Session + ... session + ... url=${RFC8040_SOUTHBOUND_NODE_TOOLS_API} + ... expected_status=anything OVSDB.Log Config And Operational Topology Delete All Sessions