onos/tools/test/bin/onos-push-bits
Bob Lantz 02ba2d1e53 Correctly handle case when .tar.gz archive is missing
Previously, it would succeed since the checksum command would
return nothing in standard output.

Change-Id: I1a73d20a0e085107be8362a6226b1a213ecdab78
2016-02-25 03:59:09 -08:00

40 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# -----------------------------------------------------------------------------
# Remotely pushes bits to a remote node in preparation for install.
# -----------------------------------------------------------------------------
function _usage () {
cat << _EOF_
usage:
$(basename $0) [node]
options:
- [node] : the target node to prime for installation
summary:
Remotely pushes bits to a remote node in preparation for install.
$(basename $0) is invoked as part of 'onos-install', and shouldn't be
directly invoked for the most part.
_EOF_
}
[ $# -gt 1 ] || [ "$1" = "-h" ] && _usage && exit 0
[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT isn't set correctly" >&2 && exit 1
set -e
set -u
. $ONOS_ROOT/tools/build/envDefaults
[ ! -f "$ONOS_TAR" ] && echo "$ONOS_TAR does not exist - run onos-package?" >&2 && exit 1
node=${1:-$OCI}
remote=$ONOS_USER@$node
locHash=$(cksum $ONOS_TAR | cut -d' ' -f1,2)
remHash=$(ssh $remote cksum $ONOS_TAR 2>/dev/null | cut -d' ' -f1,2)
if [ -n "$locHash" ] && [ "$locHash" = "$remHash" ]; then
echo "ONOS bits $ONOS_TAR already up-to-date on $node..."
else
scp -q $ONOS_TAR $remote:/tmp
fi