Author: ivol37 at gmail.com
Date: Wed Jan 12 16:39:34 2011
New Revision: 609
Log:
Modified:
sandbox/ivol/cassandra-gadget/src/main/java/org/amdatu/cassandra/gadget/service/CassandraClientGadgetImpl.java
Modified:
sandbox/ivol/cassandra-gadget/src/main/java/org/amdatu/cassandra/gadget/service/CassandraClientGadgetImpl.java
==============================================================================
---
sandbox/ivol/cassandra-gadget/src/main/java/org/amdatu/cassandra/gadget/service/CassandraClientGadgetImpl.java
(original)
+++
sandbox/ivol/cassandra-gadget/src/main/java/org/amdatu/cassandra/gadget/service/CassandraClientGadgetImpl.java
Wed Jan 12 16:39:34 2011
@@ -16,12 +16,14 @@
*/
package org.amdatu.cassandra.gadget.service;
+import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import java.net.URL;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.TimeoutException;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
@@ -39,13 +41,15 @@
import org.amdatu.web.httpcontext.HttpContextServiceFactory;
import org.amdatu.web.httpcontext.ResourceProvider;
import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.db.Row;
+import org.apache.cassandra.service.StorageProxy;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.thrift.ColumnParent;
import org.apache.cassandra.thrift.ConsistencyLevel;
+import org.apache.cassandra.thrift.IndexClause;
import org.apache.cassandra.thrift.InvalidRequestException;
import org.apache.cassandra.thrift.KeyRange;
import org.apache.cassandra.thrift.KeySlice;
-import org.apache.cassandra.thrift.NotFoundException;
import org.apache.cassandra.thrift.SlicePredicate;
import org.apache.cassandra.thrift.SliceRange;
import org.apache.cassandra.thrift.TimedOutException;
@@ -120,7 +124,7 @@
List<String> columnFamilies =
m_daemon.getColumnFamilies(keyspace);
for (String columnFamily : columnFamilies) {
String rowKeyHtml = "";
- List<String> rowKeys = getRowKeys(keyspace, columnFamily);
+ List<String> rowKeys = getRowKeys2(keyspace, columnFamily);
int i=1;
for (String rowKey : rowKeys) {
rowKeyHtml += "("+i+") "+rowKey + "<br/>";
@@ -131,27 +135,7 @@
}
return html;
}
- catch (TException e) {
- m_logService.log(LogService.LOG_ERROR, "Could not retrieve
Cassandra data", e);
- throw new WebApplicationException(e);
- }
- catch (InvalidRequestException e) {
- m_logService.log(LogService.LOG_ERROR, "Could not retrieve
Cassandra data", e);
- throw new WebApplicationException(e);
- }
- catch (NotFoundException e) {
- m_logService.log(LogService.LOG_ERROR, "Could not retrieve
Cassandra data", e);
- throw new WebApplicationException(e);
- }
- catch (UnsupportedEncodingException e) {
- m_logService.log(LogService.LOG_ERROR, "Could not retrieve
Cassandra data", e);
- throw new WebApplicationException(e);
- }
- catch (UnavailableException e) {
- m_logService.log(LogService.LOG_ERROR, "Could not retrieve
Cassandra data", e);
- throw new WebApplicationException(e);
- }
- catch (TimedOutException e) {
+ catch (Exception e) {
m_logService.log(LogService.LOG_ERROR, "Could not retrieve
Cassandra data", e);
throw new WebApplicationException(e);
}
@@ -282,6 +266,17 @@
return keys;
}
+ public List<String> getRowKeys2(String keyspace, String columnFamilyName)
throws IOException, TimeoutException, UnavailableException {
+ SlicePredicate p = new SlicePredicate();
+ IndexClause indexClause = new IndexClause();
+ List<Row> rows = StorageProxy.scan(keyspace, columnFamilyName,
indexClause, p, ConsistencyLevel.ALL);
+ List<String> keys = new ArrayList<String>();
+ for (Row row : rows) {
+ keys.add(row.key.key.toString());
+ }
+ return keys;
+ }
+
private String inetAddressToString(InetAddress address) {
String result = address.getHostAddress();
if (!address.getCanonicalHostName().equals(address.getHostAddress())) {