#!/bin/bash

blk=/dev/$2
record=/tmp/pvuuid-mdpath
if [ ! -f "$record" ]; then
    touch $record
fi

case $1 in
    change)
        if grep -q "|$2$" "$record" 2>/dev/null; then
            exit 0
        fi
        # 轮询等待pv元数据真正可读，替代udevadm settle只等目标设备
        for i in $(seq 1 20); do
            pv_uuid=$(blkid -p "$blk" 2>/dev/null | awk -F'"' '{print $2}')
            [ -n "$pv_uuid" ] && break
            sleep 1
        done
        if [ -n "$pv_uuid" ]; then
            echo "$pv_uuid|$2" >> $record
        fi
        ;;
    remove)
        sed -i "/|$2$/d" $record
        ;;
esac
