X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FClusterOvsdb.robot;h=77c39cebca3eb1fa826908dbacdc3a96d98d4552;hb=026e7e3bd08f0457d8840cd6e5134ffbdcd789dd;hp=945ac7f7ecf5c439ee15bc1a05d5dd3bf3050d41;hpb=e32b9850edcf465ef63b2d4fd4c77853c2a9e784;p=integration%2Ftest.git diff --git a/csit/libraries/ClusterOvsdb.robot b/csit/libraries/ClusterOvsdb.robot index 945ac7f7ec..77c39cebca 100644 --- a/csit/libraries/ClusterOvsdb.robot +++ b/csit/libraries/ClusterOvsdb.robot @@ -26,7 +26,7 @@ Check Ovsdb Shards Status After Cluster Event Get Ovsdb Entity Owner Status For One Device [Arguments] ${controller_index_list} [Documentation] Check Entity Owner Status and identify owner and candidate. - ${owner} ${candidates_list} Wait Until Keyword Succeeds 10s 1s Get Cluster Entity Owner For Ovsdb ${controller_index_list} + ${owner} ${candidates_list} Wait Until Keyword Succeeds 20s 1s Get Cluster Entity Owner For Ovsdb ${controller_index_list} ... ovsdb ovsdb:1 [Return] ${owner} ${candidates_list} @@ -65,28 +65,32 @@ Get Cluster Entity Owner For Ovsdb [Return] ${owner} ${candidates_list} Create Bridge And Verify - [Arguments] ${controller_index_list} ${controller_index} + [Arguments] ${controller_index_list} ${controller_index} ${status}=${NONE} [Documentation] Create bridge in ${controller_index} and verify it gets applied in all instances in ${controller_index_list}. - # need to get UUID which should be the same on all controllers in cluster, so asking controller1 + # need to get UUID which should be the same on all controllers in cluster, so asking controller1 ${ovsdb_uuid}= Get OVSDB UUID controller_http_session=controller${controller_index} + Set Suite Variable ${ovsdb_uuid} ${body}= OperatingSystem.Get File ${CURDIR}/../variables/ovsdb/create_bridge_3node.json ${body} Replace String ${body} ovsdb://127.0.0.1:61644 ovsdb://uuid/${ovsdb_uuid} ${body} Replace String ${body} tcp:controller1:6633 tcp:${ODL_SYSTEM_1_IP}:6640 ${body} Replace String ${body} tcp:controller2:6633 tcp:${ODL_SYSTEM_2_IP}:6640 ${body} Replace String ${body} tcp:controller3:6633 tcp:${ODL_SYSTEM_3_IP}:6640 - ${body} Replace String ${body} 127.0.0.1 ${MININET} + ${body} Replace String ${body} 127.0.0.1 ${TOOLS_SYSTEM_IP} + ${BRIDGE}= Set Variable If "${status}"=="AfterFail" br02 br01 + Log ${BRIDGE} ${body} Replace String ${body} br01 ${BRIDGE} ${body} Replace String ${body} 61644 ${OVSDB_PORT} Log ${body} ${TOOLS_SYSTEM_IP1} Replace String ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_IP} "${TOOLS_SYSTEM_IP}" ${dictionary}= Create Dictionary ${TOOLS_SYSTEM_IP1}=1 ${OVSDBPORT}=4 ${BRIDGE}=1 - Put And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE} ${body} + Wait Until Keyword Succeeds 20s 1s Put And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE} + ... ${body} Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid} Create Bridge Manually And Verify [Arguments] ${controller_index_list} ${controller_index} [Documentation] Create bridge in ${controller_index} and verify it gets applied in all instances in ${controller_index_list}. - Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl add-br br-s1 + Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl add-br br-s1 ${dictionary_operational}= Create Dictionary br-s1=5 ${dictionary_config}= Create Dictionary br-s1=0 Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary_config} ${CONFIG_TOPO_API} @@ -95,7 +99,7 @@ Create Bridge Manually And Verify Delete Bridge Manually And Verify [Arguments] ${controller_index_list} ${controller_index} [Documentation] Delete bridge in ${controller_index} and verify it gets applied in all instances in ${controller_index_list}. - Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl del-br br-s1 + Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl del-br br-s1 ${dictionary}= Create Dictionary br-s1=0 Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API} @@ -103,16 +107,131 @@ Delete Bridge Via Rest Call And Verify [Arguments] ${controller_index_list} ${controller_index} [Documentation] Delete bridge in ${controller_index} and verify it gets applied in all instances in ${controller_index_list}. # need to get UUID which should be the same on all controllers in cluster, so asking controller1 - ${ovsdb_uuid}= Get OVSDB UUID controller_http_session=controller1 + ${ovsdb_uuid}= Get OVSDB UUID controller_http_session=controller${controller_index} ${dictionary}= Create Dictionary ${BRIDGE}=0 - Delete And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE} + Wait Until Keyword Succeeds 20s 1s Delete And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE} Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid} +Create Port Via Controller + [Arguments] ${controller_index_list} ${controller_index} ${status}=${NONE} + [Documentation] This will add port/interface to the config datastore + ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port_3node.json + ${body} Replace String ${sample} 192.168.1.10 ${TOOLS_SYSTEM_IP} + Log ${body} + ${BRIDGE}= Set Variable If "${status}"=="AfterFail" br02 br01 + Log ${BRIDGE} + Log URL is ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE}/termination-point/vx2/ + ${port_dictionary}= Create Dictionary ${BRIDGE}=7 vx2=3 + Put And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE}/termination-point/vx2/ ${body} + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${port_dictionary} ${OPERATIONAL_TOPO_API} + +Modify the destination IP of Port + [Arguments] ${controller_index_list} ${controller_index} ${status}=${NONE} + [Documentation] This will modify the dst ip of existing port + ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port_3node.json + ${body} Replace String ${sample} 192.168.1.10 10.0.0.19 + ${BRIDGE}= Set Variable If "${status}"=="AfterFail" br02 br01 + Log URL is ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE}/termination-point/vx2/ + Log ${body} + Put And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE}/termination-point/vx2/ ${body} + +Delete Port And Verify + [Arguments] ${controller_index_list} ${controller_index} ${status}=${NONE} + [Documentation] Delete port in ${controller_index} and verify it gets applied in all instances in ${controller_index_list}. + ${dictionary}= Create Dictionary vx2=0 + ${BRIDGE}= Set Variable If "${status}"=="AfterFail" br02 br01 + Delete And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE}/termination-point/vx2/ + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API} + Add Port To The Manual Bridge And Verify [Arguments] ${controller_index_list} ${controller_index} [Documentation] Add Port in ${controller_index} and verify it gets applied in all instances in ${controller_index_list}. - Run Command On Remote System ${TOOLS_SYSTEM_IP} sudo ovs-vsctl add-port br-s1 vx1 -- set Interface vx1 type=vxlan + Run Command On Mininet ${TOOLS_SYSTEM_IP} sudo ovs-vsctl add-port br-s1 vx1 -- set Interface vx1 type=vxlan ${dictionary_operational}= Create Dictionary vx1=2 ${dictionary_config}= Create Dictionary vx1=0 Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary_config} ${CONFIG_TOPO_API} Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary_operational} ${OPERATIONAL_TOPO_API} + +Get Operational Topology with modified Port + [Arguments] ${controller_index_list} ${controller_index} ${status}=${NONE} + [Documentation] This request will fetch the operational topology after the Port is added to the bridge + ${port_dictionary_before_fail} Create Dictionary br01=7 vx2=3 10.0.0.19=1 + ${port_dictionary_after_fail} Create Dictionary br02=7 vx2=3 10.0.0.19=1 + ${port_dictionary}= Set Variable If "${status}"=="AfterFail" ${port_dictionary_after_fail} ${port_dictionary_before_fail} + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${port_dictionary} ${OPERATIONAL_TOPO_API} + +Verify Bridge in Restarted Node + [Arguments] ${controller_index_list} ${status}=${NONE} + [Documentation] Verify Bridge in Restarted node, which is created when the node is down. + ${BRIDGE}= Set Variable If "${status}"=="AfterCandidateRecover" br04 br02 + ${dictionary} Create Dictionary ${BRIDGE}=6 + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API} + +Verify Port in Restarted Node + [Arguments] ${controller_index_list} ${status}=${NONE} + [Documentation] Verify Port in Restarted node, which is created when the node is down. + ${BRIDGE}= Set Variable If "${status}"=="AfterCandidateRecover" br04 br02 + ${dictionary} Create Dictionary ${BRIDGE}=6 vx2=3 + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API} + +Create Bridge In Candidate + [Arguments] ${controller_index_list} ${controller_index} ${status}=${NONE} + [Documentation] Create bridge in ${controller_index} and verify it gets applied in all instances in ${controller_index_list}. + # need to get UUID which should be the same on all controllers in cluster, so asking controller1 + ${ovsdb_uuid}= Get OVSDB UUID controller_http_session=controller${controller_index} + Set Suite Variable ${ovsdb_uuid} + ${body}= OperatingSystem.Get File ${CURDIR}/../variables/ovsdb/create_bridge_3node.json + ${body} Replace String ${body} ovsdb://127.0.0.1:61644 ovsdb://uuid/${ovsdb_uuid} + ${body} Replace String ${body} tcp:controller1:6633 tcp:${ODL_SYSTEM_1_IP}:6640 + ${body} Replace String ${body} tcp:controller2:6633 tcp:${ODL_SYSTEM_2_IP}:6640 + ${body} Replace String ${body} tcp:controller3:6633 tcp:${ODL_SYSTEM_3_IP}:6640 + ${body} Replace String ${body} 127.0.0.1 ${MININET} + ${BRIDGE}= Set Variable If "${status}"=="AfterCandidateFail" br04 br03 + Log ${BRIDGE} + ${body} Replace String ${body} br01 ${BRIDGE} + ${body} Replace String ${body} 61644 ${OVSDB_PORT} + Log ${body} + ${TOOLS_SYSTEM_IP1} Replace String ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_IP} "${TOOLS_SYSTEM_IP}" + ${dictionary}= Create Dictionary ${TOOLS_SYSTEM_IP1}=1 ${OVSDBPORT}=4 ${BRIDGE}=1 + Wait Until Keyword Succeeds 20s 1s Put And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE} + ... ${body} + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid} + +Create Port Vxlan in Candidate + [Arguments] ${controller_index_list} ${controller_index} ${status}=${NONE} + [Documentation] This will add port/interface to the config datastore + ${sample} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port_3node.json + ${body} Replace String ${sample} 192.168.1.10 ${TOOLS_SYSTEM_IP} + Log ${body} + ${BRIDGE}= Set Variable If "${status}"=="AfterCandidateFail" br04 br03 + Log ${BRIDGE} + Log URL is ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE}/termination-point/vx2/ + ${port_dictionary}= Create Dictionary ${BRIDGE}=7 vx2=3 + Put And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE}/termination-point/vx2/ ${body} + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${port_dictionary} ${OPERATIONAL_TOPO_API} + +Delete Bridge in Candidate + [Arguments] ${controller_index_list} ${controller_index} ${status}=${NONE} + [Documentation] Delete bridge in ${controller_index} and verify it gets applied in all instances in ${controller_index_list}. + # need to get UUID which should be the same on all controllers in cluster, so asking controller1 + ${ovsdb_uuid}= Get OVSDB UUID controller_http_session=controller${controller_index} + ${BRIDGE}= Set Variable If "${status}"=="AfterCandidateFail" br04 br03 + ${dictionary}= Create Dictionary ${BRIDGE}=0 + Wait Until Keyword Succeeds 20s 1s Delete And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE} + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid} + +Delete Port In Candidate + [Arguments] ${controller_index_list} ${controller_index} ${status}=${NONE} + [Documentation] Delete port in ${controller_index} and verify it gets applied in all instances in ${controller_index_list}. + ${dictionary}= Create Dictionary vx2=0 + ${BRIDGE}= Set Variable If "${status}"=="AfterCandidateFail" br04 br03 + Delete And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid}%2Fbridge%2F${BRIDGE}/termination-point/vx2/ + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API} + +Configure Exit OVSDB Connection + [Arguments] ${controller_index_list} ${controller_index} + [Documentation] Cleans up test environment, close existing sessions. + Clean OVSDB Test Environment ${TOOLS_SYSTEM_IP} + ${dictionary}= Create Dictionary ovsdb://uuid=0 + Delete And Check At URI In Cluster ${controller_index_list} ${controller_index} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2Fuuid%2F${ovsdb_uuid} + Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary} ${OPERATIONAL_TOPO_API}