]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-disk-udev: set up by-partuuid, -typeuuid symlinks on ancient udev
authorSage Weil <sage@inktank.com>
Mon, 17 Jun 2013 16:49:46 +0000 (09:49 -0700)
committerSage Weil <sage@inktank.com>
Mon, 17 Jun 2013 18:16:42 +0000 (11:16 -0700)
Make the ancient-udev/blkid workaround script for RHEL/CentOS create the
symlinks for us too.

Signed-off-by: Sage Weil <sage@inktank.com>
src/ceph-disk-udev

index 885f638a1e0218956ae28c676cea74f1c824a49b..bdf524e6aea2f3b306cd888d47d61d5f5dc0bd5a 100755 (executable)
@@ -1,8 +1,9 @@
 #! /bin/sh
 
-# Wrapper for the ceph udev rules.  Since older versions of udev do not support gpt label fields, this shell
-# script is invoked from the udev rule to read the needed gpt label fields and call the appropriate ceph
-# OSD functions.
+# Wrapper for the ceph udev rules.  Since older versions of udev+blkid
+# do not support gpt label fields, this shell script is invoked from
+# the udev rule to read the needed gpt label fields and call the
+# appropriate ceph OSD functions.
 
 PARTNO=$1
 NAME=$2
@@ -10,6 +11,19 @@ PARENT_NAME=$3
 
 # Get GPT partition type guid
 ID_PART_ENTRY_TYPE=$(/usr/sbin/sgdisk --info=${PARTNO} /dev/${PARENT_NAME} | grep "Partition GUID code" | awk '{print $4}' | tr '[:upper:]' '[:lower:]')
+
+if [ -z "$ID_PART_ENTRY_TYPE" ]; then
+    exit
+fi
+
+ID_PART_ENTRY_UUID=$(/usr/sbin/sgdisk --info=${PARTNO} /dev/${PARENT_NAME} | grep "Partition unique GUID" | awk '{print $4}' | tr '[:upper:]' '[:lower:]')
+
+# set up the symlinks
+mkdir -p /dev/disk/by-partuuid
+ln -sf ../../${NAME} /dev/disk/by-partuuid/$ID_PART_ENTRY_UUID
+mkdir -p /dev/disk/by-parttypeuuid
+ln -sf ../../${NAME} /dev/disk/by-parttypeuuid/${ID_PART_ENTRY_TYPE}.${ID_PART_ENTRY_UUID}
+
 case $ID_PART_ENTRY_TYPE in
 
 45b0969e-9b03-4f30-b4c6-b4b80ceff106)
@@ -21,7 +35,6 @@ case $ID_PART_ENTRY_TYPE in
 45b0969e-9b03-4f30-b4c6-5ec00ceff106)
     # DMCRYPT_JOURNAL_UUID
     # Map journal if using dm-crypt
-    ID_PART_ENTRY_UUID=$(/usr/sbin/sgdisk --info=${PARTNO} /dev/${PARENT_NAME} | grep "Partition unique GUID" | awk '{print $4}' | tr '[:upper:]' '[:lower:]')
     /sbin/cryptsetup --key-file /etc/ceph/dmcrypt-keys/${ID_PART_ENTRY_UUID} --key-size 256 create ${ID_PART_ENTRY_UUID} /dev/${NAME}
     ;;
 
@@ -35,7 +48,6 @@ case $ID_PART_ENTRY_TYPE in
     # DMCRYPT_OSD_UUID
     # Map data device and activate ceph-tagged partitions
     # for dm-crypted data devices
-    ID_PART_ENTRY_UUID=$(/usr/sbin/sgdisk --info=${PARTNO} /dev/${PARENT_NAME} | grep "Partition unique GUID" | awk '{print $4}' | tr '[:upper:]' '[:lower:]')
     /sbin/cryptsetup --key-file /etc/ceph/dmcrypt-keys/${ID_PART_ENTRY_UUID} --key-size 256 create ${ID_PART_ENTRY_UUID} /dev/${NAME}
     bash -c 'while [ ! -e /dev/mapper/${ID_PART_ENTRY_UUID} ];do sleep 1; done'
     /usr/sbin/ceph-disk-activate /dev/mapper/${ID_PART_ENTRY_UUID}