#!/bin/sh
set +x

filename="checkIPMI"

LOG_FILE="/var/log/inspect.log"
G_MML_FILE_PATH="/opt/huawei/snas/script/inspect_mml"
source $G_MML_FILE_PATH/CommonFunc.sh
source $G_MML_FILE_PATH/CheckItems
G_REMOTE_TMP_FILE="/tmp/tmpfile"
CurInspectNum="222"
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
>${RESULTFILE}

ipmiToolResultIp=`ipmitool raw 0x0c 0x02 0x01 0xcc 0x00 0x00`
ipmiToolResultGateWay=`ipmitool raw 0x0c 0x02 0x01 0xce 0x00 0x00`
ipmiToolResultPrefix=`ipmitool raw 0x0c 0x02 0x01 0xcd 0x00 0x00`

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

function get_ipmi_ipv6_address()
{
    input=$1
    output=""
    count=`echo $input | grep "Unable to" | wc -l`
    if [ "${count}" != "0" ];then
        output="$2:null"
    else
        input=($input)
        lenth=${#input[*]}
        nubc=0
        while [[ $lenth -gt 4 ]]
        do
            ((lenth--))
            if [ $nubc -eq 1 ];then
                if [[ $lenth -eq 4 ]];then
                    output=$output${input[$lenth]}
                else
                    output=$output${input[$lenth]}":"
                    nubc=0
                fi
            else
                output=$output${input[$lenth]}
                ((nubc++))
            fi
        done
        output="$2:`python /opt/huawei/snas/script/inspect_mml/ipv6Compress.py "${output}"`"
    fi
    echo $output
}

ipmitool lan print > ${RESULTFILE} 2>&1
if [ "0" != "$?" ];then
    sleep 5
    ipmitool lan print > ${RESULTFILE} 2>&1
    iRet=$?
    LOG "[$LINENO]try lan again iRet=$iRet"
fi

get_ipmi_ipv6_address "$ipmiToolResultIp" >> ${RESULTFILE} 2>&1 "ipmi_ipv6_address"
if [ "0" != "$?" ];then
    sleep 5
    get_ipmi_ipv6_address "$ipmiToolResultIp" >> ${RESULTFILE} 2>&1 "ipmi_ipv6_address"
    iRet=$?
    LOG "[$LINENO]try get_ipmi_ipv6_address iRet=$iRet"
fi

get_ipmi_ipv6_address "$ipmiToolResultGateWay" >> ${RESULTFILE} 2>&1 "ipmi_ipv6_gateway"
if [ "0" != "$?" ];then
    sleep 5
    get_ipmi_ipv6_address "$ipmiToolResultGateWay" >> ${RESULTFILE} 2>&1 "ipmi_ipv6_gateway"
    iRet=$?
    LOG "[$LINENO]try get_ipmi_ipv6_gateway iRet=$iRet"
fi

get_ipmi_ipv6_address "$ipmiToolResultPrefix" >> ${RESULTFILE} 2>&1 "ipmi_ipv6_prefix"
if [ "0" != "$?" ];then
    sleep 5
    get_ipmi_ipv6_address "$ipmiToolResultPrefix" >> ${RESULTFILE} 2>&1 "ipmi_ipv6_prefix"
    iRet=$?
    LOG "[$LINENO]try get_ipmi_ipv6_prefix iRet=$iRet"
fi

LOG "iRet:$iRet"
isMaster
if [ $? -eq 0 ];then
    #主节点checkOMIPandIPMIinOneNet中还在使用tmpfile请勿删除!
    cat ${RESULTFILE} > $G_REMOTE_TMP_FILE$filename 2>&1
fi
