From 35c6ca05d8ee0e1be1b67ac64d32c21b195aaeea Mon Sep 17 00:00:00 2001 From: Sachin Pandit Date: Mon, 23 Jun 2014 09:35:52 +0530 Subject: feature/snapshot : Interface to delete all snapshots belonging to a system as-well-as to a particular volume. Problem : With the current design we can only delete a single snapshot. And the deletion of volume which contains snapshot is not allowed. Because of that user might be forced to delete all the snapshots manually before he is allowed to delete a volume. Solution: Following is the interface with which user can delete all the snapshots of a system or belonging to a particular volume. Syntax : gluster snapshot delete all *To delete all the snapshots present in a system Syntax : gluster snapshot delete volume *To deletes all the snapshot present in a volume specified. ======================================================================== Sample Output: Case 1 : Deleting a single snapshot. [root@snapshot-24 glusterfs]# gluster snapshot delete snap1 Deleting snap will erase all the information about the snap. Do you still want to continue? (y/n) y snapshot delete: snap1: snap removed successfully ----------------------------------------------------------------- Case 2 : Deleting all the snapshots in a Volume. [root@snapshot-24 glusterfs]# gluster snapshot delete volume vol1 Volume (vol1) contains 9 snapshot(s). Do you still want to continue and delete them? (y/n) y snapshot delete: snap2: snap removed successfully snapshot delete: snap3: snap removed successfully snapshot delete: snap4: snap removed successfully snapshot delete: snap5: snap removed successfully . . . ----------------------------------------------------------------- Case 3 : Deleting all the snapshots in a system. [root@snapshot-24 glusterfs]# gluster snapshot delete all System contains 4 snapshot(s). Do you still want to continue and delete them? (y/n) y snapshot delete: snap7: snap removed successfully snapshot delete: snap8: snap removed successfully snapshot delete: snap9: snap removed successfully snapshot delete: snap10: snap removed successfully ======================================================================== Change-Id: Ifec8e128ab2011cbbba208376b9c92cfbe7d8d71 BUG: 1112613 Signed-off-by: Sachin Pandit Reviewed-on: http://review.gluster.org/8162 Reviewed-by: Atin Mukherjee Tested-by: Gluster Build System Reviewed-by: Avra Sengupta Reviewed-by: Raghavendra Bhat Reviewed-by: Kaushal M --- tests/snapshot.rc | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) (limited to 'tests/snapshot.rc') diff --git a/tests/snapshot.rc b/tests/snapshot.rc index a208fa3d410..408b5a72a0c 100755 --- a/tests/snapshot.rc +++ b/tests/snapshot.rc @@ -318,3 +318,69 @@ function volume_exists() { return 0 fi } + +# arg-1 : From which node the command should be trigerred +# Ex : $CLI_1, $CLI_2, etc. +# arg-2 : Volume name +# arg-3 : Starting index for the snapname "snap$i" +# arg-4 : Number of snapshots to be taken +function snap_create() +{ + eval local cli_index=\$$1 + local volname=$2 + local i=$3 + local limit=$[$i + $4] + + while [ $i -lt $limit ] + do + $cli_index snapshot create snap$i $volname + i=$[$i+1] + done +} + +# arg-1 : From which node the command should be trigerred +# Ex : $CLI_1. $CLI_2, etc. +# arg-2 : Volume name. +function get_snap_count() +{ + eval local cli_index=\$$1 + local volname=$2 + + + if [ -z "$2" ] + then + $cli_index snapshot list | grep -v "No snapshots present"\ + | wc -l + else + $cli_index snapshot list $volname\ + | grep -v "No snapshots present"\ + | wc -l + fi +} + +# arg-1 : From which node the command should be trigerred +# Ex : $CLI_1, $CLI_2, etc. +# arg-2 : Starting index for the snapname "snap$i" +# arg-3 : Number of snapshots to be deleted. +function snap_delete() +{ + eval local cli_index=\$$1 + local i=$2 + local limit=$[$i + $3] + + while [ $i -lt $limit ] + do + $cli_index snapshot delete snap$i + i=$[$i+1] + done +} + +# arg-1 : From which node the command should be triggered +# Ex : $CLI_1, $CLI_2, etc. +# arg-2 : key value +function snap_config() +{ + eval local cli_index=\$$1 + local var=$2 + $cli_index snapshot config | grep "^$var" | sed 's/.*: //' +} -- cgit