#!/bin/bash

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
. $SCRIPT_DIR/common.sh "$@"


echo "-- INSTALLING MESOS ------------------------------------------------------------"

export AMESOS_VERSION=1.3.0

saved_dir=`pwd`
function returned_to_saved_dir() {
     cd $saved_dir
}
trap returned_to_saved_dir 15
trap returned_to_saved_dir EXIT

echo " - Changing to temp directory"
mkdir -p /tmp/mesos_setup
cd /tmp/mesos_setup

echo " - Downloading mesos-$AMESOS_VERSION (pre-built version for Debian Stretch from niceideas.ch)"
wget http://www.niceideas.ch/mes/niceideas_mesos-$AMESOS_VERSION.tar.gz > /tmp/mesos_install_log 2>&1
fail_if_error $? "/tmp/mesos_install_log" -1

echo " - Extracting mesos-$AMESOS_VERSION"
tar -zxf niceideas_mesos-$AMESOS_VERSION.tar.gz > /tmp/mesos_install_log 2>&1
fail_if_error $? "/tmp/mesos_install_log" -2

echo " - Installing mesos"
sudo chown root.staff -R mesos-$AMESOS_VERSION
sudo mv mesos-$AMESOS_VERSION /usr/local/lib

# installation tests

echo " - Basic environment setup (mesos cannot run without these variables)"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/:/usr/local/lib/mesos-$AMESOS_VERSION/lib
sudo bash -c "echo -e \"\n# Environment variables required for mesos\" > /etc/profile"
sudo bash -c "echo -e \"export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/:/usr/local/lib/mesos-$AMESOS_VERSION/lib\" > /etc/profile"
sudo bash -c "echo -e \"export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/:/usr/local/lib/mesos-$AMESOS_VERSION/lib/python2.7/site-packages/\" >> /etc/profile"
sudo ldconfig
sudo mkdir -p /var/lib/mesos
sudo chmod -R 777 /var/lib/mesos

echo " - Registering test cleaning traps"
export MESOS_MASTER_PROC_ID=-1
export MESOS_AGENT_PROC_ID=-1
function check_stop_mesos(){
    if [[ $MESOS_MASTER_PROC_ID != -1 ]]; then
        echo " - Stopping Mesos Master !!"
        kill -15 $MESOS_MASTER_PROC_ID
    fi
    if [[ $MESOS_AGENT_PROC_ID != -1 ]]; then
        echo " - Stopping Mesos Agent !! "
        kill -15 $MESOS_AGENT_PROC_ID
    fi
}
trap check_stop_mesos 15
trap check_stop_mesos EXIT

echo " - Starting Mesos Master"
/usr/local/lib/mesos-$AMESOS_VERSION/sbin/mesos-master  --ip=127.0.0.1 --work_dir=/var/lib/mesos > /tmp/mesos_master_log 2>&1 &
export MESOS_MASTER_PROC_ID=$!

echo " - Checking Mesos master startup"
sleep 2
if [[ `ps -e | grep $MESOS_MASTER_PROC_ID` == "" ]]; then
    echo " !! Failed to start Mesos Master !!"
    exit -8
fi

echo " - Starting Mesos Agent"
/usr/local/lib/mesos-$AMESOS_VERSION/sbin/mesos-agent  --master=127.0.0.1:5050 --no-systemd_enable_support --work_dir=/var/lib/mesos > /tmp/mesos_agent_log 2>&1 &
export MESOS_AGENT_PROC_ID=$!

echo " - Checking Mesos Agent startup"
sleep 2
if [[ `ps -e | grep $MESOS_AGENT_PROC_ID` == "" ]]; then
    echo " !! Failed to start Mesos Agent !!"
    exit -9
fi

# Visit the Mesos web page.
#$ http://127.0.0.1:5050

echo " - Stopping Mesos Agent"
kill -15 $MESOS_AGENT_PROC_ID
export MESOS_AGENT_PROC_ID=-1

echo " - Stopping Mesos Master"
kill -15 $MESOS_MASTER_PROC_ID
export MESOS_MASTER_PROC_ID=-1

echo " - Cleaning build folder"
cd $saved_dir
sudo rm -Rf /tmp/mesos_setup > /tmp/mesos_install_log 2>&1
fail_if_error $? "/tmp/mesos_install_log" -10


returned_to_saved_dir





