#!/bin/bash
#-------------------------------------------------------------------------------
# Remotely pushes bits to a remote node and installs ONOS on it.
#-------------------------------------------------------------------------------

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

# If the first option is -f attempt uninstall first.
[ "$1" = "-f" ] && shift && onos-uninstall ${1:-$OCI}

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

scp -q $ONOS_TAR $remote:/tmp

ssh $remote "
    [ -d $ONOS_INSTALL_DIR/bin ] && echo \"ONOS is already installed\" && exit 1

    # Prepare a landing zone and unroll the bits
    sudo mkdir -p $ONOS_INSTALL_DIR && sudo chown ${ONOS_USER}:${ONOS_USER} $ONOS_INSTALL_DIR
    tar zxmf /tmp/$ONOS_BITS.tar.gz -C $ONOS_INSTALL_DIR --strip-components=1

    # Make a link to the log file directory and make a home for auxiliaries
    ln -s $ONOS_INSTALL_DIR/$KARAF_DIST/data/log /opt/onos/log
    mkdir $ONOS_INSTALL_DIR/var
    mkdir $ONOS_INSTALL_DIR/config

    # Install the upstart configuration file and setup options for debugging
    sudo cp $ONOS_INSTALL_DIR/debian/onos.conf /etc/init/onos.conf
    echo 'export ONOS_OPTS=debug' > $ONOS_INSTALL_DIR/options

    # Remove any previous ON.Lab bits from ~/.m2 repo
    rm -fr ~/.m2/repository/org/onlab

    # Drop log level for the console
    echo "log4j.logger.org.apache.sshd = WARN" >> $ONOS_INSTALL_DIR/$KARAF_DIST/etc/org.ops4j.pax.logging.cfg

"

# Configure the ONOS installation
onos-config $node

# Ignite the ONOS service.
onos-service $node start
