Skip to content

Commit 8f2e68e

Browse files
vojtechtrefnyrichm
authored andcommitted
fix: Allow using raid_chunk_size for RAID pools and volumes
We forgot about the raid_chunk_size parameter when adding the pool/volume parameter checking. This parameter should be allowed for RAID pools and volumes.
1 parent 0fa5a49 commit 8f2e68e

File tree

5 files changed

+132
-1
lines changed

5 files changed

+132
-1
lines changed

library/blivet.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1745,7 +1745,8 @@ def run_module():
17451745
dict(disks=dict(type='list'),
17461746
raid_device_count=dict(type='int'),
17471747
raid_spare_count=dict(type='int'),
1748-
raid_metadata_version=dict(type='str')))
1748+
raid_metadata_version=dict(type='str'),
1749+
raid_chunk_size=dict(type='str')))
17491750
pool_volume_opts = copy.deepcopy(common_volume_opts)
17501751
pool_volume_opts.update(
17511752
dict(cached=dict(type='bool'),
@@ -1774,6 +1775,7 @@ def run_module():
17741775
raid_device_count=dict(type='int'),
17751776
raid_spare_count=dict(type='int'),
17761777
raid_metadata_version=dict(type='str'),
1778+
raid_chunk_size=dict(type='str'),
17771779
state=dict(type='str', default='present', choices=['present', 'absent']),
17781780
type=dict(type='str'),
17791781
volumes=dict(type='list', elements='dict', default=list(),

tests/test-verify-volume-md.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,25 @@
3232
regex_escape() }}"
3333
when: storage_test_volume.raid_metadata_version is defined
3434

35+
- name: Set chunk size regex
36+
set_fact:
37+
storage_test_md_chunk_size_re: "{{
38+
storage_test_mdadm.stdout | regex_search('Chunk Size : ([0-9]+[KMG])',
39+
'\\1') }}"
40+
when:
41+
- storage_test_volume.raid_chunk_size is defined
42+
- storage_test_volume.raid_chunk_size is not none
43+
- storage_test_volume.raid_chunk_size | string != "0 B"
44+
45+
- name: Parse the chunk size
46+
bsize:
47+
size: "{{ storage_test_md_chunk_size_re[0] }}"
48+
register: storage_test_parsed_md_chunk_size
49+
when:
50+
- storage_test_volume.raid_chunk_size is defined
51+
- storage_test_volume.raid_chunk_size is not none
52+
- storage_test_volume.raid_chunk_size | string != "0 B"
53+
3554
- name: Check RAID active devices count
3655
assert:
3756
that: storage_test_mdadm.stdout is
@@ -58,3 +77,13 @@
5877
Expected {{ storage_test_volume.raid_metadata_version }} RAID metadata
5978
version.
6079
when: storage_test_volume.raid_metadata_version is not none
80+
81+
- name: Check RAID chunk size
82+
assert:
83+
that: storage_test_parsed_md_chunk_size | int ==
84+
storage_test_volume.raid_chunk_size | int
85+
msg: Expected {{ storage_test_volume.raid_chunk_size }} RAID chunk size.
86+
when:
87+
- storage_test_volume.raid_chunk_size is defined
88+
- storage_test_volume.raid_chunk_size is not none
89+
- storage_test_volume.raid_chunk_size | string != "0 B"

tests/tests_raid_pool_options.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,37 @@
119119

120120
- name: Verify role results
121121
include_tasks: verify-role-results.yml
122+
123+
- name: Create a RAID0 device
124+
include_role:
125+
name: linux-system-roles.storage
126+
vars:
127+
storage_pools:
128+
- name: vg1
129+
disks: "{{ unused_disks }}"
130+
type: lvm
131+
raid_level: "raid0"
132+
raid_device_count: 3
133+
raid_metadata_version: "1.0"
134+
raid_chunk_size: "1024 KiB"
135+
state: present
136+
137+
- name: Verify role results
138+
include_tasks: verify-role-results.yml
139+
140+
- name: Remove the pool created above
141+
include_role:
142+
name: linux-system-roles.storage
143+
vars:
144+
storage_pools:
145+
- name: vg1
146+
disks: "{{ unused_disks }}"
147+
type: lvm
148+
raid_level: "raid0"
149+
raid_device_count: 3
150+
raid_metadata_version: "1.0"
151+
raid_chunk_size: "1024 KiB"
152+
state: absent
153+
154+
- name: Verify role results
155+
include_tasks: verify-role-results.yml

