#!/bin/bash
# -----------------------------------------------------------------------------
# Checks that all intents in the system have a given state.
# -----------------------------------------------------------------------------

[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
. $ONOS_ROOT/tools/build/envDefaults

aux=/tmp/stc/stc-$$.log
trap "rm -f $aux 2>/dev/null" EXIT
target=${1:-$OCI}

echo onos-check-intent: $*

set -x

# $1: target host
# $2: intent key
# $3: intent state
# $4: number of expected intents
re='^[0-9]+$'
[[ $4 =~ $re ]] && numIntentsExpected=$4 # silently ignore if not positive

for i in {1..15}; do
    echo "Attempt #$i"
    onos $target "onos:intents" | tee $aux
    if  [ -z "$numIntentsExpected" ]; then
        ( cat $aux | egrep "Key.*$2" && cat $aux | egrep "State.*$3" ) && cat $aux && exit 0
    else
        # exit 0 only if expected number of intents (with required key)
        # are present and all intents match state (if expected no. of intents > 0)
        numIntents=`egrep "Key.*$2" $aux | wc -l`
        numIntentsOfState=0
        [ $numIntentsExpected -gt 0 ] && numIntentsOfState=`egrep "Key.*$2" $aux | egrep "State.*$3" | wc -l`
        [ $numIntents -eq $numIntentsOfState ] \
            && [ $numIntents -eq $numIntentsExpected ] \
            && cat $aux && exit 0
    fi
    sleep 2
done

cat $aux
exit 1

