############################################################
# 所属模块	: OceanStor9000 巡检工具
# 功能      : S3FS业务的状态
# 创建时间	:
# 描述		：
#
#
#
############################################################
#!/bin/sh
G_MML_FILE_PATH="/opt/huawei/snas/script/inspect_mml"
source $G_MML_FILE_PATH/CheckItems
CurInspectNum="264"
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
LOG_FILE="/var/log/inspect.log"
>${RESULTFILE}
isPass=0


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

#判断是否不需要巡检该节点，0：不需要巡检； 1：需要巡检
function isNotNeedCheck()
{
    local 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 [ "X$node_service_type" == "X2" -o "X$node_service_type" == "X3" ];then
        return 1
    else
        return 0
    fi
}

#巡检S3FS是否正常
#1.判断是否存在/mnt/s3fs,
#2.判断obs用户是否能够正常列举这两个文件
function checkS3FSService()
{
    local sMount="/mnt/s3fs"
    local bMount="/obsbilling/var/uds/user/billing/s3fs"
    local lsS3FS=1
    local lsBILL=1
    local mS3FS=1
    local mBILL=1
    local nNum=

    pname=`cat /opt/huawei/snas/etc/snas.ini | grep 'productType=' | awk -F '=' '{print $2}'`
    if [ "X$pname" == "X80" ]; then
        bMount="/obsbilling/UDS_data/billing/s3fs"
    fi

    nNum=$(mount |grep "${bMount}" -c)
    if [ $nNum == 0 ];then
        isPass=1
        mBILL=0
    fi

    nNum=$(mount |grep "${sMount}" -c)
    if [ $nNum == 0 ];then
        isPass=1
        mS3FS=0
    fi

    su - obs -c "ls ${sMount}" 2> /dev/null
    if [ $? -ne 0 ];then
        isPass=1
        lsS3FS=0
    fi

    su - obs -c "ls ${bMount}" 2> /dev/null
    if [ $? -ne 0 ];then
        isPass=1
        lsBILL=0
    fi

    #所有项的标识必须相同，这会影响工具界面显示
    if [ $isPass -eq 1 ];then
        echo "[ERR]INFO:Path:${sMount},Is Mounted:${mS3FS},Can LS:${lsS3FS}" >>${RESULTFILE}
        echo "[ERR]INFO:Path:${bMount},Is Mounted:${mBILL},Can LS:${lsBILL}" >>${RESULTFILE}
    else
        echo "Path:${sMount}||Is Mounted:${mS3FS}||Can LS:${lsS3FS}" >>${RESULTFILE}
        echo "Path:${bMount}||Is Mounted:${mBILL}||Can LS:${lsBILL}" >>${RESULTFILE}
    fi
    echo "${CurInspectFun}_Pass $isPass" >>${RESULTFILE}
}

#如果不需要检查，直接退出,同时输出isCheck:0,代表不是S3节点,没有做检查
isNotNeedCheck
if [ $? -eq 0 ];then
    echo "Path:not involve||Is Mounted:--||Can LS:--" >> ${RESULTFILE}
    echo "${CurInspectFun}_Pass $isPass" >>${RESULTFILE}
    exit 0
fi

#检查服务
checkS3FSService
