1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-20 22:50:26 +03:00

ctdb-eventscripts: Ensure $GANRECDIR points to configured subdirectory

Check that the $GANRECDIR symlink points to the location specified by
$CTDB_GANESHA_REC_SUBDIR and replace it if incorrect.  This handles
reconfiguration and filesystem changes.

While touching this code:

* Create the $GANRECDIR link as a separate step if it doesn't exist.
  This means there is only 1 place where the link is created.

* Change some variables names to the style used for local function
  variables.

* Remove some "ln failed" error messages.  ln failures will be logged
  anyway.

* Add -v to various mkdir/rm/ln commands so that these actions are
  logged when they actually do something.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>

Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Fri Jun 20 05:40:16 CEST 2014 on sn-devel-104
This commit is contained in:
Martin Schwenke 2014-06-16 10:59:20 +10:00 committed by Amitay Isaacs
parent 6f43896e12
commit aac607d727

View File

@ -84,25 +84,29 @@ create_ganesha_recdirs ()
{
[ -n "$CTDB_GANESHA_REC_SUBDIR" ] || CTDB_GANESHA_REC_SUBDIR=".ganesha"
MOUNTS=$(mount -t $CTDB_CLUSTER_FILESYSTEM_TYPE)
if [ -z "$MOUNTS" ]; then
_mounts=$(mount -t $CTDB_CLUSTER_FILESYSTEM_TYPE)
if [ -z "$_mounts" ]; then
echo "startup $CTDB_CLUSTER_FILESYSTEM_TYPE not ready"
exit 0
fi
MNTPT=$(echo "$MOUNTS" | sort | awk 'NR == 1 {print $3}')
mkdir -p $MNTPT/$CTDB_GANESHA_REC_SUBDIR
if [ -e $GANRECDIR ]; then
if [ ! -L $GANRECDIR ] ; then
rm -rf $GANRECDIR
if ! ln -s $MNTPT/$CTDB_GANESHA_REC_SUBDIR $GANRECDIR ; then
echo "ln failed"
fi
fi
else
if ! ln -sf $MNTPT/$CTDB_GANESHA_REC_SUBDIR $GANRECDIR ; then
echo "ln failed"
_mntpt=$(echo "$_mounts" | sort | awk 'NR == 1 {print $3}')
_link_dst="${_mntpt}/${CTDB_GANESHA_REC_SUBDIR}"
mkdir -vp "$_link_dst"
if [ -e "$GANRECDIR" ]; then
if [ ! -L "$GANRECDIR" ] ; then
rm -vrf "$GANRECDIR"
else
_t=$(readlink "$GANRECDIR")
if [ "$_t" != "$_link_dst" ] ; then
rm -v "$GANRECDIR"
fi
fi
fi
# This is not an "else". It also re-creates the link if it was
# removed above!
if [ ! -e "$GANRECDIR" ]; then
ln -sv "$_link_dst" "$GANRECDIR"
fi
mkdir -p $GANRECDIR2
mkdir -p $GANRECDIR3