|
Packit Service |
e080da |
#!/bin/bash
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
LVM_DEFINED=0
|
|
Packit Service |
e080da |
LVM_PREFIX="patchy_snap"
|
|
Packit Service |
e080da |
LVM_COUNT=0
|
|
Packit Service |
e080da |
VHD_SIZE="300M"
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
#This function will init B# bricks
|
|
Packit Service |
e080da |
#This is used when launch_cluster is
|
|
Packit Service |
e080da |
#not called to init B#. Call it before
|
|
Packit Service |
e080da |
#setup_lvm
|
|
Packit Service |
e080da |
function init_n_bricks() {
|
|
Packit Service |
e080da |
local count=$1
|
|
Packit Service |
e080da |
for i in `seq 1 $count`; do
|
|
Packit Service |
e080da |
eval "B$i=/d/backends/$i"
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
count_snaps () {
|
|
Packit Service |
e080da |
ls $1/.snaps | wc -l
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function init_lvm() {
|
|
Packit Service |
e080da |
if [ "$1" == "" ]; then
|
|
Packit Service |
e080da |
echo "Error: Invalid argument supplied"
|
|
Packit Service |
e080da |
return 1
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
LVM_COUNT=$1
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
if [ "$2" != "" ]; then
|
|
Packit Service |
e080da |
VHD_SIZE=$2
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
local b
|
|
Packit Service |
e080da |
local i
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
if [ "$B1" = "" ]; then
|
|
Packit Service |
e080da |
B1=$B0
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
for i in `seq 1 $LVM_COUNT`; do
|
|
Packit Service |
e080da |
b="B$i"
|
|
Packit Service |
e080da |
if [ "${!b}" = "" ]; then
|
|
Packit Service |
e080da |
echo "Error: $b not defined."
|
|
Packit Service |
e080da |
echo "Please run launch_cluster with atleast $LVM_COUNT nodes"
|
|
Packit Service |
e080da |
return 1
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
eval "L$i=${!b}/${LVM_PREFIX}_mnt"
|
|
Packit Service |
e080da |
l="L$i"
|
|
Packit Service |
e080da |
mkdir -p ${!l}
|
|
Packit Service |
e080da |
if [ $? -ne 0 ]; then
|
|
Packit Service |
e080da |
echo "Error: failed to create dir ${!l}"
|
|
Packit Service |
e080da |
return 1
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
eval "VG$i=${LVM_PREFIX}_vg_${i}"
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
LVM_DEFINED=1
|
|
Packit Service |
e080da |
return 0
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function verify_lvm_version() {
|
|
Packit Service |
e080da |
if `/sbin/lvcreate --help | grep -q thin`; then
|
|
Packit Service |
e080da |
return 0;
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
return 1;
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function setup_lvm() {
|
|
Packit Service |
e080da |
init_lvm $@ || return 1
|
|
Packit Service |
e080da |
_setup_lvm
|
|
Packit Service |
e080da |
return 0
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function cleanup_lvm() {
|
|
Packit Service |
e080da |
pkill gluster
|
|
Packit Service |
e080da |
sleep 2
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
if [ "$LVM_DEFINED" = "1" ]; then
|
|
Packit Service |
e080da |
_cleanup_lvm >/dev/null 2>&1
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
_cleanup_lvm_again >/dev/null 2>&1
|
|
Packit Service |
e080da |
# TODO Delete cleanup has open bug
|
|
Packit Service |
e080da |
# once fixed delete this
|
|
Packit Service |
e080da |
mount | grep "run/gluster/snaps" | awk '{print $3}' | xargs umount 2> /dev/null
|
|
Packit Service |
e080da |
mount | grep "patchy_snap" | awk '{print $3}' | xargs umount 2> /dev/null
|
|
Packit Service |
e080da |
\rm -rf /var/run/gluster/snaps/*
|
|
Packit Service |
e080da |
lvscan | grep "/dev/patchy_snap" | awk '{print $2}'| xargs lvremove -f 2> /dev/null
|
|
Packit Service |
e080da |
vgs | grep patchy_snap | awk '{print $1}' | xargs vgremove -f 2>/dev/null
|
|
Packit Service |
e080da |
\rm -rf /dev/patchy*
|
|
Packit Service |
e080da |
return 0
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# Find out how this file was sourced, source traps.rc the same way, and use
|
|
Packit Service |
e080da |
# push_trapfunc to make sure cleanup_lvm gets called before we exit.
|
|
Packit Service |
e080da |
. $(dirname ${BASH_SOURCE[0]})/traps.rc
|
|
Packit Service |
e080da |
push_trapfunc cleanup_lvm
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
########################################################
|
|
Packit Service |
e080da |
# Private Functions
|
|
Packit Service |
e080da |
########################################################
|
|
Packit Service |
e080da |
function _setup_lvm() {
|
|
Packit Service |
e080da |
local count=$LVM_COUNT
|
|
Packit Service |
e080da |
local b
|
|
Packit Service |
e080da |
local i
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
for i in `seq 1 $count`; do
|
|
Packit Service |
e080da |
b="B$i"
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
_create_vhd ${!b} $i
|
|
Packit Service |
e080da |
_create_lv ${!b} $i
|
|
Packit Service |
e080da |
_mount_lv $i
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function _cleanup_lvm() {
|
|
Packit Service |
e080da |
local count=$LVM_COUNT
|
|
Packit Service |
e080da |
local b
|
|
Packit Service |
e080da |
local i
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
for i in `seq 1 $count`; do
|
|
Packit Service |
e080da |
b="B$i"
|
|
Packit Service |
e080da |
_umount_lv $i
|
|
Packit Service |
e080da |
_remove_lv $i
|
|
Packit Service |
e080da |
_remove_vhd ${!b}
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function _cleanup_lvm_again() {
|
|
Packit Service |
e080da |
local file
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
mount | grep $LVM_PREFIX | awk '{print $3}' | xargs -r ${UMOUNT_F}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
/sbin/vgs | grep $LVM_PREFIX | awk '{print $1}' | xargs -r vgremove -f
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
find $B0 -name "${LVM_PREFIX}_loop" | xargs -r losetup -d
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
find $B0 -name "${LVM_PREFIX}*" | xargs -r rm -rf
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
find /run/gluster/snaps -name "*${LVM_PREFIX}*" | xargs -r rm -rf
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
for file in `ls /run/gluster/snaps`; do
|
|
Packit Service |
e080da |
find /run/gluster/snaps/$file -mmin -2 | xargs -r rm -rf
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
########################################################
|
|
Packit Service |
e080da |
########################################################
|
|
Packit Service |
e080da |
function _create_vhd() {
|
|
Packit Service |
e080da |
local dir=$1
|
|
Packit Service |
e080da |
local num=$2
|
|
Packit Service |
e080da |
local loop_num=`expr $2 + 8`
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
fallocate -l${VHD_SIZE} $dir/${LVM_PREFIX}_vhd
|
|
Packit Service |
e080da |
mknod -m660 $dir/${LVM_PREFIX}_loop b 7 $loop_num
|
|
Packit Service |
e080da |
/sbin/losetup $dir/${LVM_PREFIX}_loop $dir/${LVM_PREFIX}_vhd
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function _create_lv() {
|
|
Packit Service |
e080da |
local dir=$1
|
|
Packit Service |
e080da |
local num=$2
|
|
Packit Service |
e080da |
local vg="VG$num"
|
|
Packit Service |
e080da |
local thinpoolsize="200M"
|
|
Packit Service |
e080da |
local virtualsize="150M"
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
/sbin/pvcreate $dir/${LVM_PREFIX}_loop
|
|
Packit Service |
e080da |
/sbin/vgcreate ${!vg} $dir/${LVM_PREFIX}_loop
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
/sbin/lvcreate -L ${thinpoolsize} -T /dev/${!vg}/thinpool
|
|
Packit Service |
e080da |
/sbin/lvcreate -V ${virtualsize} -T /dev/${!vg}/thinpool -n brick_lvm
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
mkfs.xfs -f /dev/${!vg}/brick_lvm
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function _mount_lv() {
|
|
Packit Service |
e080da |
local num=$1
|
|
Packit Service |
e080da |
local vg="VG$num"
|
|
Packit Service |
e080da |
local l="L$num"
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
mount -t xfs -o nouuid /dev/${!vg}/brick_lvm ${!l}
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function _umount_lv() {
|
|
Packit Service |
e080da |
local num=$1
|
|
Packit Service |
e080da |
local l="L$num"
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
${UMOUNT_F} ${!l} 2>/dev/null || true
|
|
Packit Service |
e080da |
rmdir ${!l} 2>/dev/null || true
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function _remove_lv() {
|
|
Packit Service |
e080da |
local num=$1
|
|
Packit Service |
e080da |
local vg="VG$num"
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
vgremove -f ${!vg}
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function _remove_vhd() {
|
|
Packit Service |
e080da |
local dir=$1
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
losetup -d $dir/${LVM_PREFIX}_loop
|
|
Packit Service |
e080da |
rm -f $dir/${LVM_PREFIX}_loop
|
|
Packit Service |
e080da |
rm -f $dir/${LVM_PREFIX}_vhd
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
########################################################
|
|
Packit Service |
e080da |
# Utility Functions
|
|
Packit Service |
e080da |
########################################################
|
|
Packit Service |
e080da |
function snapshot_exists() {
|
|
Packit Service |
e080da |
local clitype=$1
|
|
Packit Service |
e080da |
local snapname=$2
|
|
Packit Service |
e080da |
local cli=$CLI
|
|
Packit Service |
e080da |
if [ "$clitype" == "1" ]; then
|
|
Packit Service |
e080da |
cli=$CLI_1;
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
if [ "$clitype" == "2" ]; then
|
|
Packit Service |
e080da |
cli=$CLI_2;
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
$cli snapshot list | egrep -q "^$snapname\$"
|
|
Packit Service |
e080da |
return $?
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
#Create N number of snaps in a given volume
|
|
Packit Service |
e080da |
#Arg1 : <Volume Name>
|
|
Packit Service |
e080da |
#Arg2 : <Count of snaps to be created>
|
|
Packit Service |
e080da |
#Arg3 : <Snap Name Pattern>
|
|
Packit Service |
e080da |
#Return: Returns 0 if all snaps are created ,
|
|
Packit Service |
e080da |
# if not will return exit code of last failed
|
|
Packit Service |
e080da |
# snap create command.
|
|
Packit Service |
e080da |
function create_n_snapshots() {
|
|
Packit Service |
e080da |
local cli=$1
|
|
Packit Service |
e080da |
local vol=$1
|
|
Packit Service |
e080da |
local snap_count=$2
|
|
Packit Service |
e080da |
local snap_name=$3
|
|
Packit Service |
e080da |
local ret=0
|
|
Packit Service |
e080da |
for i in `seq 1 $snap_count`; do
|
|
Packit Service |
e080da |
$CLI_1 snapshot create $snap_name$i ${vol} no-timestamp &
|
|
Packit Service |
e080da |
PID_1=$!
|
|
Packit Service |
e080da |
wait $PID_1
|
|
Packit Service |
e080da |
ret=$?
|
|
Packit Service |
e080da |
if [ "$ret" != "0" ]; then
|
|
Packit Service |
e080da |
break
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
return $ret
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
#Delete N number of snaps in a given volume
|
|
Packit Service |
e080da |
#Arg1 : <Volume Name>
|
|
Packit Service |
e080da |
#Arg2 : <Count of snaps to be deleted>
|
|
Packit Service |
e080da |
#Arg3 : <Snap Name Pattern>
|
|
Packit Service |
e080da |
#Return: Returns 0 if all snaps are Delete,
|
|
Packit Service |
e080da |
# if not will return exit code of last failed
|
|
Packit Service |
e080da |
# snap delete command.
|
|
Packit Service |
e080da |
function delete_n_snapshots() {
|
|
Packit Service |
e080da |
local vol=$1
|
|
Packit Service |
e080da |
local snap_count=$2
|
|
Packit Service |
e080da |
local snap_name=$3
|
|
Packit Service |
e080da |
local ret=0
|
|
Packit Service |
e080da |
for i in `seq 1 $snap_count`; do
|
|
Packit Service |
e080da |
$CLI_1 snapshot delete $snap_name$i &
|
|
Packit Service |
e080da |
PID_1=$!
|
|
Packit Service |
e080da |
wait $PID_1
|
|
Packit Service |
e080da |
temp=$?
|
|
Packit Service |
e080da |
if [ "$temp" != "0" ]; then
|
|
Packit Service |
e080da |
ret=$temp
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
return $ret
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
#Check for the existance of N number of snaps in a given volume
|
|
Packit Service |
e080da |
#Arg1 : <Volume Name>
|
|
Packit Service |
e080da |
#Arg2 : <Count of snaps to be checked>
|
|
Packit Service |
e080da |
#Arg3 : <Snap Name Pattern>
|
|
Packit Service |
e080da |
#Return: Returns 0 if all snaps exists,
|
|
Packit Service |
e080da |
# if not will return exit code of last failed
|
|
Packit Service |
e080da |
# snapshot_exists().
|
|
Packit Service |
e080da |
function snapshot_n_exists() {
|
|
Packit Service |
e080da |
local vol=$1
|
|
Packit Service |
e080da |
local snap_count=$2
|
|
Packit Service |
e080da |
local snap_name=$3
|
|
Packit Service |
e080da |
local ret=0
|
|
Packit Service |
e080da |
for i in `seq 1 $snap_count`; do
|
|
Packit Service |
e080da |
snapshot_exists 1 $snap_name$i
|
|
Packit Service |
e080da |
ret=$?
|
|
Packit Service |
e080da |
if [ "$ret" != "0" ]; then
|
|
Packit Service |
e080da |
break
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
return $ret
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
#Check for the status of snapshot for a volume
|
|
Packit Service |
e080da |
#Arg1 : <Snap Name>
|
|
Packit Service |
e080da |
function snapshot_status()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
local snap=$1;
|
|
Packit Service |
e080da |
local cli=$CLI_1;
|
|
Packit Service |
e080da |
if [ "$cli" = "" ]; then
|
|
Packit Service |
e080da |
cli=$CLI
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
#TODO: Right now just fetches the status of the single snap volume.
|
|
Packit Service |
e080da |
#When snapshot will have multiple snap volumes, should have a
|
|
Packit Service |
e080da |
#cummulative logic for status
|
|
Packit Service |
e080da |
$cli snapshot info $snap | grep "Status" | sed 's/.*: //';
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
#Check the different status of a particular snapshot
|
|
Packit Service |
e080da |
#Arg1 : <Snap name>
|
|
Packit Service |
e080da |
#Arg2 : <Filed in status>
|
|
Packit Service |
e080da |
#Arg3 : <Expected value>
|
|
Packit Service |
e080da |
function snapshot_snap_status()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
local snap=$1;
|
|
Packit Service |
e080da |
local cli=$CLI_1;
|
|
Packit Service |
e080da |
local field=$2;
|
|
Packit Service |
e080da |
local expected=$3;
|
|
Packit Service |
e080da |
if [ "$cli" = "" ]; then
|
|
Packit Service |
e080da |
cli=$CLI
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
for i in $($cli snapshot status $snap | grep "$field" | \
|
|
Packit Service |
e080da |
cut -d ':' -f2 | awk '{print $1}') ;
|
|
Packit Service |
e080da |
do
|
|
Packit Service |
e080da |
if [ "$i" != "$expected" ]; then
|
|
Packit Service |
e080da |
echo "Failed"
|
|
Packit Service |
e080da |
return 1;
|
|
Packit Service |
e080da |
fi;
|
|
Packit Service |
e080da |
done;
|
|
Packit Service |
e080da |
echo "Success"
|
|
Packit Service |
e080da |
return 0;
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# TODO: Cleanup code duplication
|
|
Packit Service |
e080da |
function volinfo_field()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
local vol=$1;
|
|
Packit Service |
e080da |
local field=$2;
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
$CLI_1 volume info $vol | grep "^$field: " | sed 's/.*: //';
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function volume_exists() {
|
|
Packit Service |
e080da |
$CLI_1 volume info $1 > /dev/null 2>&1
|
|
Packit Service |
e080da |
if [ $? -eq 0 ]; then
|
|
Packit Service |
e080da |
echo "Y"
|
|
Packit Service |
e080da |
else
|
|
Packit Service |
e080da |
echo "N"
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# arg-1 : From which node the command should be trigerred
|
|
Packit Service |
e080da |
# Ex : $CLI_1, $CLI_2, etc.
|
|
Packit Service |
e080da |
# arg-2 : Volume name
|
|
Packit Service |
e080da |
# arg-3 : Starting index for the snapname "snap$i"
|
|
Packit Service |
e080da |
# arg-4 : Number of snapshots to be taken
|
|
Packit Service |
e080da |
function snap_create()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
eval local cli_index=\$$1
|
|
Packit Service |
e080da |
local volname=$2
|
|
Packit Service |
e080da |
local i=$3
|
|
Packit Service |
e080da |
local limit=$[$i + $4]
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
while [ $i -lt $limit ]
|
|
Packit Service |
e080da |
do
|
|
Packit Service |
e080da |
$cli_index snapshot create snap$i $volname no-timestamp
|
|
Packit Service |
e080da |
i=$[$i+1]
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# arg-1 : From which node the command should be trigerred
|
|
Packit Service |
e080da |
# Ex : $CLI_1. $CLI_2, etc.
|
|
Packit Service |
e080da |
# arg-2 : Volume name.
|
|
Packit Service |
e080da |
function get_snap_count()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
eval local cli_index=\$$1
|
|
Packit Service |
e080da |
local volname=$2
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
if [ -z "$2" ]
|
|
Packit Service |
e080da |
then
|
|
Packit Service |
e080da |
$cli_index snapshot list | grep -v "No snapshots present"\
|
|
Packit Service |
e080da |
| wc -l
|
|
Packit Service |
e080da |
else
|
|
Packit Service |
e080da |
$cli_index snapshot list $volname\
|
|
Packit Service |
e080da |
| grep -v "No snapshots present"\
|
|
Packit Service |
e080da |
| wc -l
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# arg-1 : From which node the command should be trigerred
|
|
Packit Service |
e080da |
# Ex : $CLI_1, $CLI_2, etc.
|
|
Packit Service |
e080da |
# arg-2 : Starting index for the snapname "snap$i"
|
|
Packit Service |
e080da |
# arg-3 : Number of snapshots to be deleted.
|
|
Packit Service |
e080da |
function snap_delete()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
eval local cli_index=\$$1
|
|
Packit Service |
e080da |
local i=$2
|
|
Packit Service |
e080da |
local limit=$[$i + $3]
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
while [ $i -lt $limit ]
|
|
Packit Service |
e080da |
do
|
|
Packit Service |
e080da |
$cli_index snapshot delete snap$i
|
|
Packit Service |
e080da |
i=$[$i+1]
|
|
Packit Service |
e080da |
done
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# arg-1 : From which node the command should be triggered
|
|
Packit Service |
e080da |
# Ex : $CLI_1, $CLI_2, etc.
|
|
Packit Service |
e080da |
# arg-2 : key value
|
|
Packit Service |
e080da |
function snap_config()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
eval local cli_index=\$$1
|
|
Packit Service |
e080da |
local var=$2
|
|
Packit Service |
e080da |
$cli_index snapshot config | grep "^$var" | sed 's/.*: //'
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function check_if_snapd_exist() {
|
|
Packit Service |
e080da |
local pid
|
|
Packit Service |
e080da |
pid=$(ps aux | grep "snapd" | grep -v grep | awk '{print $2}')
|
|
Packit Service |
e080da |
if [ -n "$pid" ]; then echo "Y"; else echo "N"; fi
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# returns number of snapshot being displayed in ".snaps" directory
|
|
Packit Service |
e080da |
function uss_count_snap_displayed() {
|
|
Packit Service |
e080da |
local path=$1
|
|
Packit Service |
e080da |
ls $path/.snaps | wc -l
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function snap_info_volume()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
eval local cli_index=\$$1
|
|
Packit Service |
e080da |
local var=$2
|
|
Packit Service |
e080da |
local vol=$3
|
|
Packit Service |
e080da |
$cli_index snapshot info volume $vol | grep "^$var" | sed 's/.*: //'
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function snap_config_volume()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
eval local cli_index=\$$1
|
|
Packit Service |
e080da |
local var=$2
|
|
Packit Service |
e080da |
local vol=$3
|
|
Packit Service |
e080da |
$cli_index snapshot config $vol| grep "^$var" | sed 's/.*: //'
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
#return specific fields of xml output
|
|
Packit Service |
e080da |
function get-cmd-field-xml()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
local cli=$CLI_1;
|
|
Packit Service |
e080da |
if [ "$cli" = "" ]; then
|
|
Packit Service |
e080da |
cli=$CLI
|
|
Packit Service |
e080da |
fi
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
COMMAND=$1
|
|
Packit Service |
e080da |
PATTERN=$2
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
$cli $COMMAND --xml | xmllint --format - | grep $PATTERN
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
function get_snap_brick_status()
|
|
Packit Service |
e080da |
{
|
|
Packit Service |
e080da |
local snap=$1;
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
$CLI snapshot status $snap | grep "Brick Running" | sed 's/.*: //';
|
|
Packit Service |
e080da |
}
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
case $OSTYPE in
|
|
Packit Service |
e080da |
NetBSD)
|
|
Packit Service |
e080da |
echo "Skip test on LVM which is not available on NetBSD" >&2
|
|
Packit Service |
e080da |
SKIP_TESTS
|
|
Packit Service |
e080da |
exit 0
|
|
Packit Service |
e080da |
;;
|
|
Packit Service |
e080da |
*)
|
|
Packit Service |
e080da |
;;
|
|
Packit Service |
e080da |
esac
|