#!/bin/sh
set +x

CurInspectNum="231"
LOG_FILE="/var/log/inspect.log"
G_INSPECT_MMLPATH="/opt/huawei/snas/script/inspect_mml"
source $G_INSPECT_MMLPATH/CheckItems
source $G_INSPECT_MMLPATH/CommonFunc.sh
G_REMOTE_TMP_FILE="/tmp/tmpfile"
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
>${RESULTFILE}
Result=""

function LOG
{
    time=$(date)
    echo [${time}][$$][$CurInspectFun]$@ >> $LOG_FILE
}

#231 检查MON是否在频繁选举
function checkMonHealth()
{
    isPass=0
    filename="MonHealth"

    LOCAL_BACK_IP=`GetLocalIp`

    if [ -z "${LOCAL_BACK_IP}" ]; then
        isPass=1
        echo "[ERR]Error:Can't get backend IP." >>${RESULTFILE} 2>&1
        echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
        LOG "[$LINENO]Error:Get Local_BACK_IP failed."
        return 1
    fi
    /opt/huawei/snas/script/inspect_mml/ShowInspectMml $LOCAL_BACK_IP 4004 "mon health 0" > $G_REMOTE_TMP_FILE$filename 2>&1
    fifoContext=`cat $G_REMOTE_TMP_FILE$filename`
    if [ "$fifoContext" = "" ];then
        isPass=1
        Result="[ERR]Error:Failed to execute command(MmlBatch 4004 'mon health 0')."
        LOG "[$LINENO]Error:Get MonHealth failed.file is empty"
    fi

    dos2unix $G_REMOTE_TMP_FILE$filename

    Ret=`cat $G_REMOTE_TMP_FILE$filename | grep bootstrap | tr -d " "| awk -F: '{printf $2}'`
    Ret1=`cat $G_REMOTE_TMP_FILE$filename | grep "elec      :" | tr -d " " | awk -F: '{printf $2}'`
    LOG "[$LINENO]Ret=[$Ret],Ret1=[$Ret1]."
    if [ "$Ret" != "OK" ] || [ "$Ret1" != "OK" ];then
        isPass=1
        if [ "X${Ret}" != "X" ] || [ "X${Ret1}" != "X" ];then
            Result="Bootstrap:$Ret||Elec:$Ret1"
        else
            Result="[ERR]Error:Get MonHealth infomation failed from command(MmlBatch 4004 'mon health 0')."
            LOG "[$LINENO]Error:Get MonHealth failed."
        fi
    else
        Result="Bootstrap:$Ret||Elec:$Ret1"
        LOG "[$LINENO]Result:[$Result]"
    fi

    echo "$Result" >>${RESULTFILE} 2>&1
    echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
    [ -f "$G_REMOTE_TMP_FILE$filename" ] && rm "$G_REMOTE_TMP_FILE$filename"
    return 0
}

checkMonHealth
