From b461c3bfad66eb4f491803bc26bc6023d043e906 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Wed, 30 Oct 2013 15:05:02 -0500 Subject: [PATCH] Nodetool gets default JMX port from cassandra-env.sh Patch by Sam Tunnicliffe, reviewed by brandonwilliams for CASSANDRA-6273 --- CHANGES.txt | 1 + bin/nodetool | 32 +++++++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 6d95cefb85..e2fcbb8801 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -7,6 +7,7 @@ * (Hadoop) Make LOCAL_ONE the default consistency level (CASSANDRA-6214) * Require logging in for Thrift CQL2/3 statement preparation (CASSANDRA-6254) * restrict max_num_tokens to 1536 (CASSANDRA-6267) + * Nodetool gets default JMX port from cassandra-env.sh (CASSANDRA-6273) 1.2.11 diff --git a/bin/nodetool b/bin/nodetool index ef79f66b24..d4c04396e2 100755 --- a/bin/nodetool +++ b/bin/nodetool @@ -47,6 +47,36 @@ if [ -z "$CASSANDRA_CONF" -o -z "$CLASSPATH" ]; then exit 1 fi +# Run cassandra-env.sh to pick up JMX_PORT +if [ -f "$CASSANDRA_CONF/cassandra-env.sh" ]; then + . "$CASSANDRA_CONF/cassandra-env.sh" +fi + +# JMX Port passed via cmd line args (-p 9999 / --port 9999 / --port=9999) +# should override the value from cassandra-env.sh +ARGS="" +while true +do + if [ ! $1 ]; then break; fi + case $1 in + -p) + JMX_PORT=$2 + shift + ;; + --port=*) + JMX_PORT=$(echo $1 | cut -d '=' -f 2) + ;; + --port) + JMX_PORT=$2 + shift + ;; + *) + ARGS="$ARGS $1" + ;; + esac + shift +done + # Special-case path variables. case "`uname`" in CYGWIN*) @@ -59,6 +89,6 @@ esac -Xmx32m \ -Dlog4j.configuration=log4j-tools.properties \ -Dstorage-config="$CASSANDRA_CONF" \ - org.apache.cassandra.tools.NodeCmd ${1+"$@"} + org.apache.cassandra.tools.NodeCmd -p $JMX_PORT $ARGS # vi:ai sw=4 ts=4 tw=0 et