#!/bin/bash

#检查集群节点个数
G_INSPECT_MMLPATH="/opt/huawei/snas/script/inspect_mml"
source ${G_INSPECT_MMLPATH}/CheckItems
CurInspectNum="357"
CurInspectFun="$( GetInspectType $CurInspectNum )"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
>${RESULTFILE}

LOG_FILE="/var/log/inspect.log"
RepeatTimes=(1 2 3)
function LOG
{
   time=$(date)
   echo [${time}][$$]$@ >> ${LOG_FILE}
}

function CheckNodePoolDiskConsistency()
{
    local isPass=0
    local checkfile_tmp="/tmp/tmpfileCheckNodePoolDiskConsistency"
    local get_nodepool_info_cmd="/opt/huawei/snas/sbin/nofs-snas listpool" 
    
    for time in ${RepeatTimes[*]}; do
        ${get_nodepool_info_cmd} | sed '/^$/d' | grep -v "^NAME" > ${checkfile_tmp} 2>&1
        dos2unix ${checkfile_tmp} >/dev/null 2>&1
        iRet=$?
        if [ $iRet -ne 0 ]; then
            sleep 2
        else
            break
        fi
    done 
    nodepool_diskinfo=$(cat ${checkfile_tmp} )
    if [ "X${nodepool_diskinfo}" == "X" ];then
        isPass=1
        echo "INFO:get nodepooldisk info failed" >>${RESULTFILE} 2>&1
        echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
        LOG "[$FUNCNAME]${CurInspectFun}_Pass ${isPass},get diskpool disk info failed,cmd: ${get_nodepool_info_cmd}."
        return 
    else
        while read line   
        do
        NodePoolid=$( echo "${line}" | awk '{print $1}' )
        DiskSize=$( echo "${line}" | awk '{print $2}' )
        echo "NodePoolID:${NodePoolid}||DiskSize:${DiskSize}" >>${RESULTFILE} 2>&1
        done<${checkfile_tmp}
        
        disksize_unsame_num=$( cat ${checkfile_tmp} |sed '/^$/d' |grep -v "^NAME" |awk '{print $2}' | awk '!x[$0]++' |wc -l )
        if [ "X${disksize_unsame_num}" != "X1" ];then
            isPass=1
            LOG "[$FUNCNAME]${CurInspectFun}_Pass ${isPass},disksize_unsame_num:${disksize_unsame_num},these disks have different capacities."
        fi
    fi
    echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
    LOG "[$FUNCNAME]${CurInspectFun}_Pass ${isPass}"

}


CheckNodePoolDiskConsistency
rm -f ${checkfile_tmp} >/dev/null 2>&1


