]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
ceph-osd: get full link path when testing if a partition 981/head
authorSébastien Han <seb@redhat.com>
Mon, 19 Sep 2016 14:17:11 +0000 (16:17 +0200)
committerSébastien Han <seb@redhat.com>
Tue, 20 Sep 2016 08:15:06 +0000 (10:15 +0200)
This allows us to test devices set with persistent naming such as
/dev/disk/by-*
When registering devices we can use persisent (/dev/disk/by-*) or
non-persistent (/dev/sd*). Both declarations are supported by
ceph-ansible. There was just two tasks that were not compatible with
this. Since we support using partitions directly we need to test that
because the device activation will be different. To test if the device
is a partition we use a regular expression which wasn't compatible with
the persistent device naming format (/dev/disk/by-*).

This commit solves this issue by reading the path of the symlink since
devices like /dev/disk/by-* are symlinks to devices like /dev/sd*

Signed-off-by: Sébastien Han <seb@redhat.com>
roles/ceph-osd/tasks/check_devices_auto.yml
roles/ceph-osd/tasks/check_devices_static.yml

index 7d17a57d54732eb5d19eb1f27f021456f192223d..ec80f85ea537e91ef18b178cbf64867adeeed4e0 100644 (file)
@@ -1,6 +1,6 @@
 ---
 - name: check if the device is a partition (autodiscover disks)
-  shell: "echo '/dev/{{ item.key }}' | egrep '/dev/([hsv]d[a-z]{1,2}|cciss/c[0-9]d[0-9]p|nvme[0-9]n[0-9]p)[0-9]{1,2}$'"
+  shell: "readlink -f /dev/{{ item.key }} | egrep '/dev/([hsv]d[a-z]{1,2}|cciss/c[0-9]d[0-9]p|nvme[0-9]n[0-9]p)[0-9]{1,2}$'"
   with_dict: "{{ ansible_devices }}"
   changed_when: false
   failed_when: false
index 23d2f3b34da4b7ea7b7bcad401ba0c3bbc8efa65..2a52762d6ee708891b87163682e323eeca5d0452 100644 (file)
@@ -1,6 +1,6 @@
 ---
 - name: check if the device is a partition
-  shell: "echo '{{ item }}' | egrep '/dev/([hsv]d[a-z]{1,2}|cciss/c[0-9]d[0-9]p|nvme[0-9]n[0-9]p)[0-9]{1,2}$'"
+  shell: "readlink -f {{ item }} | egrep '/dev/([hsv]d[a-z]{1,2}|cciss/c[0-9]d[0-9]p|nvme[0-9]n[0-9]p)[0-9]{1,2}$'"
   with_items: "{{ devices }}"
   changed_when: false
   failed_when: false