#!/bin/bash
# @@@ START COPYRIGHT @@@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
# @@@ END COPYRIGHT @@@

####################################################
#
# Executes the following:
#
# - Kills the Trafodion Env
# - Kills the HBase Master process and the zookeeper data
#   (uses ilh_cleanhb 1)
# - Restarts HBase
# - Repairs HBase (ilh_hbase_repair)
# - Checks whether HBase is ready (uses ilh_hbcheck)
# - Deletes the Trafodion env file: $TRAF_HOME/etc/ms.env
# - Regenerates Config (sqgen)
# - Starts up Trafodion (sqstart)
#
####################################################

if [ ! -z $TRAF_HOME ]; then
    cd $TRAF_HOME/sql/scripts
else
    echo "The environment variable TRAF_HOME does not exist."
    echo "Please ensure sqenv.sh has been sourced."
    echo
    exit 1;
fi

lv_ilh_cleanhb_mode=1

echo 'This script will do the following:'
echo ' - Kill the Trafodion env (pkillall)'
echo " - Kill the HBase env and delete the zookeeper data directory (ilh_cleanhb ${lv_ilh_cleanhb_mode})"
echo ' - Restart HBase (swstarthbase)'
echo ' - Delete the env file: $TRAF_HOME/etc/ms.env'
echo ' - sqgen'
echo ' - sqstart'

if [[ -z $1 ]]; then
    read -p 'Do you want to proceed? y/n : ' lv_ans
else 
    lv_ans=$1
fi

if [ "$lv_ans" != "y" ]; then
    echo "Not proceeding. Exitting..."
    exit 0
else
    echo "Ok...going ahead..."
fi

lv_starttime=`date`

run_util pkillall
sleep 5
run_util pkillall

echo "Stopping HBase"
swstophbase &
sleep 45
kill %1

run_util 'ilh_cleanhb 1'

run_util swstarthbase

echo "Sleeping for 15 seconds before checking the status of HBase"
sleep 15

echo "--------------------------------------"
if [ -e $TRAF_HOME/sql/scripts/hbcheck ]; then
    run_util hbcheck 4 10
else
    run_util ilh_hbcheck
fi
echo "--------------------------------------"

echo "Repairing HBase (hbase hbck -repair)"
ilh_hbase_repair y

echo "--------------------------------------"
echo "deleting $TRAF_HOME/etc/ms.env"
rm $TRAF_HOME/etc/ms.env

run_util sqgen

run_util sqstart

echo "executing: sqlci -> get schemas"
sqlci <<EOF
get schemas;
EOF

echo "done"
lv_endtime=`date`
echo "Start time: ${lv_starttime}"
echo "End   time: ${lv_endtime}"
exit 0
