You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ec...@apache.org on 2013/04/30 20:33:09 UTC

svn commit: r1477758 [6/6] - in /accumulo/trunk: core/src/main/java/org/apache/accumulo/core/client/admin/ core/src/main/java/org/apache/accumulo/core/client/mock/ core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/ core/src/main/java/org/...

Added: accumulo/trunk/test/src/test/java/org/apache/accumulo/test/TabletServerIT.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/test/java/org/apache/accumulo/test/TabletServerIT.java?rev=1477758&view=auto
==============================================================================
--- accumulo/trunk/test/src/test/java/org/apache/accumulo/test/TabletServerIT.java (added)
+++ accumulo/trunk/test/src/test/java/org/apache/accumulo/test/TabletServerIT.java Tue Apr 30 18:33:06 2013
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.test;
+
+import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.accumulo.core.client.AccumuloException;
+import org.apache.accumulo.core.client.AccumuloSecurityException;
+import org.apache.accumulo.core.client.BatchWriter;
+import org.apache.accumulo.core.client.BatchWriterConfig;
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.TableExistsException;
+import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.client.ZooKeeperInstance;
+import org.apache.accumulo.core.client.security.tokens.PasswordToken;
+import org.apache.accumulo.core.data.Mutation;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.security.CredentialHelper;
+import org.apache.accumulo.core.security.thrift.TCredentials;
+import org.apache.accumulo.core.tabletserver.thrift.DiskUsage;
+import org.apache.accumulo.core.tabletserver.thrift.TabletClientService;
+import org.apache.accumulo.core.util.ThriftUtil;
+import org.apache.hadoop.io.Text;
+import org.apache.thrift.TException;
+import org.apache.thrift.transport.TTransportException;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+public class TabletServerIT {
+  
+  static TemporaryFolder tempFolder = new TemporaryFolder();
+  static final String ROOT_PASS = "password";
+  
+  static MiniAccumuloCluster accumuloCluster;
+  
+  static Connector connector;
+  static TabletClientService.Client client;
+  
+  static TCredentials creds;
+  
+  @BeforeClass
+  public static void startUp() throws IOException, AccumuloException, AccumuloSecurityException, TTransportException, InterruptedException {
+    tempFolder.create();
+    accumuloCluster = new MiniAccumuloCluster(tempFolder.getRoot(), ROOT_PASS);
+    
+    accumuloCluster.start();
+    
+    ZooKeeperInstance instance = new ZooKeeperInstance(accumuloCluster.getInstanceName(), accumuloCluster.getZooKeepers());
+    connector = instance.getConnector("root", ROOT_PASS.getBytes());
+    
+    List<String> tservers = connector.instanceOperations().getTabletServers();
+    client = ThriftUtil.getTServerClient(tservers.get(0), instance.getConfiguration());
+    
+    creds = CredentialHelper.create("root", new PasswordToken("password"), connector.getInstance().getInstanceID());
+  }
+  
+  @Test
+  public void getDiskUsage() throws TableExistsException, AccumuloException, AccumuloSecurityException, TableNotFoundException, TException {
+
+    connector.tableOperations().create("table1");
+    
+    // verify 0 disk usage
+    List<DiskUsage> diskUsages = client.getDiskUsage(Collections.singleton("table1"), creds);
+    assertEquals(1, diskUsages.size());
+    assertEquals(1, diskUsages.get(0).getTables().size());
+    assertEquals(0, diskUsages.get(0).getUsage());
+    assertEquals("table1", diskUsages.get(0).getTables().get(0));
+    
+    // add some data
+    BatchWriter bw = connector.createBatchWriter("table1", new BatchWriterConfig());
+    Mutation m = new Mutation("a");
+    m.put("b", "c", new Value("abcde".getBytes()));
+    bw.addMutation(m);
+    bw.flush();
+    bw.close();
+    
+    connector.tableOperations().compact("table1", new Text("A"), new Text("z"), true, true);
+    
+    // verify we have usage
+    diskUsages = client.getDiskUsage(Collections.singleton("table1"), creds);
+    assertEquals(1, diskUsages.size());
+    assertEquals(1, diskUsages.get(0).getTables().size());
+    assertTrue(diskUsages.get(0).getUsage() > 0);
+    assertEquals("table1", diskUsages.get(0).getTables().get(0));
+    
+    // clone table
+    connector.tableOperations().clone("table1", "table2", false, null, null);
+    
+    // verify tables are exactly the same
+    Set<String> tables = new HashSet<String>();
+    tables.add("table1");
+    tables.add("table2");
+    diskUsages = client.getDiskUsage(tables, creds);
+    assertEquals(1, diskUsages.size());
+    assertEquals(2, diskUsages.get(0).getTables().size());
+    assertTrue(diskUsages.get(0).getUsage() > 0);
+
+    connector.tableOperations().compact("table1", new Text("A"), new Text("z"), true, true);
+    connector.tableOperations().compact("table2", new Text("A"), new Text("z"), true, true);
+    
+    // verify tables have differences
+    diskUsages = client.getDiskUsage(tables, creds);
+    assertEquals(2, diskUsages.size());
+    assertEquals(1, diskUsages.get(0).getTables().size());
+    assertEquals(1, diskUsages.get(1).getTables().size());
+    assertTrue(diskUsages.get(0).getUsage() > 0);
+    assertTrue(diskUsages.get(1).getUsage() > 0);
+  }
+  
+  @AfterClass
+  public static void shutDown() throws IOException, InterruptedException {
+    accumuloCluster.stop();
+    tempFolder.delete();
+  }
+}

Propchange: accumulo/trunk/test/src/test/java/org/apache/accumulo/test/TabletServerIT.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: accumulo/trunk/test/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/accumulo/trunk/test/src/test/resources/log4j.properties?rev=1477758&r1=1477757&r2=1477758&view=diff
==============================================================================
--- accumulo/trunk/test/src/test/resources/log4j.properties (original)
+++ accumulo/trunk/test/src/test/resources/log4j.properties Tue Apr 30 18:33:06 2013
@@ -28,3 +28,4 @@ log4j.logger.org.apache.hadoop.tools.Dis
 log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
 log4j.logger.org.apache.hadoop.util.ProcessTree=WARN
 log4j.logger.org.apache.zookeeper.ClientCnxn=FATAL
+log4j.logger.org.apache.zookeeper.ZooKeeper=WARN