diff options
| -rwxr-xr-x | extras/hook-scripts/set/post/S31ganesha-set.sh | 110 | 
1 files changed, 56 insertions, 54 deletions
diff --git a/extras/hook-scripts/set/post/S31ganesha-set.sh b/extras/hook-scripts/set/post/S31ganesha-set.sh index 30f2772fa68..0f45ef4cac3 100755 --- a/extras/hook-scripts/set/post/S31ganesha-set.sh +++ b/extras/hook-scripts/set/post/S31ganesha-set.sh @@ -9,7 +9,6 @@ LOG="/tmp/ganesha.log"  gnfs="enabled"  enable_ganesha=""  host_name="none" -IS_HOST_SET="NO"  LOC="" @@ -52,9 +51,9 @@ function parse_args ()  function check_if_host_set()  { -        if cat /var/lib/glusterd/vols/$VOL/info | grep -q "nfs-ganesha.host" +        if ! cat /var/lib/glusterd/vols/$VOL/info | grep -q "nfs-ganesha.host"                  then -                IS_HOST_SET="YES" +                exit 1          fi  } @@ -103,9 +102,10 @@ function write_conf()          echo "}"          echo "Access_type = RW;"          echo "Squash = No_root_squash;" +        echo "Disable_ACL = TRUE;"          echo "Pseudo=\"/$1\";" -        echo "NFS_Protocols = \"3,4\" ;" -        echo "Transport_Protocols = \"UDP,TCP\" ;" +        echo "Protocols = \"3,4\" ;" +        echo "Transports = \"UDP,TCP\" ;"          echo "SecType = \"sys\";"          echo "Tag = \"$1\";"          echo "}" @@ -144,53 +144,52 @@ function dynamic_export_remove()          removed_id=`cat $GANESHA_DIR/exports/export.$VOL.conf |\  grep Export_Id | cut -d " " -f3`          check_cmd_status `echo $?` -        dbus-send  --system \ +        dbus-send --print-reply --system \  --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \  org.ganesha.nfsd.exportmgr.RemoveExport int32:$removed_id +        check_cmd_status `echo $?`  }  #This function adds a new export dynamically by sending dbus signals  function dynamic_export_add()  { -        dbus-send  --system --dest=org.ganesha.nfsd \ +        dbus-send --print-reply --system --dest=org.ganesha.nfsd \  /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.AddExport \ -string:$GANESHA_DIR/exports/export.$VOL.conf -        echo $? +string:$GANESHA_DIR/exports/export.$VOL.conf string:"EXPORT(Tag=$VOL)" +        check_cmd_status `echo $?` +  }  function start_ganesha()  { -        if [ "$IS_HOST_SET" = "YES" ] +        check_gluster_nfs +        #Remove export entry from nfs-ganesha.conf +        sed -i /$VOL.conf/d  $CONF1 +        #Create a new export entry +        export_add +        if ! ps aux | grep -q  "[g]anesha.nfsd"                  then -                check_gluster_nfs -                #Remove export entry from nfs-ganesha.conf -                sed -i /$VOL.conf/d  $CONF1 -                sleep 4 -                #Create a new export entry -                export_add -                if ! ps aux | grep -q  "[g]anesha.nfsd" -                        then -                        if ls /usr/bin/ | grep -q "ganesha.nfsd" -                                then -                                /usr/bin/ganesha.nfsd -f $CONF1 -L $LOG -N NIV_FULL_DEBUG -d -                                sleep 2 -                        else -                                /usr/local/bin/ganesha.nfsd -f $CONF1 -L $LOG -N NIV_FULL_DEBUG -d -                                sleep 2 -                        fi +                if ls /usr/bin/ganesha.nfsd +                       then +                       /usr/bin/ganesha.nfsd -f $CONF1 -L $LOG -N NIV_EVENT -d +                        sleep 2                  else -                        ret=$(dynamic_export_add $VOL) +                        /usr/local/bin/ganesha.nfsd -f $CONF1 -L $LOG -N NIV_EVENT -d +                        sleep 2                  fi +        else +                        dynamic_export_add $VOL +        fi -              if  !(  ps aux | grep -q "[g]anesha.nfsd") || [ "$ret" == "1" ] -                        then -                         rm -rf $GANESHA_DIR/exports/* -                         rm -rf $GANESHA_DIR/.export_added -                         exit 1 -                fi -         fi +        if  !(  ps aux | grep -q "[g]anesha.nfsd") +                then +                rm -rf $GANESHA_DIR/exports/* +                rm -rf $GANESHA_DIR/.export_added +                exit 1 +        fi +  }  #This function generates a new config file when ganesha.host is set @@ -218,9 +217,18 @@ function check_ganesha_dir()                  if [ ! -d "$GANESHA_DIR" ];                           then                           mkdir $GANESHA_DIR +                         check_cmd_status `echo $?`                  fi                  cp /etc/glusterfs-ganesha/nfs-ganesha.conf $GANESHA_DIR/ +                check_cmd_status `echo $?` +        fi +        if [ ! -d "$GANESHA_DIR/exports" ]; +                then +                mkdir $GANESHA_DIR/exports +                check_cmd_status `echo $?`          fi + +  }  function stop_ganesha() @@ -240,35 +248,29 @@ function stop_ganesha()          parse_args $@          check_ganesha_dir $VOL -        if [ ! -d "$GANESHA_DIR/exports" ]; -                then -                mkdir $GANESHA_DIR/exports -        fi          if echo $enable_ganesha | grep -q -i "ON"                  then                  check_if_host_set $VOL -                start_ganesha +                if ! showmount -e localhost | cut -d "" -f1 | grep -q "$VOL[[:space:]]" +                        then +                        start_ganesha +                fi          elif echo $enable_ganesha | grep -q -i "OFF"                  then                  check_if_host_set $VOL -                if [ "$IS_HOST_SET" = "YES" ] -                        then -                        stop_ganesha -                        exit 0 -                fi +                stop_ganesha          fi          if [ "$host_name" != "none" ];                  then -                check_if_host_set $VOL -                set_hostname -                         if  cat /var/lib/glusterd/vols/$VOL/info\ -| grep -i -q  "nfs-ganesha.enable=on" -                                  then -                                  dynamic_export_remove $VOL -                                  rm -rf $GANESHA_DIR/exports/export.$VOL.conf -                                  set_hostname -                                  start_ganesha -                         fi +                if showmount -e localhost | cut -d "" -f1 | grep -q "$VOL[[:space:]]" +                        then +                        dynamic_export_remove $VOL +                        set_hostname +                        start_ganesha +                else +                        set_hostname +                fi +          fi  | 
