mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
* parted: proper fix for change of partition label case
calling mkpart even when partition existed before mklabel call, fixes #522
* changelog fragment for parted fix #522
* Update changelogs/fragments/522-parted_change_label.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* typo in comment
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 4931fb2681
)
Co-authored-by: Robert Osowiecki <robert.osowiecki@gmail.com>
This commit is contained in:
parent
0d459e5662
commit
d7c4849473
3 changed files with 18 additions and 2 deletions
2
changelogs/fragments/522-parted_change_label.yml
Normal file
2
changelogs/fragments/522-parted_change_label.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- "parted - fix creating partition when label is changed (https://github.com/ansible-collections/community.general/issues/522)."
|
|
@ -634,11 +634,12 @@ def main():
|
|||
if state == 'present':
|
||||
|
||||
# Assign label if required
|
||||
if current_device['generic'].get('table', None) != label:
|
||||
mklabel_needed = current_device['generic'].get('table', None) != label
|
||||
if mklabel_needed:
|
||||
script += "mklabel %s " % label
|
||||
|
||||
# Create partition if required
|
||||
if part_type and not part_exists(current_parts, 'num', number):
|
||||
if part_type and (mklabel_needed or not part_exists(current_parts, 'num', number)):
|
||||
script += "mkpart %s %s%s %s " % (
|
||||
part_type,
|
||||
'%s ' % fs_type if fs_type is not None else '',
|
||||
|
|
|
@ -262,6 +262,19 @@ class TestParted(ModuleTestCase):
|
|||
with patch('ansible_collections.community.general.plugins.modules.system.parted.get_device_info', return_value=parted_dict2):
|
||||
self.execute_module(changed=True, script='unit KiB mklabel gpt mkpart primary 0% 100% unit KiB name 1 \'"lvmpartition"\' set 1 lvm on')
|
||||
|
||||
def test_change_label_gpt(self):
|
||||
# When partitions already exists and label is changed, mkpart should be called even when partition already exists,
|
||||
# because new empty label will be created anyway
|
||||
set_module_args({
|
||||
'device': '/dev/sdb',
|
||||
'number': 1,
|
||||
'state': 'present',
|
||||
'label': 'gpt',
|
||||
'_ansible_check_mode': True,
|
||||
})
|
||||
with patch('ansible_collections.community.general.plugins.modules.system.parted.get_device_info', return_value=parted_dict1):
|
||||
self.execute_module(changed=True, script='unit KiB mklabel gpt mkpart primary 0% 100%')
|
||||
|
||||
def test_check_mode_unchanged(self):
|
||||
# Test that get_device_info result is checked in check mode too
|
||||
# No change on partition 1
|
||||
|
|
Loading…
Reference in a new issue