From: Jamo Luhrsen Date: Mon, 1 May 2017 23:54:21 +0000 (-0700) Subject: BUG 8280: CSIT reproduction X-Git-Tag: release/carbon~106 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F39%2F56339%2F4;p=integration%2Ftest.git BUG 8280: CSIT reproduction Change-Id: I2d10aab725ff43c487c4ecfd185c76ab70c6d821 Signed-off-by: Jamo Luhrsen --- diff --git a/csit/libraries/OVSDB.robot b/csit/libraries/OVSDB.robot index 8dc367e36b..a2e83ac5d0 100644 --- a/csit/libraries/OVSDB.robot +++ b/csit/libraries/OVSDB.robot @@ -56,19 +56,35 @@ Delete Bridge From Ovsdb Node Add Vxlan To Bridge [Arguments] ${mininet_ip} ${bridge_num} ${vxlan_port} ${remote_ip} ${custom_port}=create_port.json [Documentation] This request will create vxlan port for vxlan tunnel and attach it to the specific bridge - ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/${custom_port} - ${body} Replace String ${sample} 192.168.0.21 ${remote_ip} - Log URL is ${SOUTHBOUND_CONFIG_API}${mininet_ip}:${OVSDB_PORT}%2Fbridge%2F${bridge_num}/termination-point/${vxlan_port}/ - Log data: ${body} - ${resp} RequestsLibrary.Put Request session ${SOUTHBOUND_CONFIG_API}${mininet_ip}:${OVSDB_PORT}%2Fbridge%2F${bridge_num}/termination-point/${vxlan_port}/ data=${body} - Log ${resp.content} + Add Termination Point ${mininet_ip}:${OVSDB_PORT} ${bridge_num} ${vxlan_port} ${remote_ip} + +Add Termination Point + [Arguments] ${node_id} ${bridge_name} ${tp_name} ${remote_ip}=${TOOLS_SYSTEM_IP} + [Documentation] Using the json data body file as a template, a REST config request is made to + ... create a termination-point ${tp_name} on ${bridge_name} for the given ${node_id}. The ports + ... remote-ip defaults to ${TOOLS_SYSTEM_IP} + ${body} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port.json + ${body} Replace String ${body} 192.168.0.21 ${remote_ip} + ${body} Replace String ${body} vxlanport ${tp_name} + ${uri}= Set Variable ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${node_id}%2Fbridge%2F${bridge_name} + ${resp} RequestsLibrary.Put Request session ${uri}/termination-point/${tp_name}/ data=${body} Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} Verify OVS Reports Connected [Arguments] ${tools_system}=${TOOLS_SYSTEM_IP} [Documentation] Uses "vsctl show" to check for string "is_connected" - ${output}= Utils.Run Command On Mininet ${tools_system} sudo ovs-vsctl show - Should Contain ${output} is_connected + ${output} Verify Ovs-vsctl Output show is_connected + [Return] ${output} + +Verify Ovs-vsctl Output + [Arguments] ${vsctl_args} ${expected_output} ${ovs_system}=${TOOLS_SYSTEM_IP} ${should_match}=True + [Documentation] A wrapper keyword to make it easier to validate ovs-vsctl output, and gives an easy + ... way to check this output in a WUKS. The argument ${should_match} can control if the match should + ... exist (True} or not (False) or don't care (anything but True or False). ${should_match} is True by default + ${output}= Utils.Run Command On Mininet ${ovs_system} sudo ovs-vsctl ${vsctl_args} + Log ${output} + Run Keyword If "${should_match}"=="True" Should Contain ${output} ${expected_output} + Run Keyword If "${should_match}"=="False" Should Not Contain ${output} ${expected_output} [Return] ${output} Get OVSDB UUID diff --git a/csit/suites/ovsdb/Southbound_Domain/Bug_Validation.robot b/csit/suites/ovsdb/Southbound_Domain/Bug_Validation.robot index bda8292d7a..4b73bc707e 100644 --- a/csit/suites/ovsdb/Southbound_Domain/Bug_Validation.robot +++ b/csit/suites/ovsdb/Southbound_Domain/Bug_Validation.robot @@ -155,6 +155,34 @@ Bug 4794 [Teardown] Run Keywords Clean OVSDB Test Environment ... AND Report_Failure_Due_To_Bug 4794 +Bug 8280 + [Documentation] Any config created for a bridge (e.g. added ports) should be reconciled when a bridge is + ... reconnected. This test case will create two ports via REST and validate that the bridge has those + ... ports. At that point, the bridge will be disconnected from the controller and the 2nd created port + ... will be manually removed. The bridge will be reconnected and the 2nd port should be re-added to the + ... bridge. If not, then bug 8280 will be found and the test case will fail + [Tags] 8280 + [Setup] Run Keywords SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing + ... AND Clean OVSDB Test Environment + Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:6640 + Wait Until Keyword Succeeds 5s 1s Verify OVS Reports Connected ${TOOLS_SYSTEM_IP} + ${ovs_uuid}= Get OVSDB UUID ${TOOLS_SYSTEM_IP} + Create Bridge uuid/${ovs_uuid} ${BRIDGE} + Add Termination Point uuid%2F${ovs_uuid} ${BRIDGE} port1 + Add Termination Point uuid%2F${ovs_uuid} ${BRIDGE} port2 + ${config_store_elements} Create List ${BRIDGE} port1 port2 + Check For Elements At URI ${CONFIG_TOPO_API} ${config_store_elements} + ${ovs_output}= Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl show + Log ${ovs_output} + ${ovs_output}= Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl del-manager + ${ovs_output}= Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl del-port ${BRIDGE} port2 + Verify Ovs-vsctl Output show Port "port2" ${TOOLS_SYSTEM_IP} False + Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:6640 + Wait Until Keyword Succeeds 5s 1s Verify OVS Reports Connected ${TOOLS_SYSTEM_IP} + Check For Elements At URI ${CONFIG_TOPO_API} ${config_store_elements} + Wait Until Keyword Succeeds 5s 1s Verify Ovs-vsctl Output show Port "port2" + [Teardown] RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovs_uuid}%2Fbridge%2F${BRIDGE} + Bug 7160 [Documentation] If this bug is reproduced, it's possible that the operational store will be ... stuck with leftover nodes and further system tests could fail. It's advised to run this