added lvextend needed for gnt-instance grow-disk
[ganeti-extstorage-zfs] / sbin / lvextend
1 #!/bin/sh -e
2
3 . /usr/share/ganeti/extstorage/zfs/defaults.sh
4
5 # gnt-instance grow-disk t-plain 0 100M
6 # lvextend -L +102400k --test --alloc contiguous /dev/ffzgvg/fa2e60f4-22e5-4620-baac-385418139ce7.disk0
7 # lvextend -L +102400k --test --alloc cling /dev/ffzgvg/fa2e60f4-22e5-4620-baac-385418139ce7.disk0
8 # lvextend -L +102400k --test --alloc normal /dev/ffzgvg/fa2e60f4-22e5-4620-baac-385418139ce7.disk0
9
10 if echo $* | grep -q $EXTP_VG ; then
11         TEST='-'
12         while [ ! -z "$1" ] ; do
13                 case $1 in 
14
15                 -L*) VOL_SIZE_INC=`echo $2 | sed -e 's/-L//' -e 's/^\+//' -e 's/k$//'` ;;
16                 --test)  TEST='test' ;;
17                 /dev/$EXTP_VG/*) VOL_NAME=`echo $1 | cut -d/ -f4`
18
19                 esac
20                 shift
21         done
22
23         if [ $TEST = 'test' ] ; then
24
25                 available=`zfs get -H -p available -o value $EXTP_ZFS/$VOL_NAME`
26                 if [ `expr $available \/ 1024` -gt $VOL_SIZE_INC ] ; then
27                         exit 0 # OK to enlarge
28                 else
29                         exit 1
30                 fi
31
32         else
33
34                 volsize=`zfs get -H -p volsize -o value $EXTP_ZFS/$VOL_NAME`
35                 zfs set volsize=`expr $volsize \/ 1024 + $VOL_SIZE_INC`k $EXTP_ZFS/$VOL_NAME
36
37         fi
38
39 else
40         /sbin/lvm lvextend $*
41 fi