#!/bin/bash
set +x

CurInspectNum="211"
G_INSPECT_MMLPATH="/opt/huawei/snas/script/inspect_mml"
source $G_INSPECT_MMLPATH/CheckItems
G_REMOTE_TMP_FILE="/tmp/tmpfileNASClusterStatus"
LOG_FILE="/var/log/inspect.log"
isPass=0
Result=""
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
>${RESULTFILE}

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

function set_ifs
{
    IFS_OLD=$IFS
    IFS=$'\n'
}

function restore_ifs
{
    IFS=$IFS_OLD
}

function checkNASClusterStatus()
{
    #ȡڵ洢
    node_service_type=$(egrep '[[]|^'node_service_type'=' /opt/huawei/snas/etc/snas.ini | tr -d '\n' | grep -Po '(?<=[[]'NODE'[]]'node_service_type'=)[0-9]+')

    if [ "${node_service_type}" != "1" ];then
        echo "InfoEqualizer_Status:not involve||CIFS_Status:--||NFS_Status:--" >> ${RESULTFILE} 2>&1
        echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
        LOG "[$LINENO] node_service_type :${node_service_type}.Does not involve."
        return 0
    fi

    #ȡCIFS״̬
    service nascifs status > $G_REMOTE_TMP_FILE[CIFS]

    #
    set_ifs
    InfoEqualizerStatus=`cat $G_REMOTE_TMP_FILE[CIFS] | grep "InfoEqualizer"|sed -n '$p'|awk 'gsub(/^ *| *$/,"")' | grep -w "running"`
    if [ "${InfoEqualizerStatus}X" = "X" ]; then
        LOG "[$LINENO] InfoEqualizerStatus(${InfoEqualizerStatus}) is not \"InfoEqualizer..running\""
        isPass=1
        Result="InfoEqualizer_Status:unused"
        echo "[ERR]INFO:InfoEqualizer_Status is unused." >> ${RESULTFILE} 2>&1
    else
        Result="InfoEqualizer_Status:running"
    fi

    count=`cat $G_REMOTE_TMP_FILE[CIFS] | grep "running" | wc -l`
    if [ "${count}" != "7" ];then
        isPass=1
        LOG "[$LINENO] cifs count(${count}) is not \"7\""
        Result=$Result"||CIFS_Status:Abnormal"
        echo "[ERR]INFO:CIFS_Status is Abnormal." >> ${RESULTFILE} 2>&1
    else
        Result=$Result"||CIFS_Status:Normal"
    fi

    #ȡNFS״̬
    [ -f "$G_REMOTE_TMP_FILE[NFS]" ] && rm -f "$G_REMOTE_TMP_FILE[NFS]"
    service nasnfs status > $G_REMOTE_TMP_FILE[NFS]
    count=`cat $G_REMOTE_TMP_FILE[NFS] | grep "running" | wc -l`
    if [ ${count} != "8" ];then
        isPass=1
        LOG "[$LINENO] nfs count(${count}) is not \"8\""
        Result=$Result"||NFS_Status:Abnormal"
        echo "[ERR]INFO:NFS_Status is Abnormal." >> ${RESULTFILE} 2>&1
    else
        Result=$Result"||NFS_Status:Normal"
    fi

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

    #Ƿسɹ[ERR]ʶǷ
    [ -f "$G_REMOTE_TMP_FILE[CIFS]" ] && rm -f "$G_REMOTE_TMP_FILE[CIFS]"
    [ -f "$G_REMOTE_TMP_FILE[NFS]" ] && rm -f "$G_REMOTE_TMP_FILE[NFS]"
    return 0
}

checkNASClusterStatus
