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())) {

Reply via email to