diff --git a/ansible/roles/wipe-disks/library/blockdevice_info.py b/ansible/roles/wipe-disks/library/blockdevice_info.py index b5fa5840c..4633e69b7 100644 --- a/ansible/roles/wipe-disks/library/blockdevice_info.py +++ b/ansible/roles/wipe-disks/library/blockdevice_info.py @@ -28,8 +28,14 @@ import json from ansible.module_utils.basic import AnsibleModule def _has_mounts(device): - if device["mountpoint"]: - return True + try: + if device["mountpoint"]: + return True + # If unmounted, the JSON output contains "mountpoints": [null] so we handle + # the KeyError here. + except KeyError: + if device["mountpoints"][0]: + return True for child in device.get("children", []): if _has_mounts(child): return True @@ -69,4 +75,4 @@ def main(): if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/releasenotes/notes/wipe-disks-0e72c9c8b7bf7e18.yaml b/releasenotes/notes/wipe-disks-0e72c9c8b7bf7e18.yaml new file mode 100644 index 000000000..4039359cf --- /dev/null +++ b/releasenotes/notes/wipe-disks-0e72c9c8b7bf7e18.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Fixes the ``wipe-disks`` role which was failing on supported host operating + systems due to a change in the output format of ``lsblk -J`` in + ``util-linux`` version ``2.37``. LP#2051859 + __