Enhancements to 3-node cluster tests
[integration/test.git] / test / csit / suites / clustering / datastore / 030_car_failover_crud_on_new_leader.txt
1 *** Settings ***
2 Documentation     This test brings down the current leader of the "car" shard and then executes CRUD operations on the new leader
3 Library           ../../../libraries/CrudLibrary.py
4 Library           ../../../libraries/UtilLibrary.py
5 Library           ../../../libraries/ClusterStateLibrary.py
6
7 *** Variables ***
8 ${CAR_SHARD}      shard-car-config
9 ${NUM_CARS}  ${50}
10 ${NUM_ORIG_CARS}  ${10}
11
12 *** Test Cases ***
13 Get old car leader
14     ${OLD_CAR_LEADER}    GetLeader  ${CAR_SHARD}  ${3}  ${3}  ${2}  ${PORT}  ${MEMBER1}  ${MEMBER2}  ${MEMBER3}
15     Should Not Be Equal As Strings   ${OLD_CAR_LEADER}   None
16     Set Suite Variable    ${OLD_CAR_LEADER}
17
18 Delete cars on old leader
19     DeleteAllCars  ${OLD_CAR_LEADER}  ${PORT}  ${0}
20     ${resp}     Getcars   ${OLD_CAR_LEADER}   ${PORT}   ${0}
21     Should Be Equal As Strings    ${resp.status_code}    404
22  
23 Add original cars on old leader
24     ${resp}             AddCar    ${OLD_CAR_LEADER}   ${PORT}   ${NUM_ORIG_CARS}
25     ${resp}             Getcars   ${OLD_CAR_LEADER}   ${PORT}   ${0}
26     Should Be Equal As Strings    ${resp.status_code}    200
27     :FOR    ${i}    IN RANGE    1    ${NUM_ORIG_CARS}
28     \    Should Contain     ${resp.content}   manufacturer${i}
29
30 Switch car leader
31   [Documentation]    stop leader and elect new leader
32   Stopcontroller  ${OLD_CAR_LEADER}  ${USERNAME}  ${PASSWORD}  ${KARAFHOME}
33   Sleep    3
34   ${NEW_CAR_LEADER}    GetLeader  ${CAR_SHARD}  ${3}  ${3}  ${2}  ${PORT}  ${MEMBER1}  ${MEMBER2}  ${MEMBER3}
35   Log  ${NEW_CAR_LEADER}
36   Should Not Be Equal As Strings   ${NEW_CAR_LEADER}   None
37   Should Not Be Equal    ${OLD_CAR_LEADER}    ${NEW_CAR_LEADER}
38   Set Suite Variable    ${NEW_CAR_LEADER}
39
40 Get original cars on new leader
41     ${resp}             Getcars   ${NEW_CAR_LEADER}   ${PORT}   ${0}
42     Should Be Equal As Strings    ${resp.status_code}    200
43     :FOR    ${i}    IN RANGE    1    ${NUM_ORIG_CARS}
44     \    Should Contain     ${resp.content}   manufacturer${i}
45
46 Delete cars at new leader
47     [Documentation]    delete cars
48   DeleteAllCars  ${NEW_CAR_LEADER}  ${PORT}  ${0}
49   ${resp}               Getcars ${NEW_CAR_LEADER}       ${PORT} ${0}
50   Should Be Equal As Strings    ${resp.status_code}    404
51
52 Add new cars and get cars from new leader
53     [Documentation]    Add cars and get added cars from Leader
54     ${resp}             AddCar  ${NEW_CAR_LEADER}       ${PORT} ${NUM_CARS}
55     ${resp}             Getcars ${NEW_CAR_LEADER}       ${PORT} ${0}
56     Should Be Equal As Strings    ${resp.status_code}    200
57     :FOR    ${i}    IN RANGE    1    ${NUM_CARS}
58     \    Should Contain     ${resp.content}   manufacturer${i}
59
60 Get Car Followers
61     ${CAR_FOLLOWERS}   GetFollowers   ${CAR_SHARD}   ${3}    ${3}    ${1}    ${PORT}     ${MEMBER1}   ${MEMBER2}    ${MEMBER3}
62     Log    ${CAR_FOLLOWERS}
63     SET SUITE VARIABLE  ${CAR_FOLLOWERS}
64
65 Get added cars from Follower
66    [Documentation]   Get added cars using the Follower
67    ${resp}             Getcars  @{CAR_FOLLOWERS}[0]  ${PORT}  ${0}
68    Should Be Equal As Strings    ${resp.status_code}    200
69    :FOR    ${i}    IN RANGE    1    ${NUM_CARS}
70    \    Should Contain     ${resp.content}   manufacturer${i}
71
72 Delete cars from Follower
73     [Documentation]    delete cars
74   DeleteAllCars  @{CAR_FOLLOWERS}[0]  ${PORT}  ${0}
75   ${resp}     Getcars   @{CAR_FOLLOWERS}[0]   ${PORT}  ${0}
76   Should Be Equal As Strings    ${resp.status_code}    404
77
78 Add cars from follower
79     [Documentation]    Add more cars using the follower
80     ${resp}             AddCar    @{CAR_FOLLOWERS}[0]    ${PORT}   ${NUM_CARS}
81     ${resp}             Getcars   @{CAR_FOLLOWERS}[0]    ${PORT}   ${0}
82     Should Be Equal As Strings    ${resp.status_code}    200
83     :FOR    ${i}    IN RANGE    1    ${NUM_CARS}
84     \    Should Contain     ${resp.content}   manufacturer${i}
85
86 Get added cars from new leader
87    [Documentation]   Get added cars using the new leader
88    ${resp}             Getcars  ${NEW_CAR_LEADER}  ${PORT}  ${0}
89    Should Be Equal As Strings    ${resp.status_code}    200
90    :FOR    ${i}    IN RANGE    1    ${NUM_CARS}
91    \    Should Contain     ${resp.content}   manufacturer${i}
92
93 Restart old Car leader
94     Startcontroller    ${OLD_CAR_LEADER}    ${USER_NAME}    ${PASSWORD}    ${KARAF_HOME}    ${PORT}
95     Sleep   3
96
97 Get added cars from old leader
98    [Documentation]   Get added cars using the old leader
99    ${resp}             Getcars  ${OLD_CAR_LEADER}  ${PORT}  ${0}
100    Should Be Equal As Strings    ${resp.status_code}    200
101    :FOR    ${i}    IN RANGE    1    ${NUM_CARS}
102    \    Should Contain     ${resp.content}   manufacturer${i}
103