#!/bin/bash
# -----------------------------------------------------------------------------
# Executes validation build using onos-test.tar.gz and onos.tar.gz on a remote
# proxy. It assumes that the tar.gz files are already available.
# -----------------------------------------------------------------------------

. $ONOS_ROOT/tools/build/envDefaults

[ -f $ONOS_TEST_TAR ] || onos-package-test

onos-push-test-bits $OCN
onos-push-bits $OCN

ssh -t -t $ONOS_USER@$OCN "
    # Unpack the test tools
    cd /tmp; rm -fr \$(ls -Fd onos-test-*/)
    tar xf \$(basename $ONOS_TEST_TAR)

    # Source in the cell environment
    $(onos-cell | sed 's/^/export /')
    unset OCT

    # Set ONOS root to the top of the unrolled test directory and
    # prime the environment.
    cd \$(ls -Fd onos-test-*/)
    export ONOS_ROOT=\$PWD
    export ONOS_STAGE_ROOT=/tmp
    source \$ONOS_ROOT/tools/dev/bash_profile
    setPrimaryInstance 1
    onos-verify-cell   # TODO: remove once warden does this for us

    # Finally, execute required STC scenario(s) using the default topology
    topo default
    export stcDumpLogs=true
    export stcColor=$stcColor
    export TERM=vt100
    stc $1
"
status=$?

mkdir -p /tmp/stc
scp -r ${ONOS_USER}@[${OCN}]:/tmp/stc/* /tmp/stc/

exit $status
