#!/bin/bash # ----------------------------------------------------------------------------- # Remotely administers the ONOS service on the specified node. # ----------------------------------------------------------------------------- [ ! -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 function print_usage { command_name=`basename $0` echo "Remotely administer the ONOS service on a single node or the current ONOS cell." echo echo "Usage: $command_name [COMMAND]" echo " $command_name [-h | --help]" echo "Options:" echo " TARGET The target of the command" echo " COMMAND The command to execute. Default value is 'status'" echo " [-h | --help] Print this help" echo "" echo "TARGET: " echo " hostname Execute on the specified host name" echo " --cell Execute on the current ONOS cell" echo "" echo "COMMAND: [start|stop|restart|status]" echo "" } # Print usage if [ "${1}" = "-h" -o "${1}" = "--help" ]; then print_usage exit 0 fi case $2 in start|stop|restart|status) # Select the target if [ "${1}" = "--cell" ]; then nodes=$(env | sort | egrep "OC[0-9]+" | cut -d= -f2) else nodes=$(find_node ${1:-$OCI}) fi # Execute the remote commands for node in $nodes; do ssh $ONOS_USER@${node} "sudo ${2:-status} onos" done ;; *) echo "error: $2 is not a valid command" echo "" print_usage ;; esac