#!/bin/bash
# -----------------------------------------------------------------------------
# Remotely stops & uninstalls ONOS on the specified node.
# -----------------------------------------------------------------------------

function _usage () {
cat << _EOF_
usage:
 $(basename $0) [node]

options:
- [node] : The remote instance to uninstall ONOS from.

summary:
 Remotely stops and uninstalls ONOS on the specified node.

 If [node] isn't specified, \$OCI becomes the target.

_EOF_
}

[ "$1" = "-h" ] && _usage && exit 0

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

remote=$ONOS_USER@${1:-$OCI}

ssh -tt $remote "
    sudo service onos stop  1>/dev/null 2>/dev/null
    # Wait for onos to stop up to 5 seconds
    for i in \$(seq 1 5); do
      [ -z \"\$(ps -ef | grep karaf.jar | grep -v grep)\" ] && break
      sleep 1
    done
    [ -z \"\$(ps -ef | grep karaf.jar | grep -v grep)\" ] || \
        (echo 'ONOS failed to stop.'; status=1)

    # Remove onos directory and init file
    [ -d $ONOS_INSTALL_DIR ] && sudo rm -fr $ONOS_INSTALL_DIR
    [ -f /etc/init/onos.conf ] && sudo rm -f /etc/init/onos.conf

    exit \${status:-0};
"
