| #!/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 <TARGET> [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: <hostname | --cell>" |
| 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 -tt $ONOS_USER@${node} "sudo service onos ${2:-status}" |
| done |
| ;; |
| *) |
| echo "error: $2 is not a valid command" |
| echo "" |
| print_usage |
| ;; |
| esac |