#!/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="207"
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 checkISMStatus()
{
    local dmStatus=""
    local htbtStatus=""
    local retv=0
    local process=""

    cat /opt/huawei/snas/etc/cm.ini | grep "SubDomain=0" >/dev/null 2>&1
    if [ $? -ne 0 ]; then
        LOG "item is not SubDomain=0"
        return
    fi

    LOCAL_BACK_IP=`GetLocalIp`
    if [ "${LOCAL_BACK_IP}X" == "X" ];then
        echo "[ERR]Node:$(hostname)||INFO:Get Back-End IP failed." >> ${RESULTFILE} 2>&1
        LOG "[ERR]Node:$(hostname) ||INFO:Command exec faild."
        isPass=1
        return
    fi

    #ism运行状态
    process=$(ps -efww|grep deviceManagerMonitor |grep -v grep | grep -v localexec)
    if [ "$process" != "" ];then
        dmStatus="DeviceManager is running."
    else
        dmStatus="DeviceManager is not running."
        LOG "[$FUNCNAME]$LOCAL_BACK_IP $dmStatus, process($process)"
        echo "[ERR]Node:${LOCAL_BACK_IP}||INFO:DeviceManager is not running." >> ${RESULTFILE} 2>&1
        isPass=1
    fi

    #ism与cm的心跳状态
    local hbStatus=$(lsof -i :8080|grep ESTABLISHED|grep ibase)
    if [ "$hbStatus" != "" ];then
        htbtStatus="Normal"
    else
        htbtStatus="Abnormal"
        LOG "[$FUNCNAME]$LOCAL_BACK_IP htbtStatus($htbtStatus) not Normal"
        echo "[ERR]Node:${LOCAL_BACK_IP}||INFO:${LOCAL_BACK_IP} htbtStatus is ${htbtStatus}." >> ${RESULTFILE} 2>&1
        isPass=1
    fi

    echo "IP:$LOCAL_BACK_IP||DeviceManagerStatus:$dmStatus||HTBTStatus:$htbtStatus" >> ${RESULTFILE} 2>&1
}

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

