#!/bin/sh
#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;
LOCAL_BACK_IP=`grep ipaddr_1 $SNAS_CONFIG_PATH | awk -F "=" '{print $2}'`;
isPass=0
[ -f "${LOGPATH}" ] && rm -f "${LOGPATH}"
/opt/huawei/snas/script/inspect_mml/ShowInspectMml2 $LOCAL_BACK_IP 4016 "cm node show" > $LOGPATH
iRet=$?
if [ $iRet -ne 0 ]; then
        isPass=1
        echo "INFO:can not get node info" >>$RESULTFILE
        LOG "iRet=$iRet,can not get node info"
else
        dos2unix $LOGPATH > /dev/null 2>&1
        javaID=`cat $LOGPATH |grep "Node_ID"|sed 's/^ *//g'|sed "/^$/d"`

        if [ "$javaID" = "" ];then
                echo "Node:-||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"`

                        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||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
                                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}"