mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-04-21 03:09:04 +00:00
[PR #11813/edf8f249 backport][stable-12] parted: add unit_preserve_case option to fix unit case in return value (#11875)
parted: add unit_preserve_case option to fix unit case in return value (#11813)
* parted: add unit_preserve_case option to fix unit case in return value
Adds O(unit_preserve_case) feature flag (bool, default None) to control
the case of the ``unit`` field in the module return value.
Previously the unit was always lowercased (e.g. ``kib``), making it
impossible to feed ``disk.unit`` back as the ``unit`` parameter without
a validation error. With O(unit_preserve_case=true) the unit is returned
in its original mixed case (e.g. ``KiB``), matching the accepted input
values.
The default (None) emits a deprecation notice; the default will become
V(true) in community.general 14.0.0.
Fixes #1860
* parted: add changelog fragment for PR #11813
* adjustments from review
* Comment 15.0.0 deprecation in option decription.
* parted: fix unit test calls to parse_partition_info after signature change
* parted: fix unit_preserve_case - parted outputs lowercase units in machine mode
Parted's machine-parseable output always uses lowercase unit suffixes
(e.g. ``kib``, ``mib``) regardless of what was passed to the ``unit``
parameter. Removing the explicit ``.lower()`` call was therefore not
enough to preserve case.
Add a ``canonical_unit()`` helper that maps a unit string to its canonical
mixed-case form using ``parted_units`` as the reference, and use it
instead of a bare identity when ``unit_preserve_case=true``.
Also fix a yamllint violation in the DOCUMENTATION block (missing space
after ``#`` in inline comments).
* Update plugins/modules/parted.py
* Update plugins/modules/parted.py
---------
(cherry picked from commit edf8f24959)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
3867300eca
commit
27ca6be10a
4 changed files with 93 additions and 14 deletions
|
|
@ -84,3 +84,40 @@
|
|||
- fs2_succ is changed
|
||||
- partition_rem1 is changed
|
||||
- partition_rem1.partitions | length == 1
|
||||
|
||||
- name: Get partition info with unit_preserve_case=true
|
||||
community.general.parted:
|
||||
device: "{{ losetup_name.stdout }}"
|
||||
state: info
|
||||
unit: KiB
|
||||
unit_preserve_case: true
|
||||
register: info_preserve_true
|
||||
|
||||
- name: Get partition info with unit_preserve_case=false
|
||||
community.general.parted:
|
||||
device: "{{ losetup_name.stdout }}"
|
||||
state: info
|
||||
unit: KiB
|
||||
unit_preserve_case: false
|
||||
register: info_preserve_false
|
||||
|
||||
- name: Assert unit_preserve_case results
|
||||
assert:
|
||||
that:
|
||||
- info_preserve_true.disk.unit == "KiB"
|
||||
- info_preserve_true.partitions[0].unit == "KiB"
|
||||
- info_preserve_false.disk.unit == "kib"
|
||||
- info_preserve_false.partitions[0].unit == "kib"
|
||||
|
||||
- name: Use returned unit as input (round-trip) - regression test for issue 1860
|
||||
community.general.parted:
|
||||
device: "{{ losetup_name.stdout }}"
|
||||
state: info
|
||||
unit: "{{ info_preserve_true.disk.unit }}"
|
||||
unit_preserve_case: true
|
||||
register: info_roundtrip
|
||||
|
||||
- name: Assert round-trip succeeds and unit is consistent
|
||||
assert:
|
||||
that:
|
||||
- info_roundtrip.disk.unit == info_preserve_true.disk.unit
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue