blob: cc6949111d4f8c23858c12a9ad4821720fc8df21 [file] [log] [blame]
tom1a2908c2014-09-23 16:37:39 -07001#!/bin/bash
Pavlin Radoslavov91413792014-10-15 11:00:32 -07002# -----------------------------------------------------------------------------
tom1a2908c2014-09-23 16:37:39 -07003# Remotely administers the ONOS service on the specified node.
Pavlin Radoslavov91413792014-10-15 11:00:32 -07004# -----------------------------------------------------------------------------
tom1a2908c2014-09-23 16:37:39 -07005
6[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
7. $ONOS_ROOT/tools/build/envDefaults
Jonathan Hart1a4d3592015-08-31 10:59:16 +02008. $ONOS_ROOT/tools/test/bin/find-node.sh
tom1a2908c2014-09-23 16:37:39 -07009
Pavlin Radoslavovcaf19cf2014-10-16 17:29:13 -070010function print_usage {
11 command_name=`basename $0`
12 echo "Remotely administer the ONOS service on a single node or the current ONOS cell."
13 echo
14 echo "Usage: $command_name <TARGET> [COMMAND]"
15 echo " $command_name [-h | --help]"
16 echo "Options:"
17 echo " TARGET The target of the command"
18 echo " COMMAND The command to execute. Default value is 'status'"
19 echo " [-h | --help] Print this help"
20 echo ""
21 echo "TARGET: <hostname | --cell>"
22 echo " hostname Execute on the specified host name"
23 echo " --cell Execute on the current ONOS cell"
24 echo ""
25 echo "COMMAND: [start|stop|restart|status]"
26 echo ""
27}
28
29# Print usage
30if [ "${1}" = "-h" -o "${1}" = "--help" ]; then
31 print_usage
32 exit 0
33fi
34
Jonathan Hartaf53b602015-04-03 16:25:37 -070035case $2 in
36 start|stop|restart|status)
Pavlin Radoslavovcaf19cf2014-10-16 17:29:13 -070037
Jonathan Hartaf53b602015-04-03 16:25:37 -070038 # Select the target
39 if [ "${1}" = "--cell" ]; then
40 nodes=$(env | sort | egrep "OC[0-9]+" | cut -d= -f2)
41 else
Jonathan Hart1a4d3592015-08-31 10:59:16 +020042 nodes=$(find_node ${1:-$OCI})
Jonathan Hartaf53b602015-04-03 16:25:37 -070043 fi
44
45 # Execute the remote commands
46 for node in $nodes; do
47 ssh $ONOS_USER@${node} "sudo ${2:-status} onos"
48 done
49 ;;
50 *)
51 echo "error: $2 is not a valid command"
52 echo ""
53 print_usage
54 ;;
55esac