You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by mm...@apache.org on 2019/04/08 20:12:31 UTC

[accumulo] branch master updated: Speed up some long running ITs (#1078)

This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/master by this push:
     new 2f12d2c  Speed up some long running ITs (#1078)
2f12d2c is described below

commit 2f12d2cbb2203c5311154c1b26a28fe5208e7189
Author: Mike Miller <mm...@apache.org>
AuthorDate: Mon Apr 8 16:12:26 2019 -0400

    Speed up some long running ITs (#1078)
    
    * Changed the base type to SharedMiniClusterBase for
    * NamespacesIT, ConditionalWriterIT and BulkLoadIT
---
 .../accumulo/harness/SharedMiniClusterBase.java    | 13 ++++++++
 .../apache/accumulo/test/ConditionalWriterIT.java  | 38 ++++++++++++++--------
 .../org/apache/accumulo/test/NamespacesIT.java     | 22 +++++++++----
 .../accumulo/test/functional/BulkLoadIT.java       | 31 +++++++++++++-----
 4 files changed, 75 insertions(+), 29 deletions(-)

diff --git a/test/src/main/java/org/apache/accumulo/harness/SharedMiniClusterBase.java b/test/src/main/java/org/apache/accumulo/harness/SharedMiniClusterBase.java
index 2d2c72f..74c8cf5 100644
--- a/test/src/main/java/org/apache/accumulo/harness/SharedMiniClusterBase.java
+++ b/test/src/main/java/org/apache/accumulo/harness/SharedMiniClusterBase.java
@@ -28,6 +28,7 @@ import org.apache.accumulo.core.client.AccumuloClient;
 import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
 import org.apache.accumulo.core.client.security.tokens.KerberosToken;
 import org.apache.accumulo.core.client.security.tokens.PasswordToken;
+import org.apache.accumulo.core.clientImpl.ClientInfo;
 import org.apache.accumulo.core.conf.ClientProperty;
 import org.apache.accumulo.core.conf.Property;
 import org.apache.accumulo.core.security.TablePermission;
@@ -214,4 +215,16 @@ public abstract class SharedMiniClusterBase extends AccumuloITBase implements Cl
       return krb.getClientPrincipal(offset);
     }
   }
+
+  public static ClientInfo getClientInfo() {
+    return ClientInfo.from(cluster.getClientProperties());
+  }
+
+  public static boolean saslEnabled() {
+    return getClientInfo().saslEnabled();
+  }
+
+  public static String getAdminPrincipal() {
+    return cluster.getConfig().getRootUserName();
+  }
 }
diff --git a/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java b/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java
index 3508542..1f7a3e4 100644
--- a/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java
@@ -44,7 +44,6 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.apache.accumulo.cluster.AccumuloCluster;
 import org.apache.accumulo.cluster.ClusterUser;
 import org.apache.accumulo.core.client.Accumulo;
 import org.apache.accumulo.core.client.AccumuloClient;
@@ -87,7 +86,8 @@ import org.apache.accumulo.core.security.SystemPermission;
 import org.apache.accumulo.core.security.TablePermission;
 import org.apache.accumulo.core.trace.TraceUtil;
 import org.apache.accumulo.core.util.FastFormat;
-import org.apache.accumulo.harness.AccumuloClusterHarness;
+import org.apache.accumulo.harness.MiniClusterConfigurationCallback;
+import org.apache.accumulo.harness.SharedMiniClusterBase;
 import org.apache.accumulo.miniclusterImpl.MiniAccumuloClusterImpl;
 import org.apache.accumulo.miniclusterImpl.MiniAccumuloConfigImpl;
 import org.apache.accumulo.test.constraints.AlphaNumKeyConstraint;
@@ -100,15 +100,16 @@ import org.apache.hadoop.io.Text;
 import org.apache.htrace.Sampler;
 import org.apache.htrace.Trace;
 import org.apache.htrace.TraceScope;
-import org.junit.Assume;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Iterables;
 
