#!/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="258"
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
LOCAL_BACK_IP=""
isPass=0
>${RESULTFILE}

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

function checkRpcBind()
{
    local Result=""

    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

    set_ifs

    RpcResult=$($G_MML_FILE_PATH/CheckRpcBindCore)
    iRet=$?
    if [ $iRet -ne 0 ]; then
        ErrInfoCommon "Node:$LOCAL_BACK_IP||INFO:Failed to execute command(/opt/product/snas/script/inspect_mml/CheckRpcBindCore).Error: ${iRet}" "${RESULTFILE}"
        LOG "[$FUNCNAME] Node: $LOCAL_BACK_IP||Error: ${iRet}"
        isPass=1
        return
    fi

    LOG "[$FUNCNAME][${LINENO}]RpcResult=${RpcResult}!"
    if [ "${RpcResult}" = "pass!" ]; then
        isPass=0
        echo "Node:$LOCAL_BACK_IP||RESULT:The check result is passed." >> "${RESULTFILE}" 2>&1
    else
        isPass=1

        if [ "${RpcResult}" = "failed!" ]; then
            ErrInfoCommon "Node:$LOCAL_BACK_IP||INFO:This node has not been properly configured with isolated CPUs!" "${RESULTFILE}"
        else
            ErrInfoCommon "Node:$LOCAL_BACK_IP||INFO:Non-RPC threads are running on isolated CPUs!" "${RESULTFILE}"
        fi
    fi

    restore_ifs
}

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

