#!/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 $remote "
    sudo stop onos 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.'

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