Author: jbellis
Date: Fri Dec  2 17:59:06 2011
New Revision: 1209608

URL: http://svn.apache.org/viewvc?rev=1209608&view=rev
Log:
use cannonical host for local node in nodetool info
patch by Rick Branson; reviewed by jbellis for CASSANDRA-3556

Modified:
    cassandra/branches/cassandra-0.8/CHANGES.txt
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1209608&r1=1209607&r2=1209608&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Dec  2 17:59:06 2011
@@ -1,3 +1,7 @@
+0.8.9
+ * use cannonical host for local node in nodetool info (CASSANDRA-3556)
+
+
 0.8.8
  * avoid dropping tombstones when they might still be needed to shadow
    data in a different sstable (CASSANDRA-2786)

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java?rev=1209608&r1=1209607&r2=1209608&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeProbe.java
 Fri Dec  2 17:59:06 2011
@@ -54,6 +54,7 @@ import org.apache.cassandra.service.Stor
 import org.apache.cassandra.streaming.StreamingService;
 import org.apache.cassandra.streaming.StreamingServiceMBean;
 import org.apache.cassandra.thrift.UnavailableException;
+import org.apache.cassandra.utils.Pair;
 
 /**
  * JMX client operations for Cassandra.
@@ -518,11 +519,29 @@ public class NodeProbe
         return cfsProxy;
     }
 
+    public String getEndpoint()
+    {
+        // Try to find the endpoint using the local token, doing so in a crazy 
manner
+        // to maintain backwards compatibility with the MBean interface
+        String stringToken = ssProxy.getToken();
+        Map<Token, String> tokenToEndpoint = ssProxy.getTokenToEndpointMap();
+
+        for (Map.Entry<Token, String> pair : tokenToEndpoint.entrySet())
+        {
+            if (pair.getKey().toString().equals(stringToken))
+            {
+                return pair.getValue();
+            }
+        }
+
+        throw new AssertionError("Could not find myself in the endpoint list, 
something is very wrong!");
+    }
+
     public String getDataCenter()
     {
         try
         {
-            return getEndpointSnitchInfoProxy().getDatacenter(host);
+            return getEndpointSnitchInfoProxy().getDatacenter(getEndpoint());
         }
         catch (UnknownHostException e)
         {
@@ -534,7 +553,7 @@ public class NodeProbe
     {
         try
         {
-            return getEndpointSnitchInfoProxy().getRack(host);
+            return getEndpointSnitchInfoProxy().getRack(getEndpoint());
         }
         catch (UnknownHostException e)
         {


Reply via email to