... and is available at http://www.eclipse.org/legal/epl-v10.html
...
...
-... This test kills the current leader of the "car" shard and then executes CRD
-... operations on the new leader and a new follower. The killed member is brought back.
+... This test stops the current leader of the "car" shard and then executes CRD
+... operations on the new leader and a new follower. The stopped member is brought back.
... This suite uses 3 different car sets, same size but different starting ID.
...
... Other models and shards (people, car-people) are not accessed by this suite.
... All data is deleted at the end of the suite.
... This suite expects car module to have a separate Shard.
Suite Setup Setup
+Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
Default Tags clustering carpeople critical
Library Collections
Resource ${CURDIR}/../../../libraries/CarPeople.robot
Resource ${CURDIR}/../../../libraries/ClusterManagement.robot
+Resource ${CURDIR}/../../../libraries/SetupUtils.robot
Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot
Variables ${CURDIR}/../../../variables/Variables.py
${VAR_DIR} ${CURDIR}/../../../variables/carpeople/crud
*** Test Cases ***
-Add_Original_Cars_On_Old_Leader
+Add_Original_Cars_On_Old_Leader_And_Verify
[Documentation] Add initial cars on car Leader.
TemplatedRequests.Put_As_Json_Templated folder=${VAR_DIR}/cars session=${car_leader_session} iterations=${CAR_ITEMS} iter_start=${ORIGINAL_START_I}
+ FOR ${session} IN @{ClusterManagement__session_list}
+ BuiltIn.Wait_Until_Keyword_Succeeds 10s 2s TemplatedRequests.Get_As_Json_Templated folder=${VAR_DIR}/cars session=${session}
+ ... verify=True iterations=${CAR_ITEMS} iter_start=${ORIGINAL_START_I}
+ END
-Kill_Original_Car_Leader
- [Documentation] Kill the car Leader to cause a new leader to get elected.
- ${kill_list} = BuiltIn.Create_List ${car_leader_index}
- ClusterManagement.Kill_Members_From_List_Or_All member_index_list=${kill_list} confirm=True
+Stop_Original_Car_Leader
+ [Documentation] Stop the car Leader to cause a new leader to get elected.
+ ClusterManagement.Stop_Single_Member ${car_leader_index} confirm=True
Wait_For_New_Leader
[Documentation] Wait until new car Leader is elected.
See_Original_Cars_On_New_Followers
[Documentation] The same check on other existing member(s).
- : FOR ${session} IN @{new_follower_sessions}
- \ TemplatedRequests.Get_As_Json_Templated folder=${VAR_DIR}/cars session=${session} verify=True iterations=${CAR_ITEMS} iter_start=${ORIGINAL_START_I}
+ FOR ${session} IN @{new_follower_sessions}
+ TemplatedRequests.Get_As_Json_Templated folder=${VAR_DIR}/cars session=${session} verify=True iterations=${CAR_ITEMS} iter_start=${ORIGINAL_START_I}
+ END
Delete_Original_Cars_On_New_Leader
[Documentation] Delete cars on the new Leader.
See_Leader_Cars_On_New_Followers
[Documentation] The same check on other existing members.
- : FOR ${session} IN @{new_follower_sessions}
- \ TemplatedRequests.Get_As_Json_Templated folder=${VAR_DIR}/cars session=${session} verify=True iterations=${CAR_ITEMS} iter_start=${LEADER_2NODE_START_I}
+ FOR ${session} IN @{new_follower_sessions}
+ TemplatedRequests.Get_As_Json_Templated folder=${VAR_DIR}/cars session=${session} verify=True iterations=${CAR_ITEMS} iter_start=${LEADER_2NODE_START_I}
+ END
Delete_Leader_Cars_On_New_First_Follower
[Documentation] Delete cars in new first Follower.
See_Follower_Cars_On_New_Followers
[Documentation] The same check on other existing members.
- : FOR ${session} IN @{new_follower_sessions}
- \ TemplatedRequests.Get_As_Json_Templated folder=${VAR_DIR}/cars session=${session} verify=True iterations=${CAR_ITEMS} iter_start=${FOLLOWER_2NODE_START_I}
+ FOR ${session} IN @{new_follower_sessions}
+ TemplatedRequests.Get_As_Json_Templated folder=${VAR_DIR}/cars session=${session} verify=True iterations=${CAR_ITEMS} iter_start=${FOLLOWER_2NODE_START_I}
+ END
Start_Old_Car_Leader
- [Documentation] Start the killed member without deleting the persisted data.
- ${revive_list} = BuiltIn.Create_List ${car_leader_index}
- ClusterManagement.Start_Members_From_List_Or_All member_index_list=${revive_list} wait_for_sync=True timeout=${MEMBER_START_TIMEOUT}
+ [Documentation] Start the stopped member without deleting the persisted data.
+ ClusterManagement.Start_Single_Member ${car_leader_index} wait_for_sync=True timeout=${MEMBER_START_TIMEOUT}
BuiltIn.Wait_Until_Keyword_Succeeds 30s 2s ClusterManagement.Verify_Leader_Exists_For_Each_Shard shard_name_list=${SHARD_NAME_LIST} shard_type=config
See_Folower_Cars_On_Old_Leader
*** Keywords ***
Setup
[Documentation] Initialize resources, memorize car shard leader and followers.
- ClusterManagement.ClusterManagement_Setup
+ SetupUtils.Setup_Utils_For_Setup_And_Teardown
CarPeople.Set_Variables_For_Shard shard_name=car
Set_Variables_For_Less_Nodes
${leader_session} = ClusterManagement.Resolve_Http_Session_For_Member member_index=${leader}
BuiltIn.Set_Suite_Variable \${new_leader_session} ${leader_session}
${sessions} = BuiltIn.Create_List
- : FOR ${follower_index} IN @{follower_list}
- \ ${follower_session} = ClusterManagement.Resolve_Http_Session_For_Member member_index=${follower_index}
- \ Collections.Append_To_List ${sessions} ${follower_session}
+ FOR ${follower_index} IN @{follower_list}
+ ${follower_session} = ClusterManagement.Resolve_Http_Session_For_Member member_index=${follower_index}
+ Collections.Append_To_List ${sessions} ${follower_session}
+ END
BuiltIn.Set_Suite_Variable \${new_follower_sessions} ${sessions}
${first_follower_session} = Collections.Get_From_List ${sessions} 0
BuiltIn.Set_Suite_Variable \${new_first_follower_session} ${first_follower_session}