From 4f89cdcd457debac5fbcd4e4e8ed22f6fb20e771 Mon Sep 17 00:00:00 2001 From: Dimitri Savineau Date: Tue, 15 Dec 2020 15:00:28 -0500 Subject: [PATCH] ceph-validate: check block presence first Instead of doing two parted calls we can check first if the device exist and then test the partition table. Signed-off-by: Dimitri Savineau (cherry picked from commit 14d458b3b41ef5fe1ebdb8a70e52a65ff28b42f2) --- roles/ceph-validate/tasks/check_devices.yml | 34 ++++++++------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/roles/ceph-validate/tasks/check_devices.yml b/roles/ceph-validate/tasks/check_devices.yml index 930f45431..4644b374f 100644 --- a/roles/ceph-validate/tasks/check_devices.yml +++ b/roles/ceph-validate/tasks/check_devices.yml @@ -54,27 +54,6 @@ msg: "{{ root_device }} found in either lvm_volumes or devices variable" when: root_device in lvm_volumes_data_devices | default([]) or root_device in _devices | default([]) -- name: check no gpt header is present when osd scenario is lvm/lvm-batch - block: - - name: read information about the devices - parted: - device: "{{ item.data if item.data_vg is undefined and lvm_volumes is defined else item if devices is defined else omit }}" - unit: MiB - register: parted_results - with_items: "{{ lvm_volumes | default(devices) }}" - when: - - inventory_hostname in groups.get(osd_group_name, []) - - (item.data is defined and item.data_vg is undefined) or devices is defined - - - name: fail when gpt header found on osd devices - fail: - msg: "{{ item.disk.dev }} has gpt header, please remove it." - with_items: "{{ parted_results.results }}" - when: - - item.skipped is undefined - - item.disk.table == 'gpt' - - item.partitions | length == 0 - - name: check devices are block devices block: - name: get devices information @@ -83,10 +62,21 @@ unit: MiB register: devices_parted failed_when: False - with_items: "{{ devices | default([]) }}" + with_items: + - "{{ devices | default([]) }}" + - "{{ lvm_volumes_data_devices | default([]) }}" - name: fail if one of the devices is not a device fail: msg: "{{ item.item }} is not a block special file!" when: item.rc is defined with_items: "{{ devices_parted.results }}" + + - name: fail when gpt header found on osd devices + fail: + msg: "{{ item.disk.dev }} has gpt header, please remove it." + with_items: "{{ devices_parted.results }}" + when: + - item.skipped is undefined + - item.disk.table == 'gpt' + - item.partitions | length == 0