diff options
| -rwxr-xr-x | extras/hook-scripts/S30samba-start.sh | 25 | ||||
| -rwxr-xr-x | extras/hook-scripts/S30samba-stop.sh | 19 | 
2 files changed, 37 insertions, 7 deletions
diff --git a/extras/hook-scripts/S30samba-start.sh b/extras/hook-scripts/S30samba-start.sh index 2517f10bfb6..191b1dbb438 100755 --- a/extras/hook-scripts/S30samba-start.sh +++ b/extras/hook-scripts/S30samba-start.sh @@ -23,6 +23,9 @@  PROGNAME="Ssamba-start"  OPTSPEC="volname:"  VOL= +CONFIGFILE= +LOGFILEBASE= +PIDDIR=  function parse_args () {          ARGS=$(getopt -l $OPTSPEC  -name $PROGNAME $@) @@ -43,22 +46,33 @@ function parse_args () {          done  } +function find_config_info () { +        cmdout=`smbd -b | grep smb.conf` +        if [ $? -ne 0 ];then +                echo "Samba is not installed" +                exit 1 +        fi +        CONFIGFILE=`echo $cmdout | awk {'print $2'}` +        PIDDIR=`smbd -b | grep PIDDIR | awk {'print $2'}` +        LOGFILEBASE=`smbd -b | grep 'LOGFILEBASE' | awk '{print $2}'` +} +  function add_samba_share () {          volname=$1          STRING="\n[gluster-$volname]\n"          STRING+="comment = For samba share of volume $volname\n"          STRING+="vfs objects = glusterfs\n"          STRING+="glusterfs:volume = $volname\n" -        STRING+="glusterfs:logfile = /var/log/samba/glusterfs-$volname.log\n" +        STRING+="glusterfs:logfile = $LOGFILEBASE/glusterfs-$volname.log\n"          STRING+="glusterfs:loglevel = 7\n"          STRING+="path = /\n"          STRING+="read only = no\n"          STRING+="guest ok = yes\n" -        printf "$STRING"  >> /etc/samba/smb.conf +        printf "$STRING"  >> ${CONFIGFILE}  }  function sighup_samba () { -        pid=`cat /var/run/smbd.pid` +        pid=`cat ${PIDDIR}/smbd.pid`          if [ "$pid" != "" ]          then                  kill -HUP "$pid"; @@ -87,7 +101,10 @@ if [ $(get_smb "$VOL") = "disable" ]; then          exit 0  fi -if ! grep --quiet "gluster-$VOL" /etc/samba/smb.conf ; then +#Find smb.conf, smbd pid directory and smbd logfile path +find_config_info + +if ! grep --quiet "gluster-$VOL" ${CONFIGFILE} ; then          add_samba_share $VOL          sighup_samba  fi diff --git a/extras/hook-scripts/S30samba-stop.sh b/extras/hook-scripts/S30samba-stop.sh index def87e00ed2..f7150c10e50 100755 --- a/extras/hook-scripts/S30samba-stop.sh +++ b/extras/hook-scripts/S30samba-stop.sh @@ -18,6 +18,8 @@  PROGNAME="Ssamba-stop"  OPTSPEC="volname:"  VOL= +CONFIGFILE= +PIDDIR=  function parse_args () {          ARGS=$(getopt -l $OPTSPEC  -name $PROGNAME $@) @@ -38,15 +40,25 @@ function parse_args () {          done  } +function find_config_info () { +        cmdout=`smbd -b | grep smb.conf` +        if [ $? -ne 0 ];then +                echo "Samba is not installed" +                exit 1 +        fi +        CONFIGFILE=`echo $cmdout | awk {'print $2'}` +        PIDDIR=`smbd -b | grep PIDDIR | awk {'print $2'}` +} +  function del_samba_share () {          volname=$1 -        cp /etc/samba/smb.conf /tmp/smb.conf +        cp ${CONFIGFILE} /tmp/smb.conf          sed -i "/gluster-$volname/,/^$/d" /tmp/smb.conf &&\ -                cp /tmp/smb.conf /etc/samba/smb.conf +                cp /tmp/smb.conf ${CONFIGFILE}  }  function sighup_samba () { -        pid=`cat /var/run/smbd.pid` +        pid=`cat ${PIDDIR}/smbd.pid`          if [ $pid != "" ]          then                  kill -HUP $pid; @@ -56,5 +68,6 @@ function sighup_samba () {  }  parse_args $@ +find_config_info  del_samba_share $VOL  sighup_samba  | 
