Skip to content

Commit 3ef061d

Browse files
martinpittrichm
authored andcommitted
tests: Fix stratis block device clean up
Always run the "Clean up" tasks, so that the volumes, pool, and most importantly block devices are removed also when a failure occurs. This unbreaks subsequent tests.
1 parent 561fd7e commit 3ef061d

1 file changed

Lines changed: 146 additions & 134 deletions

File tree

tests/tests_stratis.yml

Lines changed: 146 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -66,94 +66,16 @@
6666
name: stratisd
6767
state: started
6868

69-
- name: Create one Stratis pool with one volume
70-
include_role:
71-
name: linux-system-roles.storage
72-
vars:
73-
storage_pools:
74-
- name: foo
75-
disks: "{{ unused_disks }}"
76-
type: stratis
77-
volumes:
78-
- name: test1
79-
size: "{{ volume_size }}"
80-
mount_point: "{{ mount_location }}"
81-
82-
- name: Verify role results
83-
include_tasks: verify-role-results.yml
84-
85-
- name: Repeat the previous invocation to verify idempotence
86-
include_role:
87-
name: linux-system-roles.storage
88-
vars:
89-
storage_pools:
90-
- name: foo
91-
disks: "{{ unused_disks }}"
92-
type: stratis
93-
volumes:
94-
- name: test1
95-
size: "{{ volume_size }}"
96-
mount_point: "{{ mount_location }}"
97-
98-
- name: Verify role results
99-
include_tasks: verify-role-results.yml
100-
101-
- name: Add second filesystem to the pool
102-
include_role:
103-
name: linux-system-roles.storage
104-
vars:
105-
storage_pools:
106-
- name: foo
107-
disks: "{{ unused_disks }}"
108-
type: stratis
109-
volumes:
110-
- name: test1
111-
size: "{{ volume_size }}"
112-
mount_point: "{{ mount_location }}"
113-
- name: test2
114-
size: "{{ volume_size }}"
115-
mount_point: "{{ mount_location_2 }}"
116-
117-
- name: Verify role results
118-
include_tasks: verify-role-results.yml
119-
120-
- name: Clean up
121-
include_role:
122-
name: linux-system-roles.storage
123-
vars:
124-
storage_pools:
125-
- name: foo
126-
disks: "{{ unused_disks }}"
127-
type: stratis
128-
state: absent
129-
volumes:
130-
- name: test1
131-
size: "{{ volume_size }}"
132-
mount_point: "{{ mount_location }}"
133-
state: absent
134-
- name: test2
135-
size: "{{ volume_size }}"
136-
mount_point: "{{ mount_location_2 }}"
137-
state: absent
138-
139-
- name: Verify role results
140-
include_tasks: verify-role-results.yml
141-
142-
- name: Run test only if blivet supports this functionality
143-
when: ((is_fedora and blivet_pkg_version is version("3.10.0-1", ">=")) or
144-
(is_rhel10 and blivet_pkg_version is version("3.10.0-1", ">=")) or
145-
(is_rhel9 and blivet_pkg_version is version("3.6.0-15", ">=")))
69+
- name: One pool/volume test
14670
block:
147-
- name: Create encrypted Stratis pool
71+
- name: Create one Stratis pool with one volume
14872
include_role:
14973
name: linux-system-roles.storage
15074
vars:
15175
storage_pools:
15276
- name: foo
15377
disks: "{{ unused_disks }}"
15478
type: stratis
155-
encryption: true
156-
encryption_password: yabbadabbadoo
15779
volumes:
15880
- name: test1
15981
size: "{{ volume_size }}"
@@ -170,8 +92,6 @@
17092
- name: foo
17193
disks: "{{ unused_disks }}"
17294
type: stratis
173-
encryption: true
174-
encryption_password: yabbadabbadoo
17595
volumes:
17696
- name: test1
17797
size: "{{ volume_size }}"
@@ -180,48 +100,26 @@
180100
- name: Verify role results
181101
include_tasks: verify-role-results.yml
182102

183-
- name: Clean up
103+
- name: Add second filesystem to the pool
184104
include_role:
185105
name: linux-system-roles.storage
186106
vars:
187107
storage_pools:
188108
- name: foo
189109
disks: "{{ unused_disks }}"
190110
type: stratis
191-
state: absent
192111
volumes:
193112
- name: test1
194113
size: "{{ volume_size }}"
195114
mount_point: "{{ mount_location }}"
196-
state: absent
197-
198-
- name: Verify role results
199-
include_tasks: verify-role-results.yml
200-
201-
- name: Create one Stratis pool on one disk
202-
include_role:
203-
name: linux-system-roles.storage
204-
vars:
205-
storage_pools:
206-
- name: foo
207-
disks: "{{ unused_disks[0] }}"
208-
type: stratis
209-
210-
- name: Verify role results
211-
include_tasks: verify-role-results.yml
212-
213-
- name: Add the second disk to the pool
214-
include_role:
215-
name: linux-system-roles.storage
216-
vars:
217-
storage_pools:
218-
- name: foo
219-
disks: "{{ [unused_disks[0], unused_disks[1]] }}"
220-
type: stratis
115+
- name: test2
116+
size: "{{ volume_size }}"
117+
mount_point: "{{ mount_location_2 }}"
221118

222119
- name: Verify role results
223120
include_tasks: verify-role-results.yml
224121