-public class ConditionalWriterIT extends AccumuloClusterHarness {
+public class ConditionalWriterIT extends SharedMiniClusterBase {
   private static final Logger log = LoggerFactory.getLogger(ConditionalWriterIT.class);
 
   @Override
@@ -116,13 +117,24 @@ public class ConditionalWriterIT extends AccumuloClusterHarness {
     return 60;
   }
 
-  @Override
-  public void configureMiniCluster(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
-    super.configureMiniCluster(cfg, hadoopCoreSite);
-    // Set the min span to 0 so we will definitely get all the traces back. See ACCUMULO-4365
-    Map<String,String> siteConf = cfg.getSiteConfig();
-    siteConf.put(Property.TRACE_SPAN_RECEIVER_PREFIX.getKey() + "tracer.span.min.ms", "0");
-    cfg.setSiteConfig(siteConf);
+  @BeforeClass
+  public static void setup() throws Exception {
+    SharedMiniClusterBase.startMiniClusterWithConfig(new Callback());
+  }
+
+  @AfterClass
+  public static void teardown() {
+    SharedMiniClusterBase.stopMiniCluster();
+  }
+
+  private static class Callback implements MiniClusterConfigurationCallback {
+    @Override
+    public void configureMiniCluster(MiniAccumuloConfigImpl cfg, Configuration coreSite) {
+      // Set the min span to 0 so we will definitely get all the traces back. See ACCUMULO-4365
+      Map<String,String> siteConf = cfg.getSiteConfig();
+      siteConf.put(Property.TRACE_SPAN_RECEIVER_PREFIX.getKey() + "tracer.span.min.ms", "0");
+      cfg.setSiteConfig(siteConf);
+    }
   }
 
   public static long abs(long l) {
@@ -1527,11 +1539,9 @@ public class ConditionalWriterIT extends AccumuloClusterHarness {
   @Test
   public void testTrace() throws Exception {
     // Need to add a getClientConfig() to AccumuloCluster
-    Assume.assumeTrue(getClusterType() == ClusterType.MINI);
     Process tracer = null;
     try (AccumuloClient client = Accumulo.newClient().from(getClientProps()).build()) {
-      AccumuloCluster cluster = getCluster();
-      MiniAccumuloClusterImpl mac = (MiniAccumuloClusterImpl) cluster;
+      MiniAccumuloClusterImpl mac = getCluster();
       if (!client.tableOperations().exists("trace")) {
         tracer = mac.exec(TraceServer.class).getProcess();
         while (!client.tableOperations().exists("trace")) {
diff --git a/test/src/main/java/org/apache/accumulo/test/NamespacesIT.java b/test/src/main/java/org/apache/accumulo/test/NamespacesIT.java
index 2aa4a76..fe7da74 100644
--- a/test/src/main/java/org/apache/accumulo/test/NamespacesIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/NamespacesIT.java
@@ -75,26 +75,36 @@ import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.core.security.NamespacePermission;
 import org.apache.accumulo.core.security.SystemPermission;
 import org.apache.accumulo.core.security.TablePermission;
-import org.apache.accumulo.harness.AccumuloClusterHarness;
+import org.apache.accumulo.harness.SharedMiniClusterBase;
 import org.apache.accumulo.test.categories.MiniClusterOnlyTests;
 import org.apache.accumulo.test.constraints.NumericValueConstraint;
 import org.apache.hadoop.io.Text;
 import org.junit.After;
-import org.junit.Assume;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 /**
- * Testing default namespace configuration with inheritance requires altering the system state and
- * restoring it back to normal. Punt on this for now and just let it use a minicluster.
+ * Test different namespace permissions
  */
 @Category(MiniClusterOnlyTests.class)
-public class NamespacesIT extends AccumuloClusterHarness {
+public class NamespacesIT extends SharedMiniClusterBase {
 
   private AccumuloClient c;
   private String namespace;
 
+  @BeforeClass
+  public static void setup() throws Exception {
+    SharedMiniClusterBase.startMiniCluster();
+  }
+
+  @AfterClass
+  public static void teardown() {
+    SharedMiniClusterBase.stopMiniCluster();
+  }
+
   @Override
   public int defaultTimeoutSeconds() {
     return 60;
@@ -102,8 +112,6 @@ public class NamespacesIT extends AccumuloClusterHarness {
 
   @Before
   public void setupConnectorAndNamespace() {
-    Assume.assumeTrue(getClusterType() == ClusterType.MINI);
-
     // prepare a unique namespace and get a new root client for each test
     c = Accumulo.newClient().from(getClientProps()).build();
     namespace = "ns_" + getUniqueNames(1)[0];
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/BulkLoadIT.java b/test/src/main/java/org/apache/accumulo/test/functional/BulkLoadIT.java
index 2c4bfd4..7911e09 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/BulkLoadIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/BulkLoadIT.java
@@ -58,7 +58,8 @@ import org.apache.accumulo.core.file.rfile.RFile;
 import org.apache.accumulo.core.metadata.schema.TabletMetadata;
 import org.apache.accumulo.core.metadata.schema.TabletsMetadata;
 import org.apache.accumulo.core.security.Authorizations;
-import org.apache.accumulo.harness.AccumuloClusterHarness;
+import org.apache.accumulo.harness.MiniClusterConfigurationCallback;
+import org.apache.accumulo.harness.SharedMiniClusterBase;
 import org.apache.accumulo.minicluster.MemoryUnit;
 import org.apache.accumulo.minicluster.ServerType;
 import org.apache.accumulo.miniclusterImpl.MiniAccumuloConfigImpl;
@@ -69,7 +70,9 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.RawLocalFileSystem;
 import org.apache.hadoop.fs.permission.FsPermission;
 import org.apache.hadoop.io.Text;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableMap;
@@ -83,14 +86,26 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
  *
  * @since 2.0
  */
-public class BulkLoadIT extends AccumuloClusterHarness {
+public class BulkLoadIT extends SharedMiniClusterBase {
 
-  @Override
-  public void configureMiniCluster(MiniAccumuloConfigImpl cfg, Configuration conf) {
-    cfg.setMemory(ServerType.TABLET_SERVER, 128 * 4, MemoryUnit.MEGABYTE);
+  @BeforeClass
+  public static void setup() throws Exception {
+    SharedMiniClusterBase.startMiniClusterWithConfig(new Callback());
+  }
+
+  @AfterClass
+  public static void teardown() {
+    SharedMiniClusterBase.stopMiniCluster();
+  }
+
+  private static class Callback implements MiniClusterConfigurationCallback {
+    @Override
+    public void configureMiniCluster(MiniAccumuloConfigImpl cfg, Configuration conf) {
+      cfg.setMemory(ServerType.TABLET_SERVER, 128 * 4, MemoryUnit.MEGABYTE);
 
-    // use raw local file system
-    conf.set("fs.file.impl", RawLocalFileSystem.class.getName());
+      // use raw local file system
+      conf.set("fs.file.impl", RawLocalFileSystem.class.getName());
+    }
   }
 
   @Override
@@ -110,7 +125,7 @@ public class BulkLoadIT extends AccumuloClusterHarness {
       c.tableOperations().create(tableName);
       aconf = getCluster().getServerContext().getConfiguration();
       fs = getCluster().getFileSystem();
-      rootPath = cluster.getTemporaryPath().toString();
+      rootPath = getCluster().getTemporaryPath().toString();
     }
   }