#!/bin/sh 
# Script called on the primary server for starting applications 

# For logging into SafeKit log use:
# $SAFE/safekit printi | printe "message" 

#---------- Clean MYSQL residual processes 
# Call this function before starting any MySQL databases 
# to clean eventual resual MySQL processes
set -x

K3SNODENAME=$(hostname)
export K3SNODENAME
echo $K3SNODENAME
export PATH=$PATH:/usr/local/bin

clean_mysql()
{
  retval=0

  $SAFE/safekit printw "Cleaning MySQL processes"

  # kill started MySQL processes
  ps -e -o pid,comm | grep mysql | $AWK '{print "kill " $1}'| sh >/dev/null 2>&1

  return $retval
}

#---------- MySQL Databases
# Call this function for starting MySQL Server
start_MySQL()
{
  retval=0

  sed -i "/^bind-address/s/=.*$/= $VIRTUALIP/" /etc/mysql/mariadb.conf.d/50-server.cnf

  $SAFE/safekit printw "Starting MySQL Server"

  # MySQL - Database Starting 
  systemctl start mariadb   
  if [ $? -ne 0 ] ; then 
    $SAFE/safekit printw "MySQL server start failed"
  else
    $SAFE/safekit printw "MySQL server started"
  fi

  return $retval
}

# stdout goes into Application log
echo "Running start_prim $*" 

res=0

[ -z "$OSNAME" ] && OSNAME=`uname -s`
OSNAME=`uname -s`
case "$OSNAME" in
    Linux)
	AWK=/bin/awk
	;;
    *)
	AWK=/usr/bin/awk
	;;
esac

# TODO
# remove MySQL boot start 

# Clean MySQL residual processes 
clean_mysql || res=$?

# Start MySQL databases
start_MySQL || res=$?

if [ $res -ne 0 ] ; then
  $SAFE/safekit printi "start_prim failed"

  # uncomment to stop SafeKit when critical
  # $SAFE/safekit stop -i "start_prim"
fi

umount $NFSPROVDIR
mount -o loop $STORAGEDIR/replicatedVolume $NFSPROVDIR
systemctl start nfs-kernel-server
exportfs -o rw,async,wdelay,hide,no_subtree_check,fsid=12345,sec=sys,no_root_squash,no_all_squash :$NFSPROVDIR
systemctl start k3s
k3s kubectl uncordon $K3SNODENAME

nrnode=$(k3s kubectl get nodes | grep Ready | grep -v "$K3SNODENAME" | head -1 |  cut -d ' ' -f 1)
if [ -n "$nrnode" ]; then
        k3s kubectl delete node $nrnode
fi

exit 0