122+
always:
225123
- name: Clean up
226124
include_role:
227125
name: linux-system-roles.storage
@@ -236,6 +134,117 @@
236134
size: "{{ volume_size }}"
237135
mount_point: "{{ mount_location }}"
238136
state: absent
137+
- name: test2
138+
size: "{{ volume_size }}"
139+
mount_point: "{{ mount_location_2 }}"
140+
state: absent
141+
142+
- name: Verify role results
143+
include_tasks: verify-role-results.yml
144+
145+
- name: Run test only if blivet supports this functionality
146+
when: ((is_fedora and blivet_pkg_version is version("3.10.0-1", ">=")) or
147+
(is_rhel10 and blivet_pkg_version is version("3.10.0-1", ">=")) or
148+
(is_rhel9 and blivet_pkg_version is version("3.6.0-15", ">=")))
149+
block:
150+
- name: Test encrypted pool
151+
block:
152+
- name: Create encrypted Stratis pool
153+
include_role:
154+
name: linux-system-roles.storage
155+
vars:
156+
storage_pools:
157+
- name: foo
158+
disks: "{{ unused_disks }}"
159+
type: stratis
160+
encryption: true
161+
encryption_password: yabbadabbadoo
162+
volumes:
163+
- name: test1
164+
size: "{{ volume_size }}"
165+
mount_point: "{{ mount_location }}"
166+
167+
- name: Verify role results
168+
include_tasks: verify-role-results.yml
169+
170+
- name: Repeat the previous invocation to verify idempotence
171+
include_role:
172+
name: linux-system-roles.storage
173+
vars:
174+
storage_pools:
175+
- name: foo
176+
disks: "{{ unused_disks }}"
177+
type: stratis
178+
encryption: true
179+
encryption_password: yabbadabbadoo
180+
volumes:
181+
- name: test1
182+
size: "{{ volume_size }}"
183+
mount_point: "{{ mount_location }}"
184+
185+
- name: Verify role results
186+
include_tasks: verify-role-results.yml
187+
188+
always:
189+
- name: Clean up
190+
include_role:
191+
name: linux-system-roles.storage
192+
vars:
193+
storage_pools:
194+
- name: foo
195+
disks: "{{ unused_disks }}"
196+
type: stratis
197+
state: absent
198+
volumes:
199+
- name: test1
200+
size: "{{ volume_size }}"
201+
mount_point: "{{ mount_location }}"
202+
state: absent
203+
204+
- name: Verify role results
205+
include_tasks: verify-role-results.yml
206+
207+
- name: Test one disk pool
208+
block:
209+
- name: Create one Stratis pool on one disk
210+
include_role:
211+
name: linux-system-roles.storage
212+
vars:
213+
storage_pools:
214+
- name: foo
215+
disks: "{{ unused_disks[0] }}"
216+
type: stratis
217+
218+
- name: Verify role results
219+
include_tasks: verify-role-results.yml
220+
221+
- name: Add the second disk to the pool
222+
include_role:
223+
name: linux-system-roles.storage
224+
vars:
225+
storage_pools:
226+
- name: foo
227+
disks: "{{ [unused_disks[0], unused_disks[1]] }}"
228+
type: stratis
229+
230+
- name: Verify role results
231+
include_tasks: verify-role-results.yml
232+
233+
always:
234+
- name: Clean up
235+
include_role:
236+
name: linux-system-roles.storage
237+
vars:
238+
storage_pools:
239+
- name: foo
240+
disks: "{{ unused_disks }}"
241+
type: stratis
242+
state: absent
243+
volumes:
244+
- name: test1
245+
size: "{{ volume_size }}"
246+
mount_point: "{{ mount_location }}"
247+
state: absent
239248

240249
- name: Verify role results
241250
include_tasks: verify-role-results.yml
@@ -248,31 +257,34 @@
248257
nbde_server_manage_selinux: true
249258
nbde_server_port: 7500
250259

251-
- name: Create encrypted Stratis pool with Clevis/Tang
252-
include_role:
253-
name: linux-system-roles.storage
254-
vars:
255-
storage_pools:
256-
- name: foo
257-
disks: "{{ unused_disks[0] }}"
258-
type: stratis
259-
encryption: true
260-
encryption_password: yabbadabbadoo
261-
encryption_clevis_pin: tang
262-
encryption_tang_url: localhost:7500
263-
264-
- name: Verify role results
265-
include_tasks: verify-role-results.yml
266-
267-
- name: Clean up
268-
include_role:
269-
name: linux-system-roles.storage
270-
vars:
271-
storage_pools:
272-
- name: foo
273-
disks: "{{ unused_disks[0] }}"
274-
type: stratis
275-
state: absent
260+
- name: Clevis/Tang test
261+
block:
262+
- name: Create encrypted Stratis pool with Clevis/Tang
263+
include_role:
264+
name: linux-system-roles.storage
265+
vars:
266+
storage_pools:
267+
- name: foo
268+
disks: "{{ unused_disks[0] }}"
269+
type: stratis
270+
encryption: true
271+
encryption_password: yabbadabbadoo
272+
encryption_clevis_pin: tang
273+
encryption_tang_url: localhost:7500
274+
275+
- name: Verify role results
276+
include_tasks: verify-role-results.yml
277+
278+
always:
279+
- name: Clean up
280+
include_role:
281+
name: linux-system-roles.storage
282+
vars:
283+
storage_pools:
284+
- name: foo
285+
disks: "{{ unused_disks[0] }}"
286+
type: stratis
287+
state: absent
276288

277289
- name: Verify role results
278290
include_tasks: verify-role-results.yml

0 commit comments

Comments
 (0)