diff options
| author | Milan Zink <mzink@redhat.com> | 2018-01-10 13:04:42 +0100 | 
|---|---|---|
| committer | jiffin tony Thottan <jthottan@redhat.com> | 2018-04-06 12:47:56 +0000 | 
| commit | dbb838d7eb993816e06cc993ee82c3272d5b1586 (patch) | |
| tree | 2e77e7f046b10d268c9e830c4edd00cc48068905 | |
| parent | 479bea17e75d8e75a8901d01b3fd3627bfd8991c (diff) | |
extras/hooks: Fix S10selinux-label-brick.sh hook script
* script was failng due to syntax error
* shellcheck issues fixed
* improved performance: semanage & restorecon is being run on unique path
Upstream reference:
>Change-Id: I58b357d9fd37586004a2a518f7a5d1c5c9ddd7e3
>BUG: 1533342
>Signed-off-by: Milan Zink <zeten30@gmail.com>
Change-Id: I58b357d9fd37586004a2a518f7a5d1c5c9ddd7e3
BUG: 1546627
Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
| -rwxr-xr-x | extras/hook-scripts/create/post/S10selinux-label-brick.sh | 57 | 
1 files changed, 29 insertions, 28 deletions
diff --git a/extras/hook-scripts/create/post/S10selinux-label-brick.sh b/extras/hook-scripts/create/post/S10selinux-label-brick.sh index f38555c26c0..a727226a492 100755 --- a/extras/hook-scripts/create/post/S10selinux-label-brick.sh +++ b/extras/hook-scripts/create/post/S10selinux-label-brick.sh @@ -14,48 +14,49 @@ OPTSPEC="volname:"  VOL=  parse_args () { -        ARGS=$(getopt -l $OPTSPEC  -name $PROGNAME $@) -        eval set -- "$ARGS" - -        while true; do -        case $1 in -        --volname) -         shift -         VOL=$1 -         ;; -        *) -         shift -         break -         ;; -        esac +  ARGS=$(getopt -o '' -l ${OPTSPEC} -n ${PROGNAME} -- "$@") +  eval set -- "${ARGS}" + +  while true; do +    case ${1} in +      --volname) +        shift +        VOL=${1} +      ;; +      *)          shift -        done +        break +      ;; +    esac +    shift +  done  }  set_brick_labels()  { -        volname=$1 +  volname=${1} -        # grab the path for each local brick -        brickdirs=$(grep '^path=' /var/lib/glusterd/vols/${volname}/bricks/* | cut -d= -f 2) +  # grab the path for each local brick +  brickpath="/var/lib/glusterd/vols/${volname}/bricks/*" +  brickdirs=$(grep '^path=' "${brickpath}" | cut -d= -f 2 | sort -u) -        for b in $brickdirs -        do -                # Add a file context for each brick path and associate with the -                # glusterd_brick_t SELinux type. -                semanage fcontext --add -t glusterd_brick_t -r s0 $b(/.*)? +  for b in ${brickdirs}; do +    # Add a file context for each brick path and associate with the +    # glusterd_brick_t SELinux type. +    pattern="${b}\(/.*\)?" +    semanage fcontext --add -t glusterd_brick_t -r s0 "${pattern}" -                # Set the labels on the new brick path. -                restorecon -R $b -        done +    # Set the labels on the new brick path. +    restorecon -R "${b}" +  done  }  SELINUX_STATE=$(which getenforce && getenforce)  [ "${SELINUX_STATE}" = 'Disabled' ] && exit 0  parse_args $@ -[ -z "$VOL" ] && exit 1 +[ -z "${VOL}" ] && exit 1 -set_brick_labels $VOL +set_brick_labels "${VOL}"  exit 0  | 
