onos 1.36 KB
#!/bin/bash
# -----------------------------------------------------------------------------
# ONOS remote command-line client.
# -----------------------------------------------------------------------------

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

flags:
- -w : Waits for ONOS instance to reach run-level 100, i.e. to be fully started.
- -f : (Affects non-secure client only) - use bash's IFS expansion of positional parameters

options:
- [node] : the node to attach to

summary:
 ONOS remote command-line client.

 The -w flag depends on 'onos-wait-for-start'. If [node] is unspecified, \$OCI
 is used.

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

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

[ "$1" = "-w" ] && shift && onos-wait-for-start $1
[ "$1" = "-f" ] && shift && flat=1

[ -n "$1" ] && OCI=$(find_node $1) && shift

if which client 1>/dev/null 2>&1 && [ -z "$ONOS_USE_SSH" ]; then
    # Use Karaf client only if we can and are allowed to
    unset KARAF_HOME
    if [ -z "$flat" ]; then
        client -h $OCI -u karaf "$@" 2>/dev/null
    else
        client -h $OCI -u karaf "$*" 2>/dev/null
    fi
else
    # Otherwise use raw ssh; strict checking is off for dev environments only
    ssh -p 8101 -o StrictHostKeyChecking=no $OCI "$@"
fi