#!/bin/sh
set +x
G_MML_FILE_PATH="/opt/huawei/snas/script/inspect_mml"
source $G_MML_FILE_PATH/CheckItems
CurInspectNum="139"
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="${G_TMP_INSPECT_PATH}tmpResult${CurInspectFun}"
LOG_FILE="/var/log/inspect.log"

>${RESULTFILE}

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

function CheckRMGB
{
    local isPass=0
    local result="no change"
    local checkfile="/opt/huawei/snas/static/job_templet/rmbg_data.ini"
    local productVersion=$(grep ProductVersion /opt/huawei/deploy/package/version |awk -F= '{print $2}')

    if [ ! -e ${checkfile} ];then
        echo "task_parallelism:--||result:no file /opt/product/snas/static/job_templet/rmbg_data.ini" >>${RESULTFILE} 2>&1
        echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
        return
    fi
    local taskParallelism=$(cat ${checkfile} | grep -w task_parallelism | awk -F"=" '{print $2}' |tr -d " "| dos2unix)
    if [ -z "${taskParallelism}" ];then
        isPass=1
        result="get task_parallelism fail."
        echo "task_parallelism:-- ||result:${result}" >>${RESULTFILE} 2>&1
    else
        if [ "${taskParallelism}" = "150" ];then
            sed -i "s/task_parallelism=.*$/task_parallelism=5/g" ${checkfile}
            /opt/huawei/deploy/bin/daemon -s /opt/huawei/snas/bin/snas_bjm_worker;
            /opt/huawei/deploy/bin/daemon -s /opt/huawei/snas/bin/snas_bjm_manager;
            /opt/huawei/deploy/bin/daemon -s /opt/huawei/snas/bin/snas_bjm_server;
            sleep 5
            /opt/huawei/deploy/bin/daemon /opt/huawei/snas/bin/snas_bjm_worker;
            /opt/huawei/deploy/bin/daemon /opt/huawei/snas/bin/snas_bjm_manager;
            /opt/huawei/deploy/bin/daemon /opt/huawei/snas/bin/snas_bjm_server;
            taskParallelism="5"
            sleep 5
            bjm_worker=$(ps -efww | grep -w /opt/huawei/snas/bin/snas_bjm_worker | grep -v grep) 
            bjm_manager=$(ps -efww | grep -w /opt/huawei/snas/bin/snas_bjm_manager | grep -v grep)
            bjm_server=$(ps -efww | grep -w /opt/huawei/snas/bin/snas_bjm_server | grep -v grep)
            local RepeatTimes=(1 2 3)
            for time in ${RepeatTimes[*]}; do
                if [ "X${bjm_worker}" = "X" ] || [ "X${bjm_manager}" = "X" ] || [ "X${bjm_server}" = "X" ];then
                    sleep 5
                    bjm_worker=$(ps -efww | grep -w /opt/huawei/snas/bin/snas_bjm_worker | grep -v grep) 
                    bjm_manager=$(ps -efww | grep -w /opt/huawei/snas/bin/snas_bjm_manager | grep -v grep)
                    bjm_server=$(ps -efww | grep -w /opt/huawei/snas/bin/snas_bjm_server | grep -v grep)
                    continue
                fi
                break
            done
            if [ "X${bjm_worker}" = "X" ] || [ "X${bjm_manager}" = "X" ] || [ "X${bjm_server}" = "X" ];then
                isPass=1
                result="changed but restart snas_bjm_worker(snas_bjm_manager or snas_bjm_server) failed."
            else
                result="changed"
            fi
        fi
        echo "task_parallelism:${taskParallelism}||result:${result}" >>${RESULTFILE} 2>&1
    fi
    echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
}

CheckRMGB
exit 0
