blob: 86e7d5268b9e1d0a6e674eff786f245dec85dd46 [file]
#!/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 @@@
#
# Script to check the trafodion-status of the nodes
# of a trafodion cluster.
#
# Switch "-j" prints the output in JSON format.
#
function traf_echo {
if [[ ${lv_jason_output} == "1" ]]; then
if [[ ${lv_first} == "1" ]]; then
lv_first=0
echo -n "["
else
echo -n ","
fi
echo -n "{\"ERROR\":\"$*\"}"
else
echo $*
fi
}
function traf_exit {
if [[ ${lv_jason_output} == "1" ]]; then
if [[ ${lv_first} == "0" ]]; then
echo "]"
fi
fi
exit $1
}
lv_first=1
lv_jason_output=0
if [[ ! -z $1 ]]; then
if [[ $1 == "-j" ]]; then
lv_jason_output=1
fi
fi
if [[ -z $TRAF_HOME ]]; then
traf_echo "Looks like the Trafodion environment has not been configured. Exitting..."
traf_exit 5;
fi
if [[ -z $SQSCRIPTS_DIR ]]; then
SQSCRIPTS_DIR=$TRAF_HOME/sql/scripts
fi
SQCONFIGDB_FILE="$SQSCRIPTS_DIR/sqconfig.db"
if [[ ! -e ${SQCONFIGDB_FILE} ]]; then
traf_echo "Cannot find the Trafodion configuration DB file ${SQCONFIGDB_FILE}"
traf_echo "Please execute sqgen to generate this file."
traf_exit 5;
fi
grep_out=`pstat | grep "monitor COLD" | grep -v mpirun`
if [[ $? == '0' ]]; then
sqshell -c node info | awk -v jason_output=${lv_jason_output} -f $TRAF_HOME/sql/scripts/trafnodestatus.awk
traf_exit $?
else
traf_echo "Trafodion is not running on the current node: `hostname`"
lv_monitor_not_running_on_curr_node=1
fi
if [[ ! -z ${SQ_VIRTUAL_NODES} ]]; then
# Running in a single node environment
traf_echo "Trafodion has been configured to run on a single virtual node environment."
traf_exit 1
fi
grep_out_mon=`$TRAF_HOME/sql/scripts/cstat | grep "monitor COLD" `
lv_ret=$?
if [[ $lv_ret == 0 ]]; then
grep_out=`cstat | grep "monitor COLD" | grep -v mpirun | sort | cut -d: -f1`
for lv_node in $grep_out; do
ssh $lv_node sqshell -c node info | awk -v jason_output=${lv_jason_output} -f $TRAF_HOME/sql/scripts/trafnodestatus.awk
lv_sqcheck_retcode=$?
traf_exit ${lv_exit_code}
done
else
traf_echo "None of the Trafodion nodes have a Trafodion monitor running on them."
traf_echo "Trafodion is currently down."
traf_exit 255;
fi