... other suites.
... It also verify the ability of the odl-controller-test-app to perform
... several activities.
-Suite Setup BuiltIn.Run_Keywords SetupUtils.Setup_Utils_For_Setup_And_Teardown http_timeout=30
+Suite Setup BuiltIn.Run_Keywords SetupUtils.Setup_Utils_For_Setup_And_Teardown http_timeout=125
... AND DdbCommons.Create_Prefix_Based_Shard_And_Verify
Suite Teardown BuiltIn.Run_Keywords DdbCommons.Remove_Prefix_Based_Shard_And_Verify
... AND SSHLibrary.Close_All_Connections
${ID_PREFIX} prefix-
*** Test Cases ***
-Produce_Transactions_One_Node_Leader
- [Documentation] Produce transactions.
+Get_Prefix_Shard_Role
+ [Documentation] Get prefix shard role.
+ ${all_indices} = ClusterManagement.List_All_Indices
+ FOR ${index} IN @{all_indices}
+ ${role} = ClusterAdmin.Get_Prefix_Shard_Role ${index} ${PREF_BASED_SHARD} ${SHARD_TYPE}
+ END
+
+Subscribe_Listener_To_Leader
+ [Documentation] Subscribe listener to leader.
${all_indices} = ClusterManagement.List_All_Indices
${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${SHARD_NAME} shard_type=${SHARD_TYPE} member_index_list=${all_indices} verify_restconf=False
- ${leader_idx_as_list} = BuiltIn.Create_List ${leader}
- ${leader_ip_as_list} = ClusterManagement.Resolve_IP_Address_For_Members ${leader_idx_as_list}
- MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${leader_ip_as_list} ${leader_idx_as_list} ${ID_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K}
- ${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
- : FOR ${resp} IN @{resp_list}
- \ TemplatedRequests.Check_Status_Code ${resp}
+ MdsalLowlevel.Subscribe_Ddtl ${leader}
+ BuiltIn.Sleep 5s
+ ${copy_matches} = MdsalLowlevel.Unsubscribe_Ddtl_No_Tx ${leader}
+ BuiltIn.Should_Be_True ${copy_matches}
-Produce_Transactions_One_Node_Follower
- [Documentation] Produce transactions.
+Subscribe_Listener_To_Follower
+ [Documentation] Subscribe listener to follower.
${all_indices} = ClusterManagement.List_All_Indices
${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${SHARD_NAME} shard_type=${SHARD_TYPE} member_index_list=${all_indices} verify_restconf=False
${follower_idx} = Collections.Get_From_List ${follower_list} ${0}
- ${follower_idx_as_list} = BuiltIn.Create_List ${follower_idx}
- ${follower_ip_as_list} = ClusterManagement.Resolve_IP_Address_For_Members ${follower_idx_as_list}
- MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${follower_ip_as_list} ${follower_idx_as_list} ${ID_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K}
- ${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
- : FOR ${resp} IN @{resp_list}
- \ TemplatedRequests.Check_Status_Code ${resp}
+ MdsalLowlevel.Subscribe_Ddtl ${follower_idx}
+ BuiltIn.Sleep 5s
+ ${copy_matches} = MdsalLowlevel.Unsubscribe_Ddtl_No_Tx ${follower_idx}
+ BuiltIn.Should_Be_True ${copy_matches}
Become_Prefix_Leader
[Documentation] Make the loeader local and verify.
${all_indices} = ClusterManagement.List_All_Indices
${old_leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name}!! shard_type=${shard_type} member_index_list=${all_indices} verify_restconf=False
${follower1} = Collections.Get_From_List ${follower_list} ${0}
- MdsalLowlevel.Become_Prefix_Leader ${follower1} ${shard_name} ${ID_PREFIX}
- ${leader} ${follower_list} = BuiltIn.Wait_Until_Keyword_Succeeds 30s 3s ClusterManagement.Verify_Shard_Leader_Elected ${shard_name}!!
+ MdsalLowlevel.Become_Prefix_Leader ${follower1} ${shard_name}
+ ${leader} ${follower_list} = BuiltIn.Wait_Until_Keyword_Succeeds 60s 5s ClusterManagement.Verify_Shard_Leader_Elected ${shard_name}!!
... ${shard_type} ${True} ${old_leader} member_index_list=${EMPTY}
BuiltIn.Should_Be_Equal_As_Numbers ${follower1} ${leader}
${all_indices} = ClusterManagement.List_All_Indices
${old_leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name}!! shard_type=${shard_type} member_index_list=${all_indices} verify_restconf=False
ClusterAdmin.Remove_Prefix_Shard_Replica ${old_leader} ${shard_name} member-${old_leader} ${shard_type}
- BuiltIn.Wait_Until_Keyword_Succeeds 60s 3s Verify_Shard_Replica_Removed ${old_leader} ${shard_name}!! ${shard_type}
- ${actual_leader} ${actual_follower_list} = BuiltIn.Wait_Until_Keyword_Succeeds 60s 3s ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name}!!
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 5s Verify_Shard_Replica_Not_Present ${old_leader} ${shard_name}!! ${shard_type}
+ ${actual_leader} ${actual_follower_list} = BuiltIn.Wait_Until_Keyword_Succeeds 60s 5s ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name}!!
... verify_restconf=False shard_type=${shard_type} member_index_list=${follower_list}
BuiltIn.Should_Not_Be_Equal_As_Numbers ${old_leader} ${actual_leader}
- ClusterAdmin.Add_Prefix_Shard_Replica ${old_leader} ${shard_name} ${shard_type}
- BuiltIn.Wait_Until_Keyword_Succeeds 60s 3s ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name}!! shard_type=${shard_type} member_index_list=${all_indices}
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 5s ClusterAdmin.Add_Prefix_Shard_Replica ${old_leader} ${shard_name} ${shard_type}
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 5s ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name}!! shard_type=${shard_type} member_index_list=${all_indices}
... verify_restconf=False
Remove_Follower_Prefix_Shard_Replica_And_Add_It_Back
${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name}!! shard_type=${shard_type} member_index_list=${all_indices} verify_restconf=False
${follower1} = Collections.Get_From_List ${follower_list} ${0}
ClusterAdmin.Remove_Prefix_Shard_Replica ${follower1} ${shard_name} member-${follower1} ${shard_type}
- BuiltIn.Wait_Until_Keyword_Succeeds 60s 3s DdbCommons.Verify_Shard_Replica_Removed ${follower1} ${shard_name}!! ${shard_type}
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 5s DdbCommons.Verify_Shard_Replica_Not_Present ${follower1} ${shard_name}!! ${shard_type}
${new_indices_list} = ClusterManagement.List_Indices_Minus_Member ${follower1}
ClusterManagement.Verify_Shard_Leader_Elected ${shard_name}!! ${shard_type} ${False} ${leader} member_index_list=${new_indices_list}
- ClusterAdmin.Add_Prefix_Shard_Replica ${follower1} ${shard_name} ${shard_type}
- BuiltIn.Wait_Until_Keyword_Succeeds 60s 3s ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name}!! shard_type=${shard_type} member_index_list=${all_indices}
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 5s ClusterAdmin.Add_Prefix_Shard_Replica ${follower1} ${shard_name} ${shard_type}
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 5s ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${shard_name}!! shard_type=${shard_type} member_index_list=${all_indices}
... verify_restconf=False
-Produce_Transactions
+Produce_Transactions_One_Node_Leader
[Documentation] Produce transactions.
${all_indices} = ClusterManagement.List_All_Indices
- ${all_ip_list} = ClusterManagement.Resolve_IP_Address_For_Members ${all_indices}
- MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${all_ip_list} ${all_indices} ${ID_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K}
+ ${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${SHARD_NAME} shard_type=${SHARD_TYPE} member_index_list=${all_indices} verify_restconf=False
+ ${leader_idx_as_list} = BuiltIn.Create_List ${leader}
+ ${leader_ip_as_list} = ClusterManagement.Resolve_IP_Address_For_Members ${leader_idx_as_list}
+ MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${leader_ip_as_list} ${leader_idx_as_list} ${ID_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K}
${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
- : FOR ${resp} IN @{resp_list}
- \ TemplatedRequests.Check_Status_Code ${resp}
+ FOR ${resp} IN @{resp_list}
+ TemplatedRequests.Check_Status_Code @{resp}[2]
+ END
-Subscribe_Listener_To_Leader
- [Documentation] Subscribe listener to leader.
+Produce_Transactions_One_Node_Follower
+ [Documentation] Produce transactions.
${all_indices} = ClusterManagement.List_All_Indices
${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${SHARD_NAME} shard_type=${SHARD_TYPE} member_index_list=${all_indices} verify_restconf=False
- MdsalLowlevel.Subscribe_Ddtl ${leader}
- BuiltIn.Sleep 5s
- ${copy_matches} = MdsalLowlevel.Unsubscribe_Ddtl ${leader}
- BuiltIn.Should_Be_True ${copy_matches}
+ ${follower_idx} = Collections.Get_From_List ${follower_list} ${0}
+ ${follower_idx_as_list} = BuiltIn.Create_List ${follower_idx}
+ ${follower_ip_as_list} = ClusterManagement.Resolve_IP_Address_For_Members ${follower_idx_as_list}
+ MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${follower_ip_as_list} ${follower_idx_as_list} ${ID_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K}
+ ${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
+ FOR ${resp} IN @{resp_list}
+ TemplatedRequests.Check_Status_Code @{resp}[2]
+ END
-Subscribe_Listener_To_Follower
- [Documentation] Subscribe listener to follower.
+Produce_Transactions
+ [Documentation] Produce transactions.
${all_indices} = ClusterManagement.List_All_Indices
- ${leader} ${follower_list} = ClusterManagement.Get_Leader_And_Followers_For_Shard shard_name=${SHARD_NAME} shard_type=${SHARD_TYPE} member_index_list=${all_indices} verify_restconf=False
- ${follower_idx} = Collections.Get_From_List ${follower_list} ${0}
- MdsalLowlevel.Subscribe_Ddtl ${follower_idx}
- BuiltIn.Sleep 5s
- ${copy_matches} = MdsalLowlevel.Unsubscribe_Ddtl ${follower_idx}
- BuiltIn.Should_Be_True ${copy_matches}
+ ${all_ip_list} = ClusterManagement.Resolve_IP_Address_For_Members ${all_indices}
+ MdsalLowlevelPy.Start_Produce_Transactions_On_Nodes ${all_ip_list} ${all_indices} ${ID_PREFIX} ${DURATION} ${TRANSACTION_RATE_1K}
+ ${resp_list} = MdsalLowlevelPy.Wait_For_Transactions
+ FOR ${resp} IN @{resp_list}
+ TemplatedRequests.Check_Status_Code @{resp}[2]
+ END