onos-uninstall 1.17 KB
#!/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.'; 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};
"