tests/tests_raid_volume_options.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,39 @@
8585

8686
- name: Verify role results
8787
include_tasks: verify-role-results.yml
88+
89+
- name: Create a RAID0 device mounted on "{{ mount_location }}"
90+
include_role:
91+
name: linux-system-roles.storage
92+
vars:
93+
storage_volumes:
94+
- name: test0
95+
type: raid
96+
raid_level: "raid0"
97+
raid_device_count: 3
98+
raid_metadata_version: "1.0"
99+
raid_chunk_size: "1024K"
100+
disks: "{{ unused_disks }}"
101+
mount_point: "{{ mount_location }}"
102+
state: present
103+
104+
- name: Verify role results
105+
include_tasks: verify-role-results.yml
106+
107+
- name: Remove the disk device created above
108+
include_role:
109+
name: linux-system-roles.storage
110+
vars:
111+
storage_volumes:
112+
- name: test0
113+
type: raid
114+
raid_level: "raid0"
115+
raid_device_count: 3
116+
raid_metadata_version: "1.0"
117+
raid_chunk_size: "1024K"
118+
disks: "{{ unused_disks }}"
119+
mount_point: "{{ mount_location }}"
120+
state: absent
121+
122+
- name: Verify role results
123+
include_tasks: verify-role-results.yml

tests/verify-pool-md.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,25 @@
3232
regex_escape() }}"
3333
when: storage_test_pool.raid_metadata_version is defined
3434

35+
- name: Set md chunk size regex
36+
set_fact:
37+
storage_test_md_chunk_size_re: "{{
38+
storage_test_mdadm.stdout | regex_search('Chunk Size : ([0-9]+[KMG])',
39+
'\\1') }}"
40+
when:
41+
- storage_test_pool.raid_chunk_size is defined
42+
- storage_test_pool.raid_chunk_size is not none
43+
- storage_test_pool.raid_chunk_size | string != "0 B"
44+
45+
- name: Parse the chunk size
46+
bsize:
47+
size: "{{ storage_test_md_chunk_size_re[0] }}"
48+
register: storage_test_parsed_md_chunk_size
49+
when:
50+
- storage_test_pool.raid_chunk_size is defined
51+
- storage_test_pool.raid_chunk_size is not none
52+
- storage_test_pool.raid_chunk_size | string != "0 B"
53+
3554
- name: Check RAID active devices count
3655
assert:
3756
that: storage_test_mdadm.stdout is
@@ -63,8 +82,19 @@
6382
- storage_test_pool.raid_metadata_version is defined
6483
- storage_test_pool.raid_metadata_version is not none
6584

85+
- name: Check RAID chunk size
86+
assert:
87+
that: storage_test_parsed_md_chunk_size | int ==
88+
storage_test_pool.raid_chunk_size | int
89+
msg: Expected {{ storage_test_pool.raid_chunk_size }} RAID chunk size.
90+
when:
91+
- storage_test_pool.raid_chunk_size is defined
92+
- storage_test_pool.raid_chunk_size is not none
93+
- storage_test_pool.raid_chunk_size | string != "0 B"
94+
6695
- name: Reset variables used by tests
6796
set_fact:
6897
storage_test_md_active_devices_re: null
6998
storage_test_md_spare_devices_re: null
7099
storage_test_md_metadata_version_re: null
100+
storage_test_md_chunk_size_re: null

0 commit comments

Comments
 (0)