tom | 1a2908c | 2014-09-23 16:37:39 -0700 | [diff] [blame] | 1 | #!/bin/bash |
Pavlin Radoslavov | 9141379 | 2014-10-15 11:00:32 -0700 | [diff] [blame] | 2 | # ----------------------------------------------------------------------------- |
tom | 1a2908c | 2014-09-23 16:37:39 -0700 | [diff] [blame] | 3 | # Remotely administers the ONOS service on the specified node. |
Pavlin Radoslavov | 9141379 | 2014-10-15 11:00:32 -0700 | [diff] [blame] | 4 | # ----------------------------------------------------------------------------- |
tom | 1a2908c | 2014-09-23 16:37:39 -0700 | [diff] [blame] | 5 | |
| 6 | [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 |
| 7 | . $ONOS_ROOT/tools/build/envDefaults |
Jonathan Hart | 1a4d359 | 2015-08-31 10:59:16 +0200 | [diff] [blame] | 8 | . $ONOS_ROOT/tools/test/bin/find-node.sh |
tom | 1a2908c | 2014-09-23 16:37:39 -0700 | [diff] [blame] | 9 | |
Pavlin Radoslavov | caf19cf | 2014-10-16 17:29:13 -0700 | [diff] [blame] | 10 | function 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 |
| 30 | if [ "${1}" = "-h" -o "${1}" = "--help" ]; then |
| 31 | print_usage |
| 32 | exit 0 |
| 33 | fi |
| 34 | |
Bob Lantz | 641d545 | 2016-03-04 19:39:17 -0800 | [diff] [blame] | 35 | case $2 in |
Jonathan Hart | af53b60 | 2015-04-03 16:25:37 -0700 | [diff] [blame] | 36 | start|stop|restart|status) |
Jonathan Hart | af53b60 | 2015-04-03 16:25:37 -0700 | [diff] [blame] | 37 | # Select the target |
| 38 | if [ "${1}" = "--cell" ]; then |
Claudine Chiu | 45312d0 | 2016-06-15 13:17:12 +0000 | [diff] [blame] | 39 | nodes=$(env | sort | egrep "^OC[0-9]+" | cut -d= -f2) |
Jonathan Hart | af53b60 | 2015-04-03 16:25:37 -0700 | [diff] [blame] | 40 | else |
Jonathan Hart | 1a4d359 | 2015-08-31 10:59:16 +0200 | [diff] [blame] | 41 | nodes=$(find_node ${1:-$OCI}) |
Jonathan Hart | af53b60 | 2015-04-03 16:25:37 -0700 | [diff] [blame] | 42 | fi |
| 43 | |
| 44 | # Execute the remote commands |
| 45 | for node in $nodes; do |
Bob Lantz | 7c751b5 | 2016-04-15 15:42:28 -0700 | [diff] [blame] | 46 | ssh -tt $ONOS_USER@${node} "sudo service onos ${2:-status}" |
Jonathan Hart | af53b60 | 2015-04-03 16:25:37 -0700 | [diff] [blame] | 47 | done |
| 48 | ;; |
| 49 | *) |
| 50 | echo "error: $2 is not a valid command" |
| 51 | echo "" |
| 52 | print_usage |
| 53 | ;; |
| 54 | esac |