#!/bin/bash
set +x

#ڵ¶
LOG_FILE="/var/log/inspect.log"

G_INSPECT_MMLPATH="/opt/huawei/snas/script/inspect_mml"
source $G_INSPECT_MMLPATH/CheckItems
TMP_RESULT_FILE="${G_TMP_INSPECT_PATH}tmpfilelocalcardtemp"
CurInspectNum="110"
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="${G_TMP_INSPECT_PATH}tmpResult${CurInspectFun}"
>${RESULTFILE}
CHECK_PASSED=0
CHECK_FAILED=1

source "/opt/node_type_recognize.sh"
source "/opt/inspect/inspect_map.sh"

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

function main()
{
    local isPass=0
    local iRet=0
    #״̬
    IsStandardNode
    if [ $? -eq 0 ];then
        echo "TempEAR(degrees):Do not involve to inspect(VM).||TempEAR_Alarm(degrees):--||TempIN(degrees):--||TempIN_Alarm(degrees):--||TempOUT(degrees):--||TempOUT_Alarm(degrees):--" >> ${RESULTFILE} 2>&1
        echo "${CurInspectFun}_Pass ${CHECK_PASSED}" >>${RESULTFILE} 2>&1
        return 0
    fi

    ipmitool sensor > ${TMP_RESULT_FILE}
    iRet=$?
    if [ 0 -ne $iRet ];then
        echo "[ERR]Error:Failed to execute command(ipmitool sensor). Error(${iRet})." >> ${RESULTFILE} 2>&1
        echo "${CurInspectFun}_Pass ${CHECK_FAILED}" >>${RESULTFILE} 2>&1
        return 0
    fi

    #ARM,RH
    TempIN=`cat ${TMP_RESULT_FILE} |grep "^Inlet Temp"|awk '{print $4}'`
    TempIN_Alarm="46" #40(TaiShan 2280 V22288 V5) 36(TaiShan 5280 V25288 V5) 46 (other)
    PRODUCT_NAME=$(dmidecode -t 1 | grep "Product Name:" | awk -F: '{print $2}' | sed 's/^\s*//;s/\s*$//')
    if [ "$PRODUCT_NAME"X = "TaiShan 2280 V2"X -o "$PRODUCT_NAME"X = "2288 V5"X -o "$PRODUCT_NAME"X = "2288H V5"X ] || [ "$PRODUCT_NAME"X = "RS221G1"X -o "$PRODUCT_NAME"X = "2288X V5"X ] || [[ "$PRODUCT_NAME" =~ "NW8220X" ]]; then
        TempIN_Alarm="40" #Taishan 2280 V22288 V52288H V52288X V5 
    elif [ "$PRODUCT_NAME"X = "TaiShan 5280 V2"X -o "$PRODUCT_NAME"X = "5288 V5"X -o "$PRODUCT_NAME"X = "5288H V5"X ] || [ "$PRODUCT_NAME"X = "R521G10"X -o "$PRODUCT_NAME"X = "5288X V5"X ]; then
        TempIN_Alarm="36" #Taishan 5280 V2 5288 V55288H V55288X V5
    fi
    TempEAR="--"
    TempEAR_Alarm="--"
    TempOUT="--"
    TempOUT_Alarm="--"

    if [ "$TempIN" = "na" -o "$TempOUT" = "na" -o "$TempEAR" = "na" ];then
        echo "[ERR]Error:The temperature is Abnormal!" >> ${RESULTFILE} 2>&1
        isPass=1
    fi

    if [ `echo "$TempIN > $TempIN_Alarm" | bc` -eq 1 ];then
        echo "[ERR]Error:The Temperature exceeds the threshold!" >> ${RESULTFILE} 2>&1
        LOG "[$LINENO] The Temperature exceeds the threshold!"
        isPass=1
    fi
    Result="TempEAR(degrees):$TempEAR||TempEAR_Alarm(degrees):$TempEAR_Alarm||TempIN(degrees):$TempIN||TempIN_Alarm(degrees):$TempIN_Alarm||TempOUT(degrees):$TempOUT||TempOUT_Alarm(degrees):$TempOUT_Alarm"

    LOG "[$LINENO]:$Result"

    echo "${Result}" >> ${RESULTFILE} 2>&1
    echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1

    return 0
}


main

[ -f "${TMP_RESULT_FILE}" ] && rm "${TMP_RESULT_FILE}"
