[ https://issues.apache.org/jira/browse/CASSANDRA-3220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jackson Chung updated CASSANDRA-3220: ------------------------------------- Attachment: patch3220.v5.diff ok, converting the methods on the jmx to return a list of String instead then. PS: i've tried to use guava Lists.transform, but that fails with the following {noformat} $ nodetool -h faranth describering Keyspace1 TokenRange: Exception in thread "main" java.lang.reflect.UndeclaredThrowableException at $Proxy0.describeRing(Unknown Source) at org.apache.cassandra.tools.NodeProbe.describeRing(NodeProbe.java:624) at org.apache.cassandra.tools.NodeCmd.printDescribeRing(NodeCmd.java:766) at org.apache.cassandra.tools.NodeCmd.main(NodeCmd.java:737) Caused by: java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.cassandra.service.StorageService$3 at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:173) at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source) at javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown Source) at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:995) at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:288) ... 4 more Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.cassandra.service.StorageService$3 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:306) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:155) ... 8 more Caused by: java.io.NotSerializableException: org.apache.cassandra.service.StorageService$3 at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:274) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:315) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) {noformat} so sticking with just simply manually convert. result from jmx: {noformat} $>run describeRing Keyspace1 #calling operation describeRing of mbean org.apache.cassandra.db:type=StorageService #operation returns: ( TokenRange(start_token:0, end_token:0, endpoints:[192.168.11.6], rpc_endpoints:[192.168.11.6], endpoint_details:[EndpointDetails(host:192.168.11.6, datacenter:168, rack:11)]) ) {noformat} the code using guava's Lists.transfrom is still there, please feel free to take a look to see if i did some stupid mistake > add describe_ring to cli > ------------------------ > > Key: CASSANDRA-3220 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3220 > Project: Cassandra > Issue Type: Improvement > Components: Tools > Reporter: Jackson Chung > Assignee: Jackson Chung > Priority: Minor > Fix For: 1.0.4 > > Attachments: patch3220.diff, patch3220.v2.diff, patch3220.v3.diff, > patch3220.v4.diff, patch3220.v5.diff > > > Lately I have found the describe_ring feature was needed to debug/analyze > issue, but the cli does not have this available. > So just in case it is useful, please see the attached patch. > here is the sample output: > {noformat} > [default@unknown] help; > ... > ... > decr Decrements a counter column. > describe ring Describe the token range information. > describe cluster Describe the cluster configuration. > ... > ... > [default@unknown] help describe ring; > describe ring <keyspace>; > Describes the token range settings for the named keyspace. > Required Parameters: > - keyspace: Name of the keyspace to describe the token range. > Examples: > describe ring <keyspace>; - Describes the token range settings for the named > keyspace. > [default@unknown] describe ring Keyspace3; > TokenRange: > TokenRange(start_token:9739248273232290250409572410247679660, > end_token:9739248273232290250409572410247679660, endpoints:[192.168.0.125], > rpc_endpoints:[192.168.0.125], > endpoint_details:[EndpointDetails(host:192.168.0.125, port:9160, > datacenter:168)]) > [default@unknown] describe ring fooks; > Keyspace with name 'fooks' wasn't found, , please, authorize to one of the > keyspaces first. > [default@unknown] describe ring; > Syntax error at position 13: mismatched input ';' expecting set null > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira