diff options
Diffstat (limited to 'tests/snapshot.rc')
| -rw-r--r--[-rwxr-xr-x] | tests/snapshot.rc | 110 |
1 files changed, 96 insertions, 14 deletions
diff --git a/tests/snapshot.rc b/tests/snapshot.rc index cddbb49584a..f6da514f826 100755..100644 --- a/tests/snapshot.rc +++ b/tests/snapshot.rc @@ -3,7 +3,7 @@ LVM_DEFINED=0 LVM_PREFIX="patchy_snap" LVM_COUNT=0 -VHD_SIZE="1G" +VHD_SIZE="300M" #This function will init B# bricks #This is used when launch_cluster is @@ -16,6 +16,10 @@ function init_n_bricks() { done } +count_snaps () { + ls $1/.snaps | wc -l +} + function init_lvm() { if [ "$1" == "" ]; then echo "Error: Invalid argument supplied" @@ -90,6 +94,11 @@ function cleanup_lvm() { return 0 } +# Find out how this file was sourced, source traps.rc the same way, and use +# push_trapfunc to make sure cleanup_lvm gets called before we exit. +. $(dirname ${BASH_SOURCE[0]})/traps.rc +push_trapfunc cleanup_lvm + ######################################################## # Private Functions ######################################################## @@ -123,7 +132,7 @@ function _cleanup_lvm() { function _cleanup_lvm_again() { local file - mount | grep $LVM_PREFIX | awk '{print $3}' | xargs -r umount -f + mount | grep $LVM_PREFIX | awk '{print $3}' | xargs -r ${UMOUNT_F} /sbin/vgs | grep $LVM_PREFIX | awk '{print $1}' | xargs -r vgremove -f @@ -154,8 +163,8 @@ function _create_lv() { local dir=$1 local num=$2 local vg="VG$num" - local thinpoolsize="0.8G" - local virtualsize="0.6G" + local thinpoolsize="200M" + local virtualsize="150M" /sbin/pvcreate $dir/${LVM_PREFIX}_loop /sbin/vgcreate ${!vg} $dir/${LVM_PREFIX}_loop @@ -178,7 +187,7 @@ function _umount_lv() { local num=$1 local l="L$num" - umount -f ${!l} 2>/dev/null || true + ${UMOUNT_F} ${!l} 2>/dev/null || true rmdir ${!l} 2>/dev/null || true } @@ -228,7 +237,7 @@ function create_n_snapshots() { local snap_name=$3 local ret=0 for i in `seq 1 $snap_count`; do - $CLI_1 snapshot create $snap_name$i ${vol}& + $CLI_1 snapshot create $snap_name$i ${vol} no-timestamp & PID_1=$! wait $PID_1 ret=$? @@ -291,11 +300,42 @@ function snapshot_n_exists() { function snapshot_status() { local snap=$1; + local cli=$CLI_1; + if [ "$cli" = "" ]; then + cli=$CLI + fi #TODO: Right now just fetches the status of the single snap volume. #When snapshot will have multiple snap volumes, should have a #cummulative logic for status - $CLI_1 snapshot info $snap | grep "Status" | sed 's/.*: //'; + $cli snapshot info $snap | grep "Status" | sed 's/.*: //'; +} + + +#Check the different status of a particular snapshot +#Arg1 : <Snap name> +#Arg2 : <Filed in status> +#Arg3 : <Expected value> +function snapshot_snap_status() +{ + + local snap=$1; + local cli=$CLI_1; + local field=$2; + local expected=$3; + if [ "$cli" = "" ]; then + cli=$CLI + fi + for i in $($cli snapshot status $snap | grep "$field" | \ + cut -d ':' -f2 | awk '{print $1}') ; + do + if [ "$i" != "$expected" ]; then + echo "Failed" + return 1; + fi; + done; +echo "Success" +return 0; } @@ -310,12 +350,11 @@ function volinfo_field() function volume_exists() { - local volname=$1 - $CLI_1 volume info $volname 2>&1 | grep -q 'does not exist' + $CLI_1 volume info $1 > /dev/null 2>&1 if [ $? -eq 0 ]; then - return 1 + echo "Y" else - return 0 + echo "N" fi } @@ -333,7 +372,7 @@ function snap_create() while [ $i -lt $limit ] do - $cli_index snapshot create snap$i $volname + $cli_index snapshot create snap$i $volname no-timestamp i=$[$i+1] done } @@ -391,12 +430,55 @@ function check_if_snapd_exist() { if [ -n "$pid" ]; then echo "Y"; else echo "N"; fi } +# returns number of snapshot being displayed in ".snaps" directory +function uss_count_snap_displayed() { + local path=$1 + ls $path/.snaps | wc -l +} + +function snap_info_volume() +{ + eval local cli_index=\$$1 + local var=$2 + local vol=$3 + $cli_index snapshot info volume $vol | grep "^$var" | sed 's/.*: //' +} + +function snap_config_volume() +{ + eval local cli_index=\$$1 + local var=$2 + local vol=$3 + $cli_index snapshot config $vol| grep "^$var" | sed 's/.*: //' +} + +#return specific fields of xml output +function get-cmd-field-xml() +{ + local cli=$CLI_1; + if [ "$cli" = "" ]; then + cli=$CLI + fi + + COMMAND=$1 + PATTERN=$2 + + $cli $COMMAND --xml | xmllint --format - | grep $PATTERN +} + +function get_snap_brick_status() +{ + local snap=$1; + + $CLI snapshot status $snap | grep "Brick Running" | sed 's/.*: //'; +} + case $OSTYPE in NetBSD) echo "Skip test on LVM which is not available on NetBSD" >&2 SKIP_TESTS exit 0 ;; -*) +*) ;; -esac +esac |
