#!/bin/bash

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


if [[ $IS_MASTER == 1 ]]; then

    echo "-- INSTALLING KIBANA -----------------------------------------------------------"

    export ES_VERSION=6.0.0-beta2

    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/kb_setup
    cd /tmp/kb_setup

    echo " - Downloading kibana-$ES_VERSION"
    wget https://artifacts.elastic.co/downloads/kibana/kibana-$ES_VERSION-linux-x86_64.tar.gz > /tmp/kb_install_log 2>&1
    if [[ $? != 0 ]]; then
        echo " -> Failed to downolad kibana-$ES_VERSION from https://artifacts.elastic.co/downloads/. Trying to download from niceideas.ch"
        exit -1
        #wget http://niceideas.ch/mes/kibana-$ES_VERSION-linux-x86_64.tar.gz >> /tmp/kb_install_log 2>&1
        #fail_if_error $? "/tmp/kb_install_log" -1
    fi

    echo " - Extracting kibana-$ES_VERSION"
    tar -xvf kibana-$ES_VERSION-linux-x86_64.tar.gz > /tmp/kb_install_log 2>&1
    fail_if_error $? "/tmp/kb_install_log" -2

    echo " - Installing Kibana"
    sudo chown root.staff -R kibana-$ES_VERSION-linux-x86_64
    sudo mv kibana-$ES_VERSION-linux-x86_64 /usr/local/lib/kibana-$ES_VERSION
    sudo mkdir -p /usr/local/lib/kibana-$ES_VERSION/optimize/
    sudo chmod -R 777 /usr/local/lib/kibana-$ES_VERSION/optimize/
    sudo mkdir -p /usr/local/lib/kibana-$ES_VERSION/data
    sudo chmod -R 777 /usr/local/lib/kibana-$ES_VERSION/data

    echo " - symlinking /usr/local/lib/kibana/ to /usr/local/lib/kibana-$ES_VERSION/"
    sudo ln -s /usr/local/lib/kibana-$ES_VERSION /usr/local/lib/kibana
        
    echo " - Registering test cleaning traps"
    export ES_PROC_ID=-1
    export KIBANA_PROC_ID=-1
    function check_stop_es_kibana(){
        if [[ $ES_PROC_ID != -1 ]]; then
            echo " - Stopping ES !!"
            kill -15 $ES_PROC_ID
        fi
        if [[ $KIBANA_PROC_ID != -1 ]]; then
            echo " - Stopping Kibana !!"
            kill -15 $KIBANA_PROC_ID
        fi
    }
    trap check_stop_es_kibana 15
    trap check_stop_es_kibana EXIT

    echo " - Starting ElasticSearch"
    export ES_JAVA_OPTS="-Dlog4j2.disable.jmx=true -Xmx1g -Xms800m"
    /usr/local/lib/elasticsearch-$ES_VERSION/bin/elasticsearch > /tmp/es_run_log 2>&1 &
    export ES_PROC_ID=$!

    echo " - Checking Elasticsearch startup"
    sleep 10
    if [[ `ps -e | grep $ES_PROC_ID` == "" ]]; then
        echo " !! Failed to start Elasticsearch !!"
        exit -8
    fi

    echo " - Starting Kibana"
    /usr/local/lib/kibana-$ES_VERSION/bin/kibana > /tmp/kibana_run_log 2>&1 &
    export KIBANA_PROC_ID=$!

    echo " - Checking Kibana startup"
    sleep 10
    if [[ `ps -e | grep $KIBANA_PROC_ID` == "" ]]; then
        echo " !! Failed to start Kibana !!"
        exit -8
    fi

    echo " - Stopping Kibana"
    kill -15 $KIBANA_PROC_ID
    export KIBANA_PROC_ID=-1

    echo " - Stopping Elasticsearch"
    kill -15 $ES_PROC_ID
    export ES_PROC_ID=-1

    sudo rm -Rf /tmp/kb_setup 
    returned_to_saved_dir

fi




