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
8 ${CAR_SHARD} shard-car-config
10 ${NUM_ORIG_CARS} ${10}
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}
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
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}
31 [Documentation] stop leader and elect new leader
32 Stopcontroller ${OLD_CAR_LEADER} ${USERNAME} ${PASSWORD} ${KARAFHOME}
34 ${NEW_CAR_LEADER} GetLeader ${CAR_SHARD} ${3} ${3} ${2} ${PORT} ${MEMBER1} ${MEMBER2} ${MEMBER3}
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}
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}
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
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}
61 ${CAR_FOLLOWERS} GetFollowers ${CAR_SHARD} ${3} ${3} ${1} ${PORT} ${MEMBER1} ${MEMBER2} ${MEMBER3}
63 SET SUITE VARIABLE ${CAR_FOLLOWERS}
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}
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
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}
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}
93 Restart old Car leader
94 Startcontroller ${OLD_CAR_LEADER} ${USER_NAME} ${PASSWORD} ${KARAF_HOME} ${PORT}
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}