#!/usr/bin/env bash

#
# Copyright 2015-2019 Intel Corporation.
# This software and the related documents are Intel copyrighted materials, and your use of them 
# is governed by the express license under which they were provided to you ("License"). Unless the 
# License provides otherwise, you may not use, modify, copy, publish, distribute, disclose or 
# transmit this software or the related documents without Intel's prior written permission.
# 
# This software and the related documents are provided as is, with no express or implied warranties, 
# other than those that are expressly stated in the License.
# 
#


refreshMetastore () {
  #runCmdWithErrorCheck "$BIG_BENCH_BIN_DIR/bigBench" cleanMetastore $LIST_OF_USER_OPTIONS
  #"$BIG_BENCH_BIN_DIR/bigBench" cleanMetastore $LIST_OF_USER_OPTIONS
  runCmdWithErrorCheck runEngineCmd -f "$BIG_BENCH_REFRESH_METASTORE_FILE"

  runCmdWithErrorCheck hadoop fs -mkdir -p "$BIG_BENCH_HDFS_ABSOLUTE_TEMP_DIR"
  runCmdWithErrorCheck hadoop fs -mkdir -p "$BIG_BENCH_HDFS_ABSOLUTE_QUERY_RESULT_DIR"
  runCmdWithErrorCheck hadoop fs -chmod ugo+rw "$BIG_BENCH_HDFS_ABSOLUTE_TEMP_DIR"
  runCmdWithErrorCheck hadoop fs -chmod ugo+rw "$BIG_BENCH_HDFS_ABSOLUTE_QUERY_RESULT_DIR"
}

helpModule () {
  echo "This module refreshes the metastore with the refresh dataset"
  echo
  echo "Options:"
  echo -e "-d\tdatabase to use"
  echo -e "-h\tshow this help"
  echo
  echo "INTERNAL options:"
  echo -e "-w\tsql script for metastore refresh"
  echo -e "-z\tfile with user defined engine settings"
}

runModule () {
  echo "==============================================="
  echo "Adding/Updating generated files to hive metastore"
  echo "==============================================="

  TIME_MEASUREMENT_FILE="`mktemp`"
  echo "======= Load data into hive time =========" > "$TIME_MEASUREMENT_FILE"
  { time refreshMetastore > >(tee -a "$BIG_BENCH_LOADING_STAGE_LOG") 2>&1 ; } 2>> "$TIME_MEASUREMENT_FILE"
  cat "$TIME_MEASUREMENT_FILE" >> "$BIG_BENCH_LOADING_STAGE_LOG"
  rm -rf "$TIME_MEASUREMENT_FILE"
  echo "==========================="

  echo "==============================================="
  echo "HIVE refresh finished."
  echo "==============================================="
}
