Skip to content

Commit 935b57c

Browse files
hendrikKahlLawouach
authored andcommitted
terminate_pods returns names of deleted pods
Signed-off-by: Hendrik Kahl <[email protected]>
1 parent df2c2dd commit 935b57c

File tree

2 files changed

+35
-11
lines changed

2 files changed

+35
-11
lines changed

chaosk8s/pod/actions.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,12 @@ def terminate_pods(label_selector: str = None, name_pattern: str = None,
6464
if grace_period >= 0:
6565
body = client.V1DeleteOptions(grace_period_seconds=grace_period)
6666

67+
deleted_pods = []
6768
for p in pods:
6869
v1.delete_namespaced_pod(p.metadata.name, ns, body=body)
70+
deleted_pods.append(p.metadata.name)
71+
72+
return deleted_pods
6973

7074

7175
def exec_in_pods(cmd: str,

tests/test_pod.py

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ def test_terminate_pods_by_name_pattern(cl, client, has_conf):
2929
v1.list_namespaced_pod.return_value = result
3030
client.CoreV1Api.return_value = v1
3131

32-
terminate_pods(name_pattern="my-app-[0-9]$")
33-
32+
ret = terminate_pods(name_pattern="my-app-[0-9]$")
33+
34+
assert len(ret) == 1
35+
assert ret == [pod.metadata.name]
3436
assert v1.delete_namespaced_pod.call_count == 1
3537
v1.delete_namespaced_pod.assert_called_with(
3638
pod.metadata.name, "default", body=ANY)
@@ -57,8 +59,10 @@ def test_terminate_pods_by_name_pattern_all(cl, client, has_conf):
5759
v1.list_namespaced_pod.return_value = result
5860
client.CoreV1Api.return_value = v1
5961

60-
terminate_pods(name_pattern="my-app-[0-9]$", all=True)
62+
ret = terminate_pods(name_pattern="my-app-[0-9]$", all=True)
6163

64+
assert len(ret) == 2
65+
assert ret == [pod1.metadata.name, pod2.metadata.name]
6266
assert v1.delete_namespaced_pod.call_count == 2
6367
calls = [call(pod1.metadata.name, "default", body=ANY),
6468
call(pod2.metadata.name, "default", body=ANY)]
@@ -91,8 +95,10 @@ def test_terminate_pods_by_name_pattern_rand(cl, client, has_conf):
9195
v1.list_namespaced_pod.return_value = result
9296
client.CoreV1Api.return_value = v1
9397

94-
terminate_pods(name_pattern="my-app-[0-9]$", rand=True)
98+
ret = terminate_pods(name_pattern="my-app-[0-9]$", rand=True)
9599

100+
assert len(ret) == 1
101+
assert ret == [pod3.metadata.name]
96102
assert v1.delete_namespaced_pod.call_count == 1
97103
v1.delete_namespaced_pod.assert_called_with(
98104
pod3.metadata.name, "default", body=ANY)
@@ -116,8 +122,10 @@ def test_terminate_pods_all(cl, client, has_conf):
116122
v1.list_namespaced_pod.return_value = result
117123
client.CoreV1Api.return_value = v1
118124

119-
terminate_pods(all=True)
125+
ret = terminate_pods(all=True)
120126

127+
assert len(ret) == 2
128+
assert ret == [pod1.metadata.name, pod2.metadata.name]
121129
assert v1.delete_namespaced_pod.call_count == 2
122130
calls = [call(pod1.metadata.name, "default", body=ANY),
123131
call(pod2.metadata.name, "default", body=ANY)]
@@ -144,8 +152,10 @@ def test_terminate_pods_rand(cl, client, has_conf):
144152
v1.list_namespaced_pod.return_value = result
145153
client.CoreV1Api.return_value = v1
146154

147-
terminate_pods(rand=True)
155+
ret = terminate_pods(rand=True)
148156

157+
assert len(ret) == 1
158+
assert ret == [pod2.metadata.name]
149159
assert v1.delete_namespaced_pod.call_count == 1
150160
v1.delete_namespaced_pod.assert_called_with(
151161
pod2.metadata.name, "default", body=ANY)
@@ -169,8 +179,10 @@ def test_terminate_pods_when_no_params_given(cl, client, has_conf):
169179
v1.list_namespaced_pod.return_value = result
170180
client.CoreV1Api.return_value = v1
171181

172-
terminate_pods()
182+
ret = terminate_pods()
173183

184+
assert len(ret) == 1
185+
assert ret == [pod1.metadata.name]
174186
assert v1.delete_namespaced_pod.call_count == 1
175187
v1.delete_namespaced_pod.assert_called_with(
176188
pod1.metadata.name, "default", body=ANY)
@@ -191,8 +203,10 @@ def test_terminate_pods_when_grace_period_is_set(cl, client, has_conf):
191203
v1.list_namespaced_pod.return_value = result
192204
client.CoreV1Api.return_value = v1
193205

194-
terminate_pods(grace_period=5)
206+
ret = terminate_pods(grace_period=5)
195207

208+
assert len(ret) == 1
209+
assert ret == [pod1.metadata.name]
196210
assert v1.delete_namespaced_pod.call_count == 1
197211
v1.delete_namespaced_pod.assert_called_with(
198212
pod1.metadata.name, "default",
@@ -223,8 +237,10 @@ def test_terminate_pods_by_given_percentage(cl, client, has_conf):
223237
v1.list_namespaced_pod.return_value = result
224238
client.CoreV1Api.return_value = v1
225239

226-
terminate_pods(mode='percentage', qty=40)
240+
ret = terminate_pods(mode='percentage', qty=40)
227241

242+
assert len(ret) == 2
243+
assert ret == [pod1.metadata.name, pod2.metadata.name]
228244
assert v1.delete_namespaced_pod.call_count == 2
229245
calls = [call(pod1.metadata.name, "default", body=ANY),
230246
call(pod2.metadata.name, "default", body=ANY)]
@@ -257,8 +273,10 @@ def test_terminate_pods_by_given_percentage_rand(cl, client, has_conf):
257273
v1.list_namespaced_pod.return_value = result
258274
client.CoreV1Api.return_value = v1
259275

260-
terminate_pods(mode='percentage', qty=40, rand=True)
276+
ret = terminate_pods(mode='percentage', qty=40, rand=True)
261277

278+
assert len(ret) == 2
279+
assert ret == [pod3.metadata.name, pod4.metadata.name]
262280
assert v1.delete_namespaced_pod.call_count == 2
263281
calls = [call(pod3.metadata.name, "default", body=ANY),
264282
call(pod4.metadata.name, "default", body=ANY)]
@@ -283,8 +301,10 @@ def test_terminate_pods_when_qty_grt_than_pods_selected(cl, client, has_conf):
283301
v1.list_namespaced_pod.return_value = result
284302
client.CoreV1Api.return_value = v1
285303

286-
terminate_pods(qty=40)
304+
ret = terminate_pods(qty=40)
287305

306+
assert len(ret) == 2
307+
assert ret == [pod1.metadata.name, pod2.metadata.name]
288308
assert v1.delete_namespaced_pod.call_count == 2
289309
calls = [call(pod1.metadata.name, "default", body=ANY),
290310
call(pod2.metadata.name, "default", body=ANY)]

0 commit comments

Comments
 (0)