#!/bin/sh
# $1 == Region
# $2 == Server
# $3 == OrigStr
# $4 == Email File

progressfile="/mnt/ramdisk/getlogs.progress"
lockfile="/mnt/ramdisk/getManagedLogsInProgress"

msg()
{
    echo "$1"
    echo "$1" >> $progressfile
}

msgPartialSize()
{
    if [ -f $1 ]; then
        fs=$(stat -c%s $1)
        msg "Size: $fs bytes"
    fi
}

source "fcns.shinc";  # lib of shell fcns

touch $progressfile
progressmonitor /mnt/ramdisk/getlogs.progress &
PMPID=$!

# =====================================================================
# No matter what, run this function on exit
# =====================================================================
exitTrapFcn()
{
    local SUCCESS=$?

    rm /mnt/ramdisk/do.*

    return $SUCCESS
}
trap exitTrapFcn SIGINT SIGTERM EXIT

isPfuInProgress pfuInProgress
if [ -f $lockfile ] || $pfuInProgress
then
    msg "*********************************************************************"
    msg "*"
    [ -f $lockfile ] && msg "* ERROR: There is a get managed logs operation already in progress."
    $pfuInProgress   && msg "* ERROR: There is a pfu operation already in progress."
    msg "*  Please retry."
    msg "*"
    msg "*********************************************************************"
    echo "RETURN_CODE: 12" >> $progressfile
    touch /mnt/ramdisk/logs
    kill -9 $PMPID
    rm $progressfile
    exit 1
else
    touch $lockfile

    echo "STATUS: getting managed logs region $1 ..."
    cd /mnt/ramdisk
    source /app/etc/app.env

    mydate=`date +%Y_%m_%d__%H_%M_%S`
    logfifo=$1_$mydate.logs

    if [ "$1" == "mc" ]
    then

        if [ -f /cfg/log/archive/logArchive.manifest ]
        then
            echo "Found mc archive file"
            if [ -f /cfg/log/archive/manifest.inUse ]
            then
                echo "mc archive file in use"
                sleep 10

            else
                touch /cfg/log/archive/manifest.inUse
            fi

            zipfile=logs.zip
            mkfifo /mnt/ramdisk/$logfifo
            zip $zipfile $logfifo &
            su -c "wrapcli --cmd 'get logs /mnt/ramdisk/$logfifo region $1'" -s /bin/sh admin

            rm /cfg/log/archive/manifest.inUse

            mv /mnt/ramdisk/logs.zip logs
        else
            echo "No mc files"
            touch /mnt/ramdisk/logs

        fi
        echo "Done getting managed logs region $1 ..."

        echo "RETURN_CODE: 12" >> $progressfile
        rm -rf $lockfile
        kill -9 $PMPID
        rm $progressfile

        rm /mnt/ramdisk/$logfifo

        exit 0
    else

        zipfile=logs.zip
        mkfifo /mnt/ramdisk/$logfifo
        zip $zipfile $logfifo &
        su -c "wrapcli --cmd 'get logs /mnt/ramdisk/$logfifo region $1'" -s /bin/sh admin

        mv /mnt/ramdisk/logs.zip logs

    fi

    msgPartialSize /mnt/ramdisk/logs

    msg "get logs complete"
    echo "RETURN_CODE: 12" >> $progressfile
    rm -rf $lockfile
    kill -9 $PMPID
    rm $progressfile

    rm /mnt/ramdisk/$logfifo

    echo "Done getting managed logs region $1 ..."

    exit 0
fi
