Create Bridge 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}.
- # 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=controller1
${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} br01 ${BRIDGE}
${body} Replace String ${body} 61644 ${OVSDB_PORT}
Log ${body}
- ${dictionary}= Create Dictionary ${MININET}=1 ${OVSDBPORT}=4 ${BRIDGE}=1
+ ${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} ${HEADERS}
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
+ ${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}
+ Wait Until Keyword Succeeds 5s 1s Check Item Occurrence At URI In Cluster ${controller_index_list} ${dictionary_operational} ${OPERATIONAL_TOPO_API}
+
+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
+ ${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}
+
+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
+ ${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} ${HEADERS}
+ 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}
+
+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
+ ${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}
Variables ../../../variables/Variables.py
*** Variables ***
-${SOUTHBOUND_CONFIG_API} ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${MININET}:${OVSDBPORT}
${OVSDB_CONFIG_DIR} ${CURDIR}/../../../variables/ovsdb
${BRIDGE} br01
Set Suite Variable ${original_owner}
Set Suite Variable ${original_candidate}
-Create Bridge In Owner and Verify Before Fail
+Create Bridge Manually In Owner and Verify Before Fail
+ [Documentation] Create Bridge in Owner and verify it gets applied from all instances.
+ Create Bridge Manually And Verify ${original_cluster_list} ${original_owner}
+
+Add Port Manually In Owner and Verify Before Fail
+ [Documentation] Add Port in Owner and verify it gets applied from all instances.
+ Add Port To The Manual Bridge And Verify ${original_cluster_list} ${original_owner}
+
+Create Bridge Via Controller In Owner and Verify Before Fail
+ [Documentation] Create Bridge in Owner and verify it gets applied from all instances.
+ Create Bridge And Verify ${original_cluster_list} ${original_owner}
+
+Delete the Bridge In Owner and Verify Before Fail
+ [Documentation] This request will delete the bridge node from the operational data store.
+ Delete Bridge Manually And Verify ${original_cluster_list} ${original_owner}
+
+Delete Bridge Via Rest Call And Verify In Owner Before Fail
+ [Documentation] This request will delete the bridge node from the config data store and operational data store.
+ Delete Bridge Via Rest Call And Verify ${original_cluster_list} ${original_owner}
+
+Kill Owner Instance
+ [Documentation] Kill Owner Instance and verify it is dead
+ Kill Multiple Controllers ${original_owner}
+ ${new_cluster_list} Create Controller Index List
+ Remove Values From List ${new_cluster_list} ${original_owner}
+ Set Suite Variable ${new_cluster_list}
+
+Check Shards Status After Fail
+ [Documentation] Create original cluster list and check Status for all shards in Ovsdb application.
+ Wait Until Keyword Succeeds 10s 1s Check Ovsdb Shards Status ${new_cluster_list}
+
+Check Entity Owner Status And Find Owner and Candidate After Fail
+ [Documentation] Check Entity Owner Status and identify owner and candidate.
+ ${new_owner} ${new_candidates_list} Wait Until Keyword Succeeds 10s 1s Get Ovsdb Entity Owner Status For One Device ${new_cluster_list}
+ ${new_candidate}= Get From List ${new_candidates_list} 0
+ Set Suite Variable ${new_owner}
+ Set Suite Variable ${new_candidate}
+
+Create Bridge Manually In Owner and Verify After Fail
+ [Documentation] Create Bridge in Owner and verify it gets applied from all instances.
+ Create Bridge Manually And Verify ${new_cluster_list} ${new_owner}
+
+Add Port Manually In Owner and Verify After Fail
+ [Documentation] Add Port in Owner and verify it gets applied from all instances.
+ Add Port To The Manual Bridge And Verify ${original_cluster_list} ${original_owner}
+
+Create Bridge Via Controller In Owner and Verify After Fail
+ [Documentation] Create Bridge in Owner and verify it gets applied from all instances.
+ Create Bridge And Verify ${new_cluster_list} ${new_owner}
+
+Delete the Bridge In Owner and Verify After Fail
+ [Documentation] This request will delete the bridge node from the config data store and operational data store.
+ Delete Bridge Manually And Verify ${new_cluster_list} ${new_owner}
+
+Delete Bridge Via Rest Call And Verify In Owner After Fail
+ [Documentation] This request will delete the bridge node from the config data store and operational data store.
+ Delete Bridge Via Rest Call And Verify ${new_cluster_list} ${new_owner}
+
+Start Old Owner Instance
+ [Documentation] Start Owner Instance and verify it is active
+ Start Multiple Controllers 300s ${original_owner}
+
+Check Shards Status After Recover
+ [Documentation] Create original cluster list and check Status for all shards in Ovsdb application.
+ Wait Until Keyword Succeeds 10s 1s Check Ovsdb Shards Status ${original_cluster_list}
+
+Check Entity Owner Status After Recover
+ [Documentation] Check Entity Owner Status and identify owner and candidate.
+ ${new_owner} ${new_candidates_list} Wait Until Keyword Succeeds 10s 1s Get Ovsdb Entity Owner Status For One Device ${original_cluster_list}
+ Set Suite Variable ${new_owner}
+
+Create Bridge Manually In Owner and Verify After Recover
+ [Documentation] Create Bridge in Owner and verify it gets applied from all instances.
+ Create Bridge Manually And Verify ${original_cluster_list} ${new_owner}
+
+Add Port Manually In Owner and Verify After Recover
+ [Documentation] Add Port in Owner and verify it gets applied from all instances.
+ Add Port To The Manual Bridge And Verify ${original_cluster_list} ${original_owner}
+
+Create Bridge Via Controller In Owner and Verify After Recover
+ [Documentation] Create Bridge in Owner and verify it gets applied from all instances.
+ Create Bridge And Verify ${original_cluster_list} ${new_owner}
+
+Delete the Bridge In Owner and Verify After Recover
+ [Documentation] This request will delete the bridge node from the operational data store.
+ Delete Bridge Manually And Verify ${original_cluster_list} ${new_owner}
+
+Delete Bridge Via Rest Call And Verify In Owner After Recover
+ [Documentation] This request will delete the bridge node from the config data store and operational data store.
+ Delete Bridge Via Rest Call And Verify ${original_cluster_list} ${new_owner}
+
+Create Bridge Via Controller In Old Owner and Verify After Recover
[Documentation] Create Bridge in Owner and verify it gets applied from all instances.
Create Bridge And Verify ${original_cluster_list} ${original_owner}
[Teardown] Report_Failure_Due_To_Bug 4908