#!/bin/bash


function update_status
{
   STATUS=`pegasus-status --noqueue | tail -1 | sed 's/[:\(\)]/ /g'| awk '{print $5}'`
   SUMMARY=`pegasus-status | grep "Condor jobs total" | sed 's/Summary: //'`
}


function show_state
{
    OUT="# STATUS is $STATUS"
    if [ "x$STATUS" = "xRunning" -a "x$SUMMARY" != "x" ]; then
        OUT="$OUT - $SUMMARY"
    fi

    if [ "x$OLD_OUT" = "x$OUT" ]; then
        return
    fi

    OLD_OUT="$OUT"
    echo "$OUT"
}


echo "CURRENT DIR is " `pwd`

if [ ! -e braindump.txt ]; then
    echo "braindump.txt was not found in this directory. Planner probably failed!" 1>&2
    exit 1
fi

TIMEOUT=360
COUNT=0

sleep 30s
update_status
show_state

while [ "$STATUS" = "Running" -o "$STATUS" = "" -o "$STATUS" = "Unknown"  ] ; do 
    if [ $COUNT -ge $TIMEOUT ]; then
        echo "Reached TIMEOUT of $TIMEOUT. Calling pegasus-remove"
        pegasus-remove `pwd`
        STATUS=TIMEOUT
        sleep 1m
        break;
    fi
    ((COUNT++))
    sleep 30s
    update_status
    show_state
done

if [ "$STATUS" = "Success" ]; then
    # give monitord some time to finish
    sleep 1m
    echo "*** Workflow finished succesfully ***"
    exit 0
else
    echo "*** Workflow failed ***"
    exit 1
fi

