diff options
| author | Jiffin Tony Thottan <jthottan@gmail.com> | 2016-01-22 17:47:07 +0530 | 
|---|---|---|
| committer | Jeff Darcy <jdarcy@redhat.com> | 2016-03-01 00:00:04 -0800 | 
| commit | ea00992d3d52a51b7c8311ad9565bbbb6e395f9d (patch) | |
| tree | 5f1ba7aecc99f3a0413c6891ff349861304a5cdc | |
| parent | 487b3a65d3cebefac93a30222eb81b0a7465c778 (diff) | |
NFS-Ganesha : scripts related changes for supporting multiple export entires for volume
Previously script such as dbus-send.sh, ganesha-ha.sh can handle only one EXPORT{} block.
Change-Id: I2286af4877f96f4334435818f67beea87efa2b1f
BUG: 1275966
Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
Reviewed-on: http://review.gluster.org/13283
Smoke: Gluster Build System <jenkins@build.gluster.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
| -rwxr-xr-x | extras/ganesha/scripts/dbus-send.sh | 37 | ||||
| -rw-r--r-- | extras/ganesha/scripts/ganesha-ha.sh | 55 | ||||
| -rwxr-xr-x | extras/hook-scripts/start/post/S31ganesha-start.sh | 26 | 
3 files changed, 68 insertions, 50 deletions
diff --git a/extras/ganesha/scripts/dbus-send.sh b/extras/ganesha/scripts/dbus-send.sh index 4840be830d6..5f268eb37c2 100755 --- a/extras/ganesha/scripts/dbus-send.sh +++ b/extras/ganesha/scripts/dbus-send.sh @@ -63,30 +63,37 @@ function dynamic_export_add()                   EXPORT_ID=`cat $GANESHA_DIR/.export_added`                   check_cmd_status `echo $?` -                 EXPORT_ID=EXPORT_ID+1          #fi          fi +        for entry in `grep -n Export_Id  $GANESHA_DIR/exports/export.$VOL.conf \ +        | awk -F":" '{print$1}'` +        do +                sed -e "$entry s/Export_Id.*/Export_Id=$EXPORT_ID ;/" -i \ +                $GANESHA_DIR/exports/export.$VOL.conf +                check_cmd_status `echo $?` +                dbus-send  --system \ +                --dest=org.ganesha.nfsd  /org/ganesha/nfsd/ExportMgr \ +                org.ganesha.nfsd.exportmgr.AddExport  \ +                string:$GANESHA_DIR/exports/export.$VOL.conf \ +                string:"EXPORT(Export_Id=$EXPORT_ID)" +                EXPORT_ID=EXPORT_ID+1 +        done          echo $EXPORT_ID > $GANESHA_DIR/.export_added          check_cmd_status `echo $?` -        sed -i s/Export_Id.*/"Export_Id= $EXPORT_ID ;"/ \ -$GANESHA_DIR/exports/export.$VOL.conf -        check_cmd_status `echo $?` -        dbus-send  --system \ ---dest=org.ganesha.nfsd  /org/ganesha/nfsd/ExportMgr \ -org.ganesha.nfsd.exportmgr.AddExport  string:$GANESHA_DIR/exports/export.$VOL.conf \ -string:"EXPORT(Path=/$VOL)"  }  #This function removes an export dynamically(uses the export_id of the export)  function dynamic_export_remove()  { -        removed_id=`cat $GANESHA_DIR/exports/export.$VOL.conf |\ -grep Export_Id | cut -d " " -f8` -        check_cmd_status `echo $?` -        dbus-send --print-reply --system \ ---dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ -org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id -        check_cmd_status `echo $?` +        grep Export_Id $GANESHA_DIR/exports/export.$VOL.conf | \ +        while read entry; +        do +                dbus-send --print-reply --system \ +                --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ +                org.ganesha.nfsd.exportmgr.RemoveExport \ +                uint16:$(echo $entry | awk -F"[=,;]" '{print$2}') +                check_cmd_status `echo $?` +        done          sed -i /$VOL.conf/d $CONF          rm -rf $GANESHA_DIR/exports/export.$VOL.conf diff --git a/extras/ganesha/scripts/ganesha-ha.sh b/extras/ganesha/scripts/ganesha-ha.sh index 9c82c091304..f17582b727a 100644 --- a/extras/ganesha/scripts/ganesha-ha.sh +++ b/extras/ganesha/scripts/ganesha-ha.sh @@ -248,19 +248,26 @@ grep Export_Id | cut -d " " -f8`                  scp -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \  ${SECRET_PEM} ${HA_CONFDIR}/exports/export.$VOL.conf \  ${current_host}:${HA_CONFDIR}/exports/ -                 ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \ -${SECRET_PEM} root@${current_host} "dbus-send --print-reply --system \ ---dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ -org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id" -                 sleep 1 -                 ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i \ -${SECRET_PEM} root@${current_host} "dbus-send  --system \ ---dest=org.ganesha.nfsd  /org/ganesha/nfsd/ExportMgr \ -org.ganesha.nfsd.exportmgr.AddExport  string:$HA_CONFDIR/exports/export.$VOL.conf \ -string:\"EXPORT(Path=/$VOL)\"" -               if [ $? -ne 0 ]; then -                    echo "warning: refresh-config failed on ${current_host}" -               fi +                grep Export_Id $HA_CONFDIR/exports/export.$VOL.conf | \ +                while read entry; +                do +                        export_id=$(echo $entry | awk -F"[=,;]" '{print$2}') +                        ssh -oPasswordAuthentication=no \ +-oStrictHostKeyChecking=no -i  ${SECRET_PEM} root@${current_host} \ +"dbus-send --print-reply --system --dest=org.ganesha.nfsd \ +/org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.RemoveExport \ +uint16:$export_id" +                        sleep 1 +                        ssh -oPasswordAuthentication=no \ +-oStrictHostKeyChecking=no -i ${SECRET_PEM} root@${current_host} \ +"dbus-send  --system --dest=org.ganesha.nfsd  /org/ganesha/nfsd/ExportMgr \ +org.ganesha.nfsd.exportmgr.AddExport string:$HA_CONFDIR/exports/export.$VOL.conf \ +string:\"EXPORT(Export_Id=$export_id)\"" +                        if [ $? -ne 0 ]; then +                                echo "warning: refresh-config failed on" \ +                                     " ${current_host}" +                        fi +                done              fi              shift          done @@ -269,14 +276,20 @@ string:\"EXPORT(Path=/$VOL)\""      fi  #Run the same command on the localhost, -        dbus-send --print-reply --system \ ---dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ -org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id -        sleep 1 -        dbus-send  --system \ ---dest=org.ganesha.nfsd  /org/ganesha/nfsd/ExportMgr \ -org.ganesha.nfsd.exportmgr.AddExport  string:$HA_CONFDIR/exports/export.$VOL.conf \ -string:"EXPORT(Path=/$VOL)" +        grep Export_Id $HA_CONFDIR/exports/export.$VOL.conf | \ +        while read entry; +        do +                export_id=$(echo $entry | awk -F"[=,;]" '{print$2}') +                dbus-send --print-reply --system \ +                --dest=org.ganesha.nfsd /org/ganesha/nfsd/ExportMgr \ +                org.ganesha.nfsd.exportmgr.RemoveExport uint16:$removed_id +                sleep 1 +                dbus-send  --system \ +                --dest=org.ganesha.nfsd  /org/ganesha/nfsd/ExportMgr \ +                org.ganesha.nfsd.exportmgr.AddExport  \ +                string:$HA_CONFDIR/exports/export.$VOL.conf \ +                string:"EXPORT(Export_Id=$export_id)" +        done  }  copy_export_config () diff --git a/extras/hook-scripts/start/post/S31ganesha-start.sh b/extras/hook-scripts/start/post/S31ganesha-start.sh index b85c789b9ed..513402eaa16 100755 --- a/extras/hook-scripts/start/post/S31ganesha-start.sh +++ b/extras/hook-scripts/start/post/S31ganesha-start.sh @@ -75,32 +75,30 @@ function export_add()          #               else                   EXPORT_ID=`cat $GANESHA_DIR/.export_added` -                 EXPORT_ID=EXPORT_ID+1          #fi          fi +        for entry in `grep -n Export_Id  $GANESHA_DIR/exports/export.$VOL.conf \ +        | awk -F":" '{print$1}'` +        do +                sed -e "$entry s/Export_Id.*/Export_Id=$EXPORT_ID ;/" -i \ +                $GANESHA_DIR/exports/export.$VOL.conf +                dbus-send  --system \ +                --dest=org.ganesha.nfsd  /org/ganesha/nfsd/ExportMgr \ +                org.ganesha.nfsd.exportmgr.AddExport  \ +                string:$GANESHA_DIR/exports/export.$VOL.conf \ +                string:"EXPORT(Export_Id=$EXPORT_ID)" +                EXPORT_ID=EXPORT_ID+1 +        done          echo $EXPORT_ID > $GANESHA_DIR/.export_added -        sed -i s/Export_Id.*/"Export_Id= $EXPORT_ID ;"/ \ -$GANESHA_DIR/exports/export.$VOL.conf          echo "%include \"$GANESHA_DIR/exports/export.$VOL.conf\"" >> $CONF1  } -#This function adds a new export dynamically by sending dbus signals -function dynamic_export_add() -{ -        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 string:"EXPORT(Path=/$VOL)" - -} -  function start_ganesha()  {          #Remove export entry from nfs-ganesha.conf          sed -i /$VOL.conf/d  $CONF1          #Create a new export entry          export_add $VOL -        dynamic_export_add $VOL -  }  # based on src/scripts/ganeshactl/Ganesha/export_mgr.py  | 
