#!/bin/sh

CurInspectNum="335"
LOG_FILE="/var/log/inspect.log"
G_INSPECT_MMLPATH="/opt/huawei/snas/script/inspect_mml"
source $G_INSPECT_MMLPATH/CheckItems
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
>${RESULTFILE}

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

function checkUpdFile()
{
    local isPass=0
    local sha256_file_path="/opt/huawei/deploy/logs/.upd.tar.sha256sum"
    local md5_file_path="/opt/huawei/deploy/logs/.upd.tar.md5"
    local Result="PASS"
    local productVersion=""
    local CheckList="
V300R006C00SPC200
V300R006C20SPC300
V500R007C00SPC100
V500R007C00SPC200
V500R007C10SPC100
V500R007C10SPC300
V100R006C30SPC510
V100R006C30SPC700
"
#只检查 V300R006C00 V300R006C20 7.0.1 7.0.2 7.1.0 7.1.1
#FusionStorage V100R006C30SPC510
#FusionStorage V100R006C30SPC700
    productVersion=$(grep ProductVersion /opt/huawei/deploy/package/version | awk -F= '{print $2}')
    echo "$CheckList" | grep -wq "${productVersion}"
    IsNoNeedCheck=$?
    if [ ${IsNoNeedCheck} -ne 0 ];then
        LOG "[$LINENO] no need check ${productVersion}"
        echo "Result:PASS(no need check ${productVersion})"
        echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
        return 0
    fi
    if [ ! -f ${sha256_file_path} ] && [ ! -f ${md5_file_path} ];then
        LOG "[$LINENO] no file : ${sha256_file_path} ${md5_file_path}"
        echo "Result:PASS(/opt/product/deploy/logs/.upd.tar.sha256sum and .upd.tar.md5 do not exist)" >>${RESULTFILE} 2>&1
        echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
        return 0
    fi
    if [ -d "/var/huawei/patch/cur/sph/" ];then
        all_file="$(find /var/huawei/patch/cur/sph/*/*/coldpatch/ -type f -print | awk -F"/" '{print $NF}'| grep '^upd' | tr "\n" " " 2>&1)"
        local errorFile=""
        for file in ${all_file};do
            md5_val1=$(md5sum /var/huawei/patch/cur/sph/*/*/coldpatch/${file} | awk '{print $1}')
            tmpfile_path=$(find /opt/huawei/snas/upd/ -name ${file} 2>&1)
            md5_val2=$([ "x${tmpfile_path}" != "x" ] && md5sum ${tmpfile_path} | awk '{print $1}')
            if [ "X${md5_val1}" = "X${md5_val2}" ];then
                errorFile="${file} ${errorFile}"
                LOG "[$LINENO] /var/huawei/patch/cur/sph/*/*/coldpatch/${file}=${md5_val1} "
                LOG "[$LINENO] ${tmpfile_path}=${md5_val2}"
            fi
        done
        if [ "x${errorFile}" != "x" ]; then
            isPass=1
            Result="FAIL"
            echo "[ERR]INFO:${errorFile}" >>${RESULTFILE} 2>&1
            LOG "[$LINENO][ERR]:${errorFile}"
        fi
    fi

    echo "Result:$Result" >>${RESULTFILE} 2>&1
    echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1
    return 0
}

checkUpdFile
