Update Robot Framework format - step 5
[integration/test.git] / csit / suites / controller / Clustering_Datastore / car_failover_crud_isolation.robot
index 297312f316d812af143eee662c215bc3846c3569..f3f9706c105067e4a88a79574232c450ded3244c 100644 (file)
@@ -1,49 +1,65 @@
 *** Settings ***
-Documentation     Suite mixing basic operations with isolation of car Leader.
+Documentation       Suite mixing basic operations with isolation of car Leader.
 ...
-...               Copyright (c) 2017 Cisco Systems, Inc. and others. All rights reserved.
+...                 Copyright (c) 2017 Cisco Systems, Inc. and others. All rights reserved.
 ...
-...               This program and the accompanying materials are made available under the
-...               terms of the Eclipse Public License v1.0 which accompanies this distribution,
-...               and is available at http://www.eclipse.org/legal/epl-v10.html
+...                 This program and the accompanying materials are made available under the
+...                 terms of the Eclipse Public License v1.0 which accompanies this distribution,
+...                 and is available at http://www.eclipse.org/legal/epl-v10.html
 ...
 ...
-...               This test isolates the current leader of the "car" shard and then executes CRD
-...               operations on the new leader and a new follower. The isolated member is brought back.
-...               This suite uses 3 different car sets, same size but different starting ID.
+...                 This test isolates the current leader of the "car" shard and then executes CRD
+...                 operations on the new leader and a new follower. The isolated 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.
+...                 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
+...                 All data is deleted at the end of the suite.
+...                 This suite expects car module to have a separate Shard.
+
+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
+
+Suite Setup         Setup
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+
+Default Tags        clustering    carpeople    critical
+
 
 *** Variables ***
-${CAR_ITEMS}      30
-${FOLLOWER_2NODE_START_I}    300
-${LEADER_2NODE_START_I}    200
-${MEMBER_START_TIMEOUT}    300s
-${ORIGINAL_START_I}    100
-${SHARD_TYPE}     config
-${SHARD_NAME}     car
-@{SHARD_NAME_LIST}    ${SHARD_NAME}
-${VAR_DIR}        ${CURDIR}/../../../variables/carpeople/crud
+${CAR_ITEMS}                    30
+${FOLLOWER_2NODE_START_I}       300
+${LEADER_2NODE_START_I}         200
+${MEMBER_START_TIMEOUT}         300s
+${ORIGINAL_START_I}             100
+${SHARD_TYPE}                   config
+${SHARD_NAME}                   car
+@{SHARD_NAME_LIST}              ${SHARD_NAME}
+${VAR_DIR}                      ${CURDIR}/../../../variables/carpeople/crud
+
 
 *** Test Cases ***
 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}
+    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}
+        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
 
 Isolate_Original_Car_Leader
@@ -52,18 +68,38 @@ Isolate_Original_Car_Leader
 
 Wait_For_New_Leader
     [Documentation]    Wait until new car Leader is elected.
-    BuiltIn.Wait_Until_Keyword_Succeeds    30s    2s    ClusterManagement.Verify_Shard_Leader_Elected    ${SHARD_NAME}    ${SHARD_TYPE}    ${True}
-    ...    ${car_leader_index}    member_index_list=${car_follower_indices}
-    CarPeople.Set_Tmp_Variables_For_Shard_For_Nodes    member_index_list=${car_follower_indices}    shard_name=${SHARD_NAME}    shard_type=${SHARD_TYPE}
+    BuiltIn.Wait_Until_Keyword_Succeeds
+    ...    30s
+    ...    2s
+    ...    ClusterManagement.Verify_Shard_Leader_Elected
+    ...    ${SHARD_NAME}
+    ...    ${SHARD_TYPE}
+    ...    ${True}
+    ...    ${car_leader_index}
+    ...    member_index_list=${car_follower_indices}
+    CarPeople.Set_Tmp_Variables_For_Shard_For_Nodes
+    ...    member_index_list=${car_follower_indices}
+    ...    shard_name=${SHARD_NAME}
+    ...    shard_type=${SHARD_TYPE}
 
 See_Original_Cars_On_New_Leader
     [Documentation]    GET cars from new Leader, should be the initial ones.
-    TemplatedRequests.Get_As_Json_Templated    folder=${VAR_DIR}/cars    session=${new_leader_session}    verify=True    iterations=${CAR_ITEMS}    iter_start=${ORIGINAL_START_I}
+    TemplatedRequests.Get_As_Json_Templated
+    ...    folder=${VAR_DIR}/cars
+    ...    session=${new_leader_session}
+    ...    verify=True
+    ...    iterations=${CAR_ITEMS}
+    ...    iter_start=${ORIGINAL_START_I}
 
 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}
