#!/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="255"
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
KEYSTONEFILE="/opt/obs/obsconf/swift/proxy-server.ini"
LOCAL_BACK_IP=""
isPass=0
>${RESULTFILE}

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

function checkKeyStone()
{
    local Result=""

    LOCAL_BACK_IP=`GetLocalIp`
    if [ "${LOCAL_BACK_IP}X" == "X" ];then
        echo "[ERR]Node:$(hostname)||INFO:Can't get backend IP." >> ${RESULTFILE} 2>&1
        LOG "[ERR]Node:$(hostname)||INFO:Can't get backend IP."
        isPass=1
        return
    fi

    local local_service_type=$(get_service_type_from_db "$LOCAL_BACK_IP")
    #如果本节点为swift节点
    if [ "${local_service_type}" == "3" ]; then
        #获取auth_host,auth_port, admin_tenant_name, admin_user, admin_password的值
        auth_host_info=`cat $KEYSTONEFILE |grep auth_host |awk -F'auth_host=' '{print $2}'`
        auth_port_info=`cat $KEYSTONEFILE |grep auth_port |awk -F'auth_port=' '{print $2}'`
        admin_tenant_name_info=`cat $KEYSTONEFILE |grep admin_tenant_name |awk -F'admin_tenant_name=' '{print $2}'`
        admin_user_info=`cat $KEYSTONEFILE |grep admin_user |awk -F'admin_user=' '{print $2}'`
        LOG "[$FUNCNAME]:auth_host:$auth_host_info||auth_port:$auth_port_info||admin_tenant_name:$admin_tenant_name_info||admin_user:$admin_user_info"
        if [ "$auth_host_info" == "" ] || [ "$auth_port_info" == "" ] || [ "$admin_tenant_name_info" == "" ] || [ "$admin_user_info" == "" ]; then
            isPass=1
            echo "[ERR]Node:$LOCAL_BACK_IP||INFO:Failed to get keystone info from file($KEYSTONEFILE)" >> ${RESULTFILE} 2>&1
            return
        fi
        Result="Node:$LOCAL_BACK_IP||auth_host:$auth_host_info||auth_port:$auth_port_info||admin_tenant_name:$admin_tenant_name_info||admin_user:$admin_user_info"
        echo "<![CDATA[$Result]]>" >>${RESULTFILE} 2>&1
    else
        LOG "service_type = ${local_service_type}.skip ${LOCAL_BACK_IP}."
        echo "Node:$LOCAL_BACK_IP||INFO:Do not involve to inspect." >> ${RESULTFILE} 2>&1
        return
    fi
}

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

