#!/bin/bash

. /usr/local/horizon/scripts/manageTcCfg.inc
. /usr/local/horizon/scripts/flag.inc

MIN_MEM=1024

if test "x${JAVA_HOME}" = "x"; then
  export JAVA_HOME=/usr/java/jre-vmware
fi

RUNNING=$(sudo /usr/local/horizon/scripts/horizonService.sh status | grep -c "RUNNING as")

if [ ! -f $FLAG_OWNVA ] ; then
  exit 0
fi

sudo /usr/local/horizon/scripts/horizonService.sh stop

# total memory in MB
MEM=`free -m | grep "Mem:" | awk '{ print $2 }'`

#Allow a buffer to be nice to others
AVAIL=$(($MEM - 512))

if test -e /etc/init.d/elasticsearch ; then
  if test `/sbin/chkconfig elasticsearch | grep -c " on"` -gt 0 ; then
    AVAIL=$(($AVAIL - 1024))
  fi
fi

if test -e /etc/init.d/vpostgres ; then
  if test `/sbin/chkconfig vpostgres | grep -c " on"` -gt 0 ; then
    AVAIL=$(($AVAIL - 512))
  fi
fi

# reserve meta space Java 8
META=`awk 'match($0,/-XX:MetaspaceSize=([0-9]+)[mM]/,m) {print m[1]}' ${INSTANCE_SETENV}`
: ${META:=768}
AVAIL=$(($AVAIL - $META))

# reserve 3/13 for stack size
AVAIL=$(($AVAIL * 10 / 13))

if test $AVAIL -lt $MIN_MEM ; then
  AVAIL=$MIN_MEM
fi

sed -i -r -e "s/-Xmx[-0-9]+[gGmMkK]*/-Xmx${AVAIL}m/g" -e "s/-Xms[-0-9]+[gGmMkK]*/-Xms${AVAIL}m/g"  ${INSTANCE_SETENV}

if test $RUNNING -gt 0 ; then
    sudo /usr/local/horizon/scripts/horizonService.sh start
fi
