#!/bin/bash
# IBM(c) 2009 EPL license http://www.eclipse.org/legal/epl-v10.html
#####################################################
#
#   Initiate the xdcp from Mangement node to sync
#   files to this node
#
#####################################################

if [ -n "$LOGLABEL" ]; then
    log_label=$LOGLABEL
else
    log_label="xcat"
fi
bname=$(basename $0)
#statelite does not support syncfiles
if [ -d /.statelite ]; then
   echo "Statelite does not support syncfiles, nothing to do..."
   logger -t $log_label -p local4.info "Statelite does not support syncfiles, nothing to do..."
   exit 0
fi

# do nothing when UPDATENODE=1 because it is done from the top down
if [ -n "$UPDATENODE" ] && [ $UPDATENODE -eq 1 ]; then
   #echo "  Did not sync any files. Use updatenode -F to sync the files."
   logger -t $log_label -p local4.warning "$bname: Did not sync any files. Use updatenode -F to sync the files."

   exit 0
fi

#do nothing id there is no sync file template for the node
if [ -n "$NOSYNCFILES" ] && [ $NOSYNCFILES -eq 1 ]; then
   echo "  Did not sync any files."
   logger -t $log_label -p local4.info "$bname: there is no sync file template for the node"
   exit 0
fi

RCP=
if [ ! -e "/usr/bin/rsync" ]; then
   [ -e "/usr/bin/scp" ] && RCP="/usr/bin/scp"
fi

logger -t $log_label -p local4.info "Performing syncfiles postscript"

osname=`uname`
# run the xdcp on the MN/SN
xcatpostdir="/xcatpost"

logger -t $log_label -p local4.info "$bname: the OS name = $osname"
quit="no"
count=5
returncode=0
while [ $quit = "no" ]; do
  if cat /etc/os-release |grep -i cumulus >/dev/null 2>&1; then
    RCP=$RCP $xcatpostdir/startsyncfiles
    returncode=$?
  elif [ $osname = "Linux" ]
  then
    `$xcatpostdir/startsyncfiles.awk -v RCP=$RCP`
    returncode=$?
  elif [ $osname = "AIX" ]
  then
    `$xcatpostdir/startsyncfiles.aix`
    returncode=$?
  fi

  if [ $returncode -eq 0 ] || [ $count -eq 0 ]; then
    quit="yes"
  else
    let SLI=$RANDOM%10
    let SLI=SLI+10
    sleep $SLI
  fi
  let count=count-1
done

if [ $returncode -eq 0 ]
then
  logger -t $log_label -p local4.info "$bname: Perform Syncing File action successfully"
else
  logger -t $log_label -p local4.err "$bname: Perform Syncing File action encountered error"
fi

[ $returncode -eq 0 ]
