diff options
| author | Krutika Dhananjay <kdhananj@redhat.com> | 2013-09-17 17:01:07 +0530 | 
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2014-04-17 11:38:20 -0700 | 
| commit | e55f3fe25a4fd2cc9021fad97faedc5e94aa4e7c (patch) | |
| tree | 49b54247b4a907378814c033d8ffe88809f2d0af /extras/post-upgrade-script-for-quota.sh | |
| parent | c7d59dc00860ac6c355845bf79ba787d9e92e036 (diff) | |
Add upgrade scripts for quota
Change-Id: I289662300d32f75e2fc6e789037c3224054a38a5
BUG: 969461
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
Reviewed-on: http://review.gluster.org/7418
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'extras/post-upgrade-script-for-quota.sh')
| -rwxr-xr-x | extras/post-upgrade-script-for-quota.sh | 65 | 
1 files changed, 65 insertions, 0 deletions
diff --git a/extras/post-upgrade-script-for-quota.sh b/extras/post-upgrade-script-for-quota.sh new file mode 100755 index 00000000000..c226687935d --- /dev/null +++ b/extras/post-upgrade-script-for-quota.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +#The post-upgrade script must be executed after all the nodes in the cluster +#have upgraded. +#Also, all the clients accessing the given volume must also be upgraded +#before the script is run. +#Make sure glusterd and the brick processes are running on all nodes in the +#cluster post upgrade. +#Execute this script on the node where the pre-upgrade script for quota was run. + +VOL=$1; + +BACKUP_DIR=/var/tmp/glusterfs/quota-config-backup + +function set_limits { +        local var=$(gluster volume info $1 | grep 'features.quota'| cut -d" " -f2); + +        if  [ -z "$var" ] || [ "$var" == "off" ]; then +                if [ $2 -eq '0' ]; then +                        echo "Volume $1 does not have quota enabled. " \ +                             "Exiting ..." +                        exit 1 +                fi +        else +                gluster volume set $1 default-soft-limit 80% +                if [ $? -ne '0' ]; then +                        echo "Post-upgrade process failed." \ +                             "Please address the error and run " \ +                             "post-upgrade-script.sh on volume $VOL again." +                        exit 1 +                fi + +                gluster volume start $1 force +                sleep 3; + +                local path_array=( $(cat $BACKUP_DIR/vol_$1 | tail -n +3 | awk '{print $1}') ) +                local limit_array=( $(cat $BACKUP_DIR/vol_$1 | tail -n +3 | awk '{print $2}') ) +                local len=${#path_array[@]} + +                for ((j=0; j<$len; j++)) +                    do +                            gluster volume quota $1 limit-usage ${path_array[$j]} ${limit_array[j]}; +                            if [ $? -eq 0 ]; then +                                    echo "Setting limit (${limit_array[j]}) on " \ +                                         "path ${path_array[$j]} has been " \ +                                         "successful" +                            fi +                    done +        fi; +} + +if [ -z $1 ]; then +        echo "Please provide volume name or 'all'"; +        exit 1; +fi + +if [ "$1" == "all" ]; then +        for VOL in `gluster volume list`; +            do +                    set_limits $VOL '1'; +            done + +else +        set_limits $1 '0'; +fi  | 
