#!/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="${G_TMP_INSPECT_PATH}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

    RPCBond=$( cat /opt/huawei/deploy/etc/deploy.ini | grep "rpc=" |sed 's/rpc=//g'| awk -F, '{print NF}' )
    LOG "[$FUNCNAME][${LINENO}]RpcResult=${RpcResult}!"
    LOG "[$FUNCNAME][${LINENO}]RPCBond=${RPCBond}!"
    if [ "${RpcResult}" = "pass!" ]; then
        isPass=0
        echo "Node:$LOCAL_BACK_IP||RESULT:The check result is passed.||RPCBond:${RPCBond}" >> "${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!||RPCBond:${RPCBond}" "${RESULTFILE}"
        else
            ErrInfoCommon "Node:$LOCAL_BACK_IP||INFO:Non-RPC threads are running on isolated CPUs!||RPCBond:${RPCBond}" "${RESULTFILE}"
        fi
    fi

    restore_ifs
}

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

