mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-17 18:32:28 +02:00
55 lines
1.7 KiB
Bash
Executable File
55 lines
1.7 KiB
Bash
Executable File
#!/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
|