diff options
| author | Milan Zink <mzink@redhat.com> | 2018-01-11 11:43:40 +0100 | 
|---|---|---|
| committer | Amar Tumballi <amarts@redhat.com> | 2018-01-30 14:57:35 +0000 | 
| commit | ab068bcc9ef362cf25b3883bbf316a440373817e (patch) | |
| tree | f35829061e630c1969b0fa5ff233798fb138fae1 /extras/hook-scripts | |
| parent | c142d26e44436d805e476f2d13ac8726052a59c4 (diff) | |
Fix disabled-quota-root-xattr-heal.sh hook script
Fixing all shellchek warnings and POSIX incomapatibilities
Change-Id: I35772bfcf7344c6ed9bd2a7db300c8f58bd3b243
BUG: 1500649
Signed-off-by: Milan Zink <zeten30@gmail.com>
Diffstat (limited to 'extras/hook-scripts')
| -rwxr-xr-x | extras/hook-scripts/add-brick/post/disabled-quota-root-xattr-heal.sh | 149 | 
1 files changed, 76 insertions, 73 deletions
diff --git a/extras/hook-scripts/add-brick/post/disabled-quota-root-xattr-heal.sh b/extras/hook-scripts/add-brick/post/disabled-quota-root-xattr-heal.sh index c371ef58b3e..ca17a903549 100755 --- a/extras/hook-scripts/add-brick/post/disabled-quota-root-xattr-heal.sh +++ b/extras/hook-scripts/add-brick/post/disabled-quota-root-xattr-heal.sh @@ -13,7 +13,7 @@  QUOTA_LIMIT_XATTR="trusted.glusterfs.quota.limit-set"  QUOTA_OBJECT_LIMIT_XATTR="trusted.glusterfs.quota.limit-objects" -MOUNT_DIR=`mktemp -d -t ${0##*/}.XXXXXX`; +MOUNT_DIR=$(mktemp -d -t "${0##*/}.XXXXXX");  OPTSPEC="volname:,version:,gd-workdir:,volume-op:"  PROGNAME="Quota-xattr-heal-add-brick"  VOL_NAME= @@ -23,120 +23,123 @@ GLUSTERD_WORKDIR=  ENABLED_NAME_PREFIX="S28"  ENABLED_NAME="Quota-root-xattr-heal.sh" -THIS_SCRIPT=`echo $0 | awk -F'/' '{print $NF}'` +THIS_SCRIPT=$(echo "${0}" | awk -F'/' '{print $NF}')  cleanup_mountpoint ()  { -        umount -f $MOUNT_DIR; -        if [ 0 -ne $? ] -        then -                return $? -        fi - -        rmdir $MOUNT_DIR; -        if [ 0 -ne $? ] -        then -                return $? -        fi + +  if umount -f "${MOUNT_DIR}"; then +    return $? +  fi + +  if rmdir "${MOUNT_DIR}"; then +    return $? +  fi  }  disable_and_exit ()  { -        if [ -e "$ENABLED_STATE" ] -        then -                unlink $ENABLED_STATE; -                exit $? -        fi +  if [ -e "${ENABLED_STATE}" ] +  then +    unlink "${ENABLED_STATE}"; +    exit $? +  fi -        exit 0 +  exit 0  }  get_and_set_xattr ()  { -        XATTR=$1 - -        VALUE=$(getfattr -n $XATTR -e hex --absolute-names $MOUNT_DIR 2>&1) -        RET=$? -        if [ 0 -eq $RET ]; then -                VALUE=$(echo $VALUE | grep $XATTR | awk -F'=' '{print $NF}') -                setfattr -n $XATTR -v $VALUE $MOUNT_DIR; -                RET=$? -        else -                echo $VALUE | grep -iq "No such attribute" -                if [ 0 -eq $? ]; then -                        RET=0 -                fi -        fi - -        return $RET; +  XATTR=$1 + +  VALUE=$(getfattr -n "${XATTR}" -e hex --absolute-names "${MOUNT_DIR}" 2>&1) +  RET=$? +  if [ 0 -eq ${RET} ]; then +    VALUE=$(echo "${VALUE}" | grep "${XATTR}" | awk -F'=' '{print $NF}') +    setfattr -n "${XATTR}" -v "${VALUE}" "${MOUNT_DIR}"; +    RET=$? +  else +    if echo "${VALUE}" | grep -iq "No such attribute" ; then +      RET=0 +    fi +  fi + +  return ${RET};  }  ##------------------------------------------  ## Parse the arguments  ##------------------------------------------ -ARGS=$(getopt -o '' -l $OPTSPEC -n $PROGNAME -- "$@") +ARGS=$(getopt -o '' -l ${OPTSPEC} -n ${PROGNAME} -- "$@")  eval set -- "$ARGS"  while true;  do -    case $1 in -        --volname) -            shift -            VOL_NAME=$1 -            ;; -        --version) -            shift -            VERSION=$1 -            ;; -        --gd-workdir) -            shift -            GLUSTERD_WORKDIR=$1 -            ;; -        --volume-op) -            shift -            VOLUME_OP=$1 -            ;; -        *) -            shift -            break -            ;; -    esac -    shift +  case $1 in +    --volname) +      shift +      VOL_NAME=$1 +    ;; +    --version) +      shift +      VERSION=$1 +    ;; +    --gd-workdir) +      shift +      GLUSTERD_WORKDIR=$1 +    ;; +    --volume-op) +      shift +      VOLUME_OP=$1 +    ;; +    *) +      shift +      break +    ;; +  esac +  shift  done  ##---------------------------------------- -ENABLED_STATE="$GLUSTERD_WORKDIR/hooks/$VERSION/$VOLUME_OP/post/""$ENABLED_NAME_PREFIX$VOL_NAME""-""$ENABLED_NAME" +# Avoid long lines +ENABLED_STATE_1="${GLUSTERD_WORKDIR}/hooks/${VERSION}/${VOLUME_OP}/" +ENABLED_STATE_2="post/${ENABLED_NAME_PREFIX}${VOL_NAME}-${ENABLED_NAME}" +ENABLED_STATE="${ENABLED_STATE_1}${ENABLED_STATE_2}" -if [[ $THIS_SCRIPT != *"$VOL_NAME"* ]]; then -        exit 0 +if [ "${THIS_SCRIPT}" != *"${VOL_NAME}"* ]; then +  exit 0  fi  ## Is quota enabled? -FLAG=`grep "^features.quota=" $GLUSTERD_WORKDIR/vols/$VOL_NAME/info \ -      | awk -F'=' '{print $NF}'`; -if [ "$FLAG" != "on" ] +FLAG=$(grep "^features.quota=" "${GLUSTERD_WORKDIR}/vols/${VOL_NAME}/info" \ +| awk -F'=' '{print $NF}'); +if [ "${FLAG}" != "on" ]  then -        disable_and_exit +  disable_and_exit  fi  ## -----------------------------------  ## Mount the volume in temp directory.  ## ----------------------------------- -glusterfs -s localhost --volfile-id=$VOL_NAME --client-pid=-42 $MOUNT_DIR; -if [ 0 -ne $? ] +# Avoid long lines +CMD_1="glusterfs -s localhost" +CMD_2="--volfile-id=${VOL_NAME} client-pid=-42 ${MOUNT_DIR}" +CMD="${CMD_1}${CMD_2}" + +if ${CMD}  then -        exit $?; +  exit $?;  fi  ## ----------------------------------- -RET1=$(get_and_set_xattr $QUOTA_LIMIT_XATTR) -RET2=$(get_and_set_xattr $QUOTA_OBJECT_LIMIT_XATTR) +RET1=$(get_and_set_xattr "${QUOTA_LIMIT_XATTR}") +RET2=$(get_and_set_xattr "${QUOTA_OBJECT_LIMIT_XATTR}")  ## Clean up and exit  cleanup_mountpoint; -if [ $RET1 -ne 0 -o $RET2 -ne 0 ]; then -        exit 1 +if [ "${RET1}" -ne 0 ] || [ "${RET2}" -ne 0 ]; then +  exit 1  fi  disable_and_exit;  | 
