| #!/bin/bash |
| # ----------------------------------------------------------------------------- |
| # Pushes the specified bundle to the remote ONOS cell machines and updates it. |
| # ----------------------------------------------------------------------------- |
| |
| [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 |
| . $ONOS_ROOT/tools/build/envDefaults |
| |
| cd ~/.m2/repository |
| jar=$(find org/onlab -type f -name '*.jar' | grep -e $1 | grep -v -e -tests | head -n 1) |
| |
| [ -z "$jar" ] && echo "No bundle $1 found for" && exit 1 |
| |
| bundle=$(echo $(basename $jar .jar) | sed 's/-[0-9].*//g') |
| |
| echo "pushing bundle: $bundle" |
| |
| nodes=$(env | sort | egrep "OC[0-9]+" | cut -d= -f2) |
| for node in $nodes; do |
| scp -q $jar $ONOS_USER@$node:.m2/repository/$jar |
| scp -q $jar $ONOS_USER@$node:$ONOS_INSTALL_DIR/$KARAF_DIST/system/$jar |
| ssh $ONOS_USER@$node " |
| $ONOS_INSTALL_DIR/bin/onos \"bundle:stop -f $bundle\" |
| $ONOS_INSTALL_DIR/bin/onos \"bundle:update -f $bundle\" |
| $ONOS_INSTALL_DIR/bin/onos \"bundle:start -f $bundle\" |
| " 2>/dev/null |
| done |