The branch, master has been updated via 82fad66123c1b8c5d4ed3b19c39acf6f367b3f37 (commit) via e62928f56ce8927b1d8686db2c31538c86462d1a (commit) via 46474e5f21fd97dd765c616647ff46055a9970e7 (commit) from 536229fd120bc3fdc2419e22d3bd6ab243dd6667 (commit)
http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 82fad66123c1b8c5d4ed3b19c39acf6f367b3f37 Merge: 536229fd120bc3fdc2419e22d3bd6ab243dd6667 e62928f56ce8927b1d8686db2c31538c86462d1a Author: Ronnie Sahlberg <ronniesahlb...@gmail.com> Date: Wed Oct 14 15:51:57 2009 +1100 Merge commit 'martins/onnode_options' commit e62928f56ce8927b1d8686db2c31538c86462d1a Merge: 46474e5f21fd97dd765c616647ff46055a9970e7 343c005367789e108c0320e95d7a264535d68dd8 Author: Martin Schwenke <mar...@meltin.net> Date: Wed Oct 14 13:49:30 2009 +1100 Merge commit 'origin/master' into onnode_options commit 46474e5f21fd97dd765c616647ff46055a9970e7 Author: Martin Schwenke <mar...@meltin.net> Date: Wed Oct 14 13:44:57 2009 +1100 New onnode options: -f to specify nodes file, -n to allow use of hostnames. The -f option allows an alternate nodes file to be specified, overriding the CTDB_NODES_FILE environment variable. The -n option allows hostnames to be used instead of node numbers. Using a range of hostnames is invalid, so hostnames can't contain hyphens ('-') - sorry! You can use this option without a nodes file by specifying "-f /dev/null". Signed-off-by: Martin Schwenke <mar...@meltin.net> ----------------------------------------------------------------------- Summary of changes: tools/onnode | 23 ++++++++++++++++------- 1 files changed, 16 insertions(+), 7 deletions(-) Changeset truncated at 500 lines: diff --git a/tools/onnode b/tools/onnode index 79623a4..7c0a86e 100755 --- a/tools/onnode +++ b/tools/onnode @@ -34,11 +34,14 @@ Usage: onnode [OPTION] ... <NODES> <COMMAND> ... -o <prefix> Save standard output from each node to file <prefix>.<ip> -p Run command in parallel on specified nodes. -q Do not print node addresses (overrides -v). + -n Allow nodes to be specified by name. + -f Specify nodes file, overrides CTDB_NODES_FILE. -v Print node address even for a single node. <NODES> "all", "any", "ok" (or "healthy"), "con" (or "connected"), "rm" (or "recmaster"), "lvs" (or "lvsmaster"), - "natgw" (or "natgwlist"); - or a node number (0 base); or + "natgw" (or "natgwlist"); or + a node number (0 base); or + a hostname (if -n is specified); or list (comma separated) of <NODES>; or range (hyphen separated) of node numbers. EOF @@ -58,13 +61,14 @@ parallel=false verbose=false quiet=false prefix="" +names_ok=false parse_options () { # $POSIXLY_CORRECT means that the command passed to onnode can # take options and getopt won't reorder things to make them # options ot onnode. - local temp=$(POSIXLY_CORRECT=1 getopt -n "$prog" -o "cho:pqv" -l help -- "$@") + local temp=$(POSIXLY_CORRECT=1 getopt -n "$prog" -o "cf:hno:pqv" -l help -- "$@") [ $? != 0 ] && usage @@ -73,6 +77,8 @@ parse_options () while true ; do case "$1" in -c) current=true ; shift ;; + -f) CTDB_NODES_FILE="$2" ; shift 2 ;; + -n) names_ok=true ; shift ;; -o) prefix="$2" ; shift 2 ;; -p) parallel=true ; shift ;; -q) quiet=true ; shift ;; @@ -115,7 +121,7 @@ parse_nodespec () all|any|ok|healthy|con|connected) echo "$i" ;; rm|recmaster|lvs|lvsmaster|natgw|natgwlist) echo "$i" ;; *) - [ $i -gt -1 ] 2>/dev/null || invalid_nodespec + [ $i -gt -1 ] 2>/dev/null || $names_ok || invalid_nodespec echo $i esac done @@ -223,7 +229,7 @@ get_nodes () if [ -n "$CTDB_NODES_SOCKETS" ] ; then all_nodes="$CTDB_NODES_SOCKETS" else - [ -f "$CTDB_NODES_FILE" ] || CTDB_NODES_FILE=/etc/ctdb/nodes + [ -e "$CTDB_NODES_FILE" ] || CTDB_NODES_FILE=/etc/ctdb/nodes all_nodes=$(sed -e 's...@#.*@@g' -e 's@ *@@g' -e 's...@^$@#DEAD@' $CTDB_NODES_FILE) fi @@ -253,10 +259,13 @@ get_nodes () natgw|natgwlist) get_node_with_property "$all_nodes" "natgwlist" || exit 1 ;; - *) + [0-9]|[0-9][0-9]|[0-9][0-9][0-9]) echo_nth $n $all_nodes + ;; + *) + $names_ok || invalid_nodespec + echo $n esac - done } -- CTDB repository