#!/bin/bash
set +x


G_VIID_BASE_SHELL="/opt/huawei/viid/script/common/viid_base.sh"
#让基代码生效
SNAS_INI="/opt/huawei/snas/etc/snas.ini"
LOG_DIR="/var/log/viid/script"
LOG_FILE="/var/log/viid/script/inspect.log"


VIID_MAINTAIN_COMMOND_SCRIPT_HEAD="python /opt/huawei/viid/script/pcurl.py"

G_MML_FILE_PATH="/opt/huawei/snas/script/inspect_mml"
source $G_MML_FILE_PATH/CheckItems
CurInspectNum="307"
CurInspectFun="$(GetInspectType $CurInspectNum)"
TEMP_FILE="/tmp/inspect.tmp"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
>${RESULTFILE}

#升级接口
readonly SERVER_UPGRADE_PORT=7003
readonly MANAGER_UPGRADE_PORT=7002

###
#功    能：语义场景摄像头状态巡检项
#输入参数：无
#标准输出：打印信息显示
#          print:${value}
#          Result:${res} 0:正常； 非0:不正常 （默认使用1）
###
function main()
{
    if [ ! -d $LOG_DIR ]; then
        mkdir -p $LOG_DIR
    fi
    checkIpcStatus
}

#===================================================
# 函数名称：LOG
# 函数功能：打印日志
# 描述：
# 参数： $1 表示日志， $2 表示日志文件
#===================================================
function LOG()
{
    log_time=$(date +%Y-%m-%d_%H:%M:%S)
    # 时间 进程号 脚本名 调用的函数  日志信息
    echo "[$log_time][$$][$0][${FUNCNAME[1]}]] $1"  >> $LOG_FILE
}

#===================================================
# 函数名称：isInstallViid
# 函数功能：是否安装语义
# 描述：
#返回值： 0 表示安装语义，1表示非语义场景
#===================================================
function isInstallViid()
{
    value=$(cat ${SNAS_INI} |tr \\n ] |grep -Po '(?<=[[]'SERVICE'[]]).*' |tr ] \\n |grep -Po '(?<=^'viid'=).*' |awk 'NR==1{print}')
    if [ ${value}X == "1X" ];then
        return 0
    else
        return 1
    fi
}


###
#功    能：语义场景摄像头状态检查
#输入参数：无
#标准输出：打印信息显示
#          NodeType:${value} 主:master ,备:slave
#          Result:${res} 0:正常； 非0:不正常 （默认使用1）
###
function checkIpcStatus()
{
    LOG "INFO: start check ipc status [Line:${LINENO}]"
    isInstallViid
    res=$?
    if [ $res -ne 0 ];then
        LOG  "INFO: Uninstall viid service [Line:${LINENO}]"
        echo "NodeType:Master" >> ${RESULTFILE} 2>&1
        echo "Status:Success" >> ${RESULTFILE} 2>&1
        echo "Result: Uninstall" >> ${RESULTFILE} 2>&1
    else
        sh $G_VIID_BASE_SHELL isMaster
        if [ $? -eq 0 ]; then
            $($VIID_MAINTAIN_COMMOND_SCRIPT_HEAD "GET" 127.0.0.1 $MANAGER_UPGRADE_PORT /ipcStatusInspect False False >$TEMP_FILE 2>/dev/null)
            result=$(cat $TEMP_FILE | grep "NodeType: *Master")
            if [ "${result}X" != "X" ]; then
                grep -v "^$"  $TEMP_FILE >> ${RESULTFILE} 2>&1
            else
               echo "NodeType:Master" >> ${RESULTFILE} 2>&1
               echo "Status:Error" >> ${RESULTFILE} 2>&1
               echo "result:master node abnormal" >> ${RESULTFILE} 2>&1
            fi
            rm $TEMP_FILE
        else
            echo "NodeType:Slave" >> ${RESULTFILE} 2>&1
            LOG "INFO: the node not master: check ipc status[Line:${LINENO}]"
        fi
    fi
    LOG "INFO: check ipc status end [Line:${LINENO}]"
}

main