#!/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 env and the HDFS data directory associated with HBase
#   (uses ilh_cleanhb)
# - Restarts HBase
# - 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)
# - Initializes Trafodion (sqlci -> initialize trafodion)
#
####################################################

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

echo 'This script will do the following:'
echo ' - Kill the Trafodion env (pkillall)'
echo ' - Kill the HBase env and Delete the HDFS data directory associated with HBase (ilh_cleanhb 2)'
echo ' - Restart HBase (swstarthbase)'
echo ' - Delete the env file: $TRAF_HOME/etc/ms.env'
echo ' - sqgen'
echo ' - sqstart'
echo ' - sqlci -> initialize trafodion'

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

run_util 'ilh_cleanhb 2'

run_util swstarthbase

echo "Sleeping for 10 seconds before checking the status of HBase"
sleep 10
if [ -e $TRAF_HOME/sql/scripts/hbcheck ]; then
    run_util hbcheck 4 10
else
    run_util ilh_hbcheck
fi

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

run_util sqgen

run_util sqstart

echo "executing: sqlci -> initialize trafodion"
sqlci <<EOF
initialize trafodion;
EOF

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
