#! /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
# 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)
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}
;;
# 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}