#!/bin/bash
set +x
LOG_FILE="/var/log/inspect.log"
G_MML_FILE_PATH="/opt/huawei/snas/script/inspect_mml"
source $G_MML_FILE_PATH/CheckItems
source $G_MML_FILE_PATH/CommonFunc.sh
CurInspectNum="107"
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
LOCAL_BACK_IP=""
isPass=0
>${RESULTFILE}

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

handle_line_result()
{
    local line=$1
    echo "$line" |grep "\[ERR\]" > /dev/null
    if [ $? -eq 0 ]; then
        echo "$line" | awk -F] '{print $2}'
        return 1
    fi

    echo "$line"
    return 0
}

function checkCPUStatus()
{
    #命令ipmitool sdr|grep CPU
    #格式CPU0_Core_temp   | -55 degrees C     | ok
    #格式CPU1_Core_temp   | -50 degrees C     | ok
    #格式CPU0_Status      | 0x80              | ok
    #格式CPU1_Status      | 0x80              | ok
    #格式VTT_CPU0         | 1.05 Volts        | ok
    #格式VTT_CPU1         | 1.06 Volts        | ok
    #格式VDDQ_DDR_CPU0    | 1.51 Volts        | ok
    #格式VDDQ_DDR_CPU1    | 1.51 Volts        | ok
    #格式VCCP_CPU0        | 0.85 Volts        | ok
    #格式VCCP_CPU1        | 0.94 Volts        | ok

    local status=""
    local TASK_ID=0
    local errResult=""

    LOCAL_BACK_IP=`GetLocalIp`
    if [ "${LOCAL_BACK_IP}X" == "X" ];then
        ErrInfoCommon "Node:$(hostname) ||INFO:Can't get backend IP." "${RESULTFILE}"
        LOG "[ERR]Node:$(hostname) ||INFO:Can't get backend IP."
        isPass=1
        return
    fi

    status=$($G_MML_FILE_PATH/ShowCpuState)
    if [ "${status}" = "" ]; then
        ErrInfoCommon "Node: $LOCAL_BACK_IP||INFO: Can not get ipmi cpu information" "${RESULTFILE}"
        LOG "Node: $LOCAL_BACK_IP||INFO: Can not get ipmi cpu information"
        isPass=1
        return
    fi
    set_ifs
    for line in $(echo "${status}"); do
        info=`handle_line_result "$line"`
        if [ $? -ne 0 ]; then
            isPass=1
            ErrInfoCommon "Node: $LOCAL_BACK_IP||INFO: $info" "${RESULTFILE}"
            LOG "[$FUNCNAME] Error: $info"
        else
            echo "Node:$LOCAL_BACK_IP||$info" >>${RESULTFILE} 2>&1
        fi
    done
    restore_ifs
}

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

