#!/bin/bash
# -----------------------------------------------------------------------------
# Forms ONOS cluster using REST API.
# -----------------------------------------------------------------------------

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

# Scan arguments for user/password or other options...
while getopts u:p: o; do
    case "$o" in
        u) user=$OPTARG;;
        p) password=$OPTARG;;
    esac
done
user=${user:-onos}           # user defaults to 'onos'
password=${password:-$user}  # password defaults to user name if not specified
let OPC=$OPTIND-1
shift $OPC

node=${1:-$OCI}

if [ $node = "cell" ]; then
    nodes=${ONOS_INSTANCES}
    node=${OCI}
else
    nodes="$@"
fi

set -x

ssh $ONOS_USER@$node $ONOS_INSTALL_DIR/bin/onos-form-cluster -u $user -p $password $nodes
