#!/bin/bash
#rbt: BREST-1558
DS_ID="[0-9]*"
LVM_VG_PREFIX="vg-one"
hostn=$(hostname -s)
LVM_VG_NAME="${LVM_VG_PREFIX}-${DS_ID}-${hostn}"
LVM_LV_NAME="onethinpool"

if PATH=\$PATH:/sbin:/bin:/usr/sbin:/usr/bin which lvs &> /dev/null; then
    LVM_THIN_POOLS=$(sudo lvs \
                    --select "lv_name = ${LVM_LV_NAME} && vg_name =~ ${LVM_VG_NAME}$" \
                    --separator : \
                    --units m \
                    --nosuffix \
                    --noheadings \
                    -o vg_name,lv_size,data_percent \
                    2>/dev/null )
fi

[ $? -eq 0 ] && [ -n "${LVM_THIN_POOLS}" ] || exit 1

for LVM_THIN_POOL in ${LVM_THIN_POOLS[@]}; do
    if [ -n "$LVM_THIN_POOL" ]; then
        IFS=':' read -r -a LVM_THIN_POOL <<< "$LVM_THIN_POOL"

        #LVM_THIN_POOL array
        #[0] - vg_name, [1] - lv_size, [2] - data_percent

        DS_ID=$(echo ${LVM_THIN_POOL[0]} | sed -e "s/^$LVM_VG_PREFIX-//" -e "s/-$hostn$//")
        [ -n "${DS_ID}" ] || continue;

        LVM_TOTAL=$(echo ${LVM_THIN_POOL[1]:-"0"} | cut -d: -f1 | sed 's/\..*//;s/^\s*//')
        PERCENT_USAGE=$(echo ${LVM_THIN_POOL[2]:-"0"} | cut -d: -f2 | sed 's/\..*//;s/^\s*//')
        LVM_USED=$(echo "${LVM_TOTAL/,/.} * (${PERCENT_USAGE/,/.} / 100) + 1" | bc -l | cut -f1 -d".")
        LVM_FREE=$(( `echo ${LVM_TOTAL/,/.}|cut -f1 -d"."` - $LVM_USED ))

        echo "${DS_ID:-""} ${LVM_USED:-"0"} ${LVM_TOTAL:-"0"} ${LVM_FREE:-"0"}"
    fi
done
