#!/bin/sh
set +x
#CheckNodeState 检测节点状态，出现禁用或者冻结，检测不通过
G_INSPECT_MMLPATH="/opt/huawei/snas/script/inspect_mml"
G_SCRIPT_PATH="/opt/inspect"
. $G_INSPECT_MMLPATH/CheckItems
. $G_SCRIPT_PATH/inspect_map.sh

CurInspectNum="270"
CurInspectFun=`GetInspectType $CurInspectNum`
LOGPATH="/tmp/tmp${CurInspectFun}"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
>$RESULTFILE

SNAS_CONFIG_PATH=/opt/huawei/snas/etc/snas.ini;
G_MML_FILE_PATH="/opt/huawei/snas/script/inspect_mml/"
source $G_MML_FILE_PATH/CommonFunc.sh

LOCAL_BACK_IP=`GetLocalIp`

if [ -z "${LOCAL_BACK_IP}" ]; then
    echo "Get Local_BACK_IP fail"
    LOG "ERR: CheckNodeState Local_BACK_IP is empty, abort!"
    exit 1
fi

isPass=0
/opt/huawei/snas/script/inspect_mml/ShowInspectMml2 $LOCAL_BACK_IP 4016 "cm node show" > $LOGPATH
iRet=$?
if [ $iRet -ne 0 ]; then
    isPass=1
    echo "[ERR]INFO:Can not get node info." >>$RESULTFILE
    LOG "iRet=$iRet,can not get node info"
else
    dos2unix $LOGPATH > /dev/null 2>&1
    sed -i -e 's/\x1B\[0;[3-4][0-9]m//g' -e 's/\x0D//g' -e 's/\x00//g' $LOGPATH >/dev/null 2>&1
    javaID=`cat $LOGPATH |grep "Node_ID"|sed 's/^ *//g'|sed "/^$/d"`

    if [ "$javaID" = "" ];then
        echo "[ERR]INFO:Can not get information!" >>$RESULTFILE
        LOG "Can not get information!"
        isPass=1
    else
        set_ifs
        for line in $javaID; do
            if [ "$line" = "" ];then
                continue
            fi

            ID=`echo $line |awk '{print $2}'`
            NAME=`echo $line |awk '{print $5}'`
            healthStatus=`echo $line |awk '{print $8}'|sed 's/^ *//g'|sed "/^$/d"`
            runStatus=`echo $line |awk '{print $11}'|sed 's/^ *//g'|sed "/^$/d"`

            parentIP=$(get_node_backnet_ip $ID)
            healthStatus=`MapHealthStatus $healthStatus`
            runningStatus=`MapRunningStatus $runStatus`

            frame=`echo $line |awk '{print $14}'`
            slot=`echo $line |awk '{print $17}'`
            SN=`echo $line |awk '{print $20}'`
            typeid=`echo $line |awk '{print $23}'`
            nodeTypeid=`echo $line |grep -Po '(?<=Function_Type: )[0-9]*' |tr -d ' '`
            type=$(MapNodeType  $nodeTypeid)
            Result="ID:$ID||name:$NAME||parentIP:$parentIP||healthStatus:$healthStatus||runningStatus:$runningStatus||Frame:$frame||Slot:$slot||SN:$SN||Type:$type"
            echo $Result >>$RESULTFILE

            if [ $runStatus -eq 55 ] || [ $runStatus -eq 56 ] || [ $runStatus -eq 57 ] || [ $runStatus -eq 58 ];then
                isPass=1
                echo "[ERR]INFO:ID($ID) runStatus=$runStatus" >>$RESULTFILE
                LOG "isPass=$isPass, runStatus=$runStatus"
            fi
        done
        restore_ifs
    fi
fi

#打印是否巡检通过
echo "${CurInspectFun}_Pass $isPass" >>$RESULTFILE
LOG "${CurInspectFun}_Pass $isPass"
[ -f "${LOGPATH}" ] && rm -f "${LOGPATH}"