Author: ecn
Date: Thu Jan 24 20:51:07 2013
New Revision: 1438182

URL: http://svn.apache.org/viewvc?rev=1438182&view=rev
Log:
ACCUMULO-969 missed getMaxRow api

Modified:
    
accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java
    
accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java
    accumulo/trunk/proxy/src/main/thrift/proxy.thrift
    accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/SimpleTest.java
    
accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyTableOperations.java

Modified: 
accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java?rev=1438182&r1=1438181&r2=1438182&view=diff
==============================================================================
--- 
accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java 
(original)
+++ 
accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java 
Thu Jan 24 20:51:07 2013
@@ -263,13 +263,19 @@ public class ProxyServer implements Accu
   }
   
   @Override
-  public ByteBuffer getMaxRow(UserPass userpass, String tableName, 
List<ByteBuffer> auths, ByteBuffer startRow, boolean startinclusive,
+  public ByteBuffer getMaxRow(UserPass userpass, String tableName, 
Set<ByteBuffer> auths, ByteBuffer startRow, boolean startinclusive,
       ByteBuffer endRow, boolean endinclusive) throws TException {
     try {
-      
+      Connector connector = getConnector(userpass);
       Text startText = ByteBufferUtil.toText(startRow);
       Text endText = ByteBufferUtil.toText(endRow);
-      Text max = getConnector(userpass).tableOperations().getMaxRow(tableName, 
new Authorizations(auths), startText, startinclusive, endText, endinclusive);
+      Authorizations auth;
+      if (auths != null) {
+        auth = getAuthorizations(auths);
+      } else {
+        auth = 
connector.securityOperations().getUserAuthorizations(userpass.getUsername());
+      }
+      Text max = connector.tableOperations().getMaxRow(tableName, auth, 
startText, startinclusive, endText, endinclusive);
       return TextUtil.getByteBuffer(max);
     } catch (Exception e) {
       throw translateException(e);

Modified: 
accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java?rev=1438182&r1=1438181&r2=1438182&view=diff
==============================================================================
--- 
accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java
 (original)
+++ 
accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java
 Thu Jan 24 20:51:07 2013
@@ -80,7 +80,7 @@ import org.slf4j.LoggerFactory;
 
     public IteratorSetting getIteratorSetting(UserPass userpass, String 
tableName, String iteratorName, IteratorScope scope) throws 
AccumuloSecurityException, AccumuloException, TableNotFoundException, 
org.apache.thrift.TException;
 
-    public ByteBuffer getMaxRow(UserPass userpass, String tableName, 
List<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive) throws TableNotFoundException, AccumuloException, 
AccumuloSecurityException, org.apache.thrift.TException;
+    public ByteBuffer getMaxRow(UserPass userpass, String tableName, 
Set<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive) throws TableNotFoundException, AccumuloException, 
AccumuloSecurityException, org.apache.thrift.TException;
 
     public Map<String,String> getTableProperties(UserPass userpass, String 
tableName) throws AccumuloException, TableNotFoundException, 
org.apache.thrift.TException;
 
@@ -224,7 +224,7 @@ import org.slf4j.LoggerFactory;
 
     public void getIteratorSetting(UserPass userpass, String tableName, String 
iteratorName, IteratorScope scope, 
org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getIteratorSetting_call>
 resultHandler) throws org.apache.thrift.TException;
 
-    public void getMaxRow(UserPass userpass, String tableName, 
List<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive, 
org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getMaxRow_call> 
resultHandler) throws org.apache.thrift.TException;
+    public void getMaxRow(UserPass userpass, String tableName, Set<ByteBuffer> 
auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer endRow, boolean 
endInclusive, 
org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getMaxRow_call> 
resultHandler) throws org.apache.thrift.TException;
 
     public void getTableProperties(UserPass userpass, String tableName, 
org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getTableProperties_call>
 resultHandler) throws org.apache.thrift.TException;
 
@@ -821,13 +821,13 @@ import org.slf4j.LoggerFactory;
       throw new 
org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT,
 "getIteratorSetting failed: unknown result");
     }
 
-    public ByteBuffer getMaxRow(UserPass userpass, String tableName, 
List<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive) throws TableNotFoundException, AccumuloException, 
AccumuloSecurityException, org.apache.thrift.TException
+    public ByteBuffer getMaxRow(UserPass userpass, String tableName, 
Set<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive) throws TableNotFoundException, AccumuloException, 
AccumuloSecurityException, org.apache.thrift.TException
     {
       send_getMaxRow(userpass, tableName, auths, startRow, startInclusive, 
endRow, endInclusive);
       return recv_getMaxRow();
     }
 
-    public void send_getMaxRow(UserPass userpass, String tableName, 
List<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive) throws org.apache.thrift.TException
+    public void send_getMaxRow(UserPass userpass, String tableName, 
Set<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive) throws org.apache.thrift.TException
     {
       getMaxRow_args args = new getMaxRow_args();
       args.setUserpass(userpass);
@@ -3018,7 +3018,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void getMaxRow(UserPass userpass, String tableName, 
List<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive, 
org.apache.thrift.async.AsyncMethodCallback<getMaxRow_call> resultHandler) 
throws org.apache.thrift.TException {
+    public void getMaxRow(UserPass userpass, String tableName, Set<ByteBuffer> 
auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer endRow, boolean 
endInclusive, org.apache.thrift.async.AsyncMethodCallback<getMaxRow_call> 
resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getMaxRow_call method_call = new getMaxRow_call(userpass, tableName, 
auths, startRow, startInclusive, endRow, endInclusive, resultHandler, this, 
___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -3028,12 +3028,12 @@ import org.slf4j.LoggerFactory;
     public static class getMaxRow_call extends 
org.apache.thrift.async.TAsyncMethodCall {
       private UserPass userpass;
       private String tableName;
-      private List<ByteBuffer> auths;
+      private Set<ByteBuffer> auths;
       private ByteBuffer startRow;
       private boolean startInclusive;
       private ByteBuffer endRow;
       private boolean endInclusive;
-      public getMaxRow_call(UserPass userpass, String tableName, 
List<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive, 
org.apache.thrift.async.AsyncMethodCallback<getMaxRow_call> resultHandler, 
org.apache.thrift.async.TAsyncClient client, 
org.apache.thrift.protocol.TProtocolFactory protocolFactory, 
org.apache.thrift.transport.TNonblockingTransport transport) throws 
org.apache.thrift.TException {
+      public getMaxRow_call(UserPass userpass, String tableName, 
Set<ByteBuffer> auths, ByteBuffer startRow, boolean startInclusive, ByteBuffer 
endRow, boolean endInclusive, 
org.apache.thrift.async.AsyncMethodCallback<getMaxRow_call> resultHandler, 
org.apache.thrift.async.TAsyncClient client, 
org.apache.thrift.protocol.TProtocolFactory protocolFactory, 
org.apache.thrift.transport.TNonblockingTransport transport) throws 
org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.userpass = userpass;
         this.tableName = tableName;
@@ -24842,7 +24842,7 @@ import org.slf4j.LoggerFactory;
 
     private static final org.apache.thrift.protocol.TField USERPASS_FIELD_DESC 
= new org.apache.thrift.protocol.TField("userpass", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField 
TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", 
org.apache.thrift.protocol.TType.STRING, (short)2);
-    private static final org.apache.thrift.protocol.TField AUTHS_FIELD_DESC = 
new org.apache.thrift.protocol.TField("auths", 
org.apache.thrift.protocol.TType.LIST, (short)3);
+    private static final org.apache.thrift.protocol.TField AUTHS_FIELD_DESC = 
new org.apache.thrift.protocol.TField("auths", 
org.apache.thrift.protocol.TType.SET, (short)3);
     private static final org.apache.thrift.protocol.TField 
START_ROW_FIELD_DESC = new org.apache.thrift.protocol.TField("startRow", 
org.apache.thrift.protocol.TType.STRING, (short)4);
     private static final org.apache.thrift.protocol.TField 
START_INCLUSIVE_FIELD_DESC = new 
org.apache.thrift.protocol.TField("startInclusive", 
org.apache.thrift.protocol.TType.BOOL, (short)5);
     private static final org.apache.thrift.protocol.TField END_ROW_FIELD_DESC 
= new org.apache.thrift.protocol.TField("endRow", 
org.apache.thrift.protocol.TType.STRING, (short)6);
@@ -24856,7 +24856,7 @@ import org.slf4j.LoggerFactory;
 
     public UserPass userpass; // required
     public String tableName; // required
-    public List<ByteBuffer> auths; // required
+    public Set<ByteBuffer> auths; // required
     public ByteBuffer startRow; // required
     public boolean startInclusive; // required
     public ByteBuffer endRow; // required
@@ -24950,7 +24950,7 @@ import org.slf4j.LoggerFactory;
       tmpMap.put(_Fields.TABLE_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("tableName", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.AUTHS, new 
org.apache.thrift.meta_data.FieldMetaData("auths", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new 
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+          new 
org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
               new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING
              , true))));
       tmpMap.put(_Fields.START_ROW, new 
org.apache.thrift.meta_data.FieldMetaData("startRow", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING
          , true)));
@@ -24970,7 +24970,7 @@ import org.slf4j.LoggerFactory;
     public getMaxRow_args(
       UserPass userpass,
       String tableName,
-      List<ByteBuffer> auths,
+      Set<ByteBuffer> auths,
       ByteBuffer startRow,
       boolean startInclusive,
       ByteBuffer endRow,
@@ -25000,7 +25000,7 @@ import org.slf4j.LoggerFactory;
         this.tableName = other.tableName;
       }
       if (other.isSetAuths()) {
-        List<ByteBuffer> __this__auths = new ArrayList<ByteBuffer>();
+        Set<ByteBuffer> __this__auths = new HashSet<ByteBuffer>();
         for (ByteBuffer other_element : other.auths) {
           ByteBuffer temp_binary_element = 
org.apache.thrift.TBaseHelper.copyBinary(other_element);
 ;
@@ -25095,16 +25095,16 @@ import org.slf4j.LoggerFactory;
 
     public void addToAuths(ByteBuffer elem) {
       if (this.auths == null) {
-        this.auths = new ArrayList<ByteBuffer>();
+        this.auths = new HashSet<ByteBuffer>();
       }
       this.auths.add(elem);
     }
 
-    public List<ByteBuffer> getAuths() {
+    public Set<ByteBuffer> getAuths() {
       return this.auths;
     }
 
-    public getMaxRow_args setAuths(List<ByteBuffer> auths) {
+    public getMaxRow_args setAuths(Set<ByteBuffer> auths) {
       this.auths = auths;
       return this;
     }
@@ -25260,7 +25260,7 @@ import org.slf4j.LoggerFactory;
         if (value == null) {
           unsetAuths();
         } else {
-          setAuths((List<ByteBuffer>)value);
+          setAuths((Set<ByteBuffer>)value);
         }
         break;
 
@@ -25646,17 +25646,17 @@ import org.slf4j.LoggerFactory;
               }
               break;
             case 3: // AUTHS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                 {
-                  org.apache.thrift.protocol.TList _list174 = 
iprot.readListBegin();
-                  struct.auths = new ArrayList<ByteBuffer>(_list174.size);
-                  for (int _i175 = 0; _i175 < _list174.size; ++_i175)
+                  org.apache.thrift.protocol.TSet _set174 = 
iprot.readSetBegin();
+                  struct.auths = new HashSet<ByteBuffer>(2*_set174.size);
+                  for (int _i175 = 0; _i175 < _set174.size; ++_i175)
                   {
                     ByteBuffer _elem176; // required
                     _elem176 = iprot.readBinary();
                     struct.auths.add(_elem176);
                   }
-                  iprot.readListEnd();
+                  iprot.readSetEnd();
                 }
                 struct.setAuthsIsSet(true);
               } else { 
@@ -25723,12 +25723,12 @@ import org.slf4j.LoggerFactory;
         if (struct.auths != null) {
           oprot.writeFieldBegin(AUTHS_FIELD_DESC);
           {
-            oprot.writeListBegin(new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, 
struct.auths.size()));
+            oprot.writeSetBegin(new 
org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, 
struct.auths.size()));
             for (ByteBuffer _iter177 : struct.auths)
             {
               oprot.writeBinary(_iter177);
             }
-            oprot.writeListEnd();
+            oprot.writeSetEnd();
           }
           oprot.writeFieldEnd();
         }
@@ -25832,9 +25832,9 @@ import org.slf4j.LoggerFactory;
         }
         if (incoming.get(2)) {
           {
-            org.apache.thrift.protocol.TList _list179 = new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, 
iprot.readI32());
-            struct.auths = new ArrayList<ByteBuffer>(_list179.size);
-            for (int _i180 = 0; _i180 < _list179.size; ++_i180)
+            org.apache.thrift.protocol.TSet _set179 = new 
org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, 
iprot.readI32());
+            struct.auths = new HashSet<ByteBuffer>(2*_set179.size);
+            for (int _i180 = 0; _i180 < _set179.size; ++_i180)
             {
               ByteBuffer _elem181; // required
               _elem181 = iprot.readBinary();

Modified: accumulo/trunk/proxy/src/main/thrift/proxy.thrift
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/main/thrift/proxy.thrift?rev=1438182&r1=1438181&r2=1438182&view=diff
==============================================================================
--- accumulo/trunk/proxy/src/main/thrift/proxy.thrift (original)
+++ accumulo/trunk/proxy/src/main/thrift/proxy.thrift Thu Jan 24 20:51:07 2013
@@ -258,7 +258,7 @@ service AccumuloProxy
   IteratorSetting getIteratorSetting (1:UserPass userpass, 2:string tableName, 
                                       3:string iteratorName, 4:IteratorScope 
scope) 
                                                                                
                             throws (1:AccumuloSecurityException ouch1, 
2:AccumuloException ouch2, 3:TableNotFoundException ouch3);
-  binary getMaxRow (1:UserPass userpass, 2:string tableName, 3:list<binary> 
auths, 4:binary startRow, 
+  binary getMaxRow (1:UserPass userpass, 2:string tableName, 3:set<binary> 
auths, 4:binary startRow, 
                     5:bool startInclusive, 6:binary endRow, 7:bool 
endInclusive) 
                                                                                
                             throws (1:TableNotFoundException ouch1, 
2:AccumuloException ouch2, 3:AccumuloSecurityException ouch3);
   map<string,string> getTableProperties (1:UserPass userpass, 2:string 
tableName)                           throws (1:AccumuloException ouch1, 
2:TableNotFoundException ouch2);

Modified: 
accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/SimpleTest.java
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/SimpleTest.java?rev=1438182&r1=1438181&r2=1438182&view=diff
==============================================================================
--- 
accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/SimpleTest.java 
(original)
+++ 
accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/SimpleTest.java 
Thu Jan 24 20:51:07 2013
@@ -67,9 +67,8 @@ import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 
 /**
- * An example unit test that shows how to use MiniAccumuloCluster in a unit 
test
+ * Call every method on the proxy and try to verify that it works.
  */
-
 public class SimpleTest {
   
   public static TemporaryFolder folder = new TemporaryFolder();
@@ -443,7 +442,8 @@ public class SimpleTest {
     more = client.nextK(scanner, 100);
     client.closeScanner(scanner);
     assertEquals(1, more.results.size());
-    
+    ByteBuffer maxRow = client.getMaxRow(creds, "bar", null, null, false, 
null, false);
+    assertEquals(s2bb("a"), maxRow);
   }
   
   // scan !METADATA table for file entries for the given table

Modified: 
accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyTableOperations.java
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyTableOperations.java?rev=1438182&r1=1438181&r2=1438182&view=diff
==============================================================================
--- 
accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyTableOperations.java
 (original)
+++ 
accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyTableOperations.java
 Thu Jan 24 20:51:07 2013
@@ -199,18 +199,16 @@ public class TestProxyTableOperations {
   
   @Test
   public void tableOperationsRowMethods() throws TException {
-    List<ByteBuffer> auths = tpc.proxy().getUserAuthorizations(userpass, 
"root");
-    // System.out.println(auths);
     Map<ByteBuffer,List<ColumnUpdate>> mutations = new 
HashMap<ByteBuffer,List<ColumnUpdate>>();
     for (int i = 0; i < 10; i++) {
       addMutation(mutations, "" + i, "cf", "cq", "");
     }
     tpc.proxy().updateAndFlush(userpass, testtable, mutations);
     
-    assertEquals(tpc.proxy().getMaxRow(userpass, testtable, auths, null, true, 
null, true), ByteBuffer.wrap("9".getBytes()));
+    assertEquals(tpc.proxy().getMaxRow(userpass, testtable, null, null, true, 
null, true), ByteBuffer.wrap("9".getBytes()));
     
     
tpc.proxy().deleteRows(userpass,testtable,ByteBuffer.wrap("51".getBytes()), 
ByteBuffer.wrap("99".getBytes()));
-    assertEquals(tpc.proxy().getMaxRow(userpass, testtable, auths, null, true, 
null, true), ByteBuffer.wrap("5".getBytes()));
+    assertEquals(tpc.proxy().getMaxRow(userpass, testtable, null, null, true, 
null, true), ByteBuffer.wrap("5".getBytes()));
   }
   
 }


Reply via email to