+        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
@@ -72,16 +108,30 @@ Delete_Original_Cars_On_New_Leader
 
 Add_Leader_Cars_On_New_Leader
     [Documentation]    Add cars on the new Leader.
-    TemplatedRequests.Put_As_Json_Templated    folder=${VAR_DIR}/cars    session=${new_leader_session}    iterations=${CAR_ITEMS}    iter_start=${LEADER_2NODE_START_I}
+    TemplatedRequests.Put_As_Json_Templated
+    ...    folder=${VAR_DIR}/cars
+    ...    session=${new_leader_session}
+    ...    iterations=${CAR_ITEMS}
+    ...    iter_start=${LEADER_2NODE_START_I}
 
 See_Leader_Cars_On_New_Leader
     [Documentation]    GET cars from new Leader, should be the new ones.
-    TemplatedRequests.Get_As_Json_Templated    folder=${VAR_DIR}/cars    session=${new_leader_session}    verify=True    iterations=${CAR_ITEMS}    iter_start=${LEADER_2NODE_START_I}
+    TemplatedRequests.Get_As_Json_Templated
+    ...    folder=${VAR_DIR}/cars
+    ...    session=${new_leader_session}
+    ...    verify=True
+    ...    iterations=${CAR_ITEMS}
+    ...    iter_start=${LEADER_2NODE_START_I}
 
 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}
+        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
@@ -90,31 +140,56 @@ Delete_Leader_Cars_On_New_First_Follower
 
 Add_Follower_Cars_On_New_First_Follower
     [Documentation]    Add cars on the new first Follower.
-    TemplatedRequests.Put_As_Json_Templated    folder=${VAR_DIR}/cars    session=${new_first_follower_session}    iterations=${CAR_ITEMS}    iter_start=${FOLLOWER_2NODE_START_I}
+    TemplatedRequests.Put_As_Json_Templated
+    ...    folder=${VAR_DIR}/cars
+    ...    session=${new_first_follower_session}
+    ...    iterations=${CAR_ITEMS}
+    ...    iter_start=${FOLLOWER_2NODE_START_I}
 
 See_Folower_Cars_On_New_Leader
     [Documentation]    Get cars from the new Leader, should be the ones added on follower.
-    TemplatedRequests.Get_As_Json_Templated    folder=${VAR_DIR}/cars    session=${new_leader_session}    verify=True    iterations=${CAR_ITEMS}    iter_start=${FOLLOWER_2NODE_START_I}
+    TemplatedRequests.Get_As_Json_Templated
+    ...    folder=${VAR_DIR}/cars
+    ...    session=${new_leader_session}
+    ...    verify=True
+    ...    iterations=${CAR_ITEMS}
+    ...    iter_start=${FOLLOWER_2NODE_START_I}
 
 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}
+        TemplatedRequests.Get_As_Json_Templated
+        ...    folder=${VAR_DIR}/cars
+        ...    session=${session}
+        ...    verify=True
+        ...    iterations=${CAR_ITEMS}
+        ...    iter_start=${FOLLOWER_2NODE_START_I}
     END
 
 Rejoin_Old_Car_Leader
     [Documentation]    Rejoin the isolated member without deleting the persisted data.
     ClusterManagement.Rejoin_Member_From_List_Or_All    ${car_leader_index}
-    BuiltIn.Wait_Until_Keyword_Succeeds    30s    2s    ClusterManagement.Verify_Leader_Exists_For_Each_Shard    shard_name_list=${SHARD_NAME_LIST}    shard_type=config
+    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
     [Documentation]    GET cars from the restarted member, should be the ones added on follower.
-    TemplatedRequests.Get_As_Json_Templated    folder=${VAR_DIR}/cars    session=${car_leader_session}    verify=True    iterations=${CAR_ITEMS}    iter_start=${FOLLOWER_2NODE_START_I}
+    TemplatedRequests.Get_As_Json_Templated
+    ...    folder=${VAR_DIR}/cars
+    ...    session=${car_leader_session}
+    ...    verify=True
+    ...    iterations=${CAR_ITEMS}
+    ...    iter_start=${FOLLOWER_2NODE_START_I}
 
 Delete_Follower_Cars_On_New_Leader
     [Documentation]    Delete cars on the last Leader.
     TemplatedRequests.Delete_Templated    folder=${VAR_DIR}/cars    session=${new_leader_session}
 
+
 *** Keywords ***
 Setup
     [Documentation]    Initialize resources, memorize car shard leader and followers.