You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by mw...@apache.org on 2018/12/07 15:07:24 UTC

[accumulo-testing] branch master updated: Reduced use of ClientInfo (#47)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new d52c5bf  Reduced use of ClientInfo (#47)
d52c5bf is described below

commit d52c5bf11ece4a9493d74756156f8d5a42cc75d7
Author: Mike Walch <mw...@apache.org>
AuthorDate: Fri Dec 7 10:07:20 2018 -0500

    Reduced use of ClientInfo (#47)
---
 .../java/org/apache/accumulo/testing/TestEnv.java  | 36 ++++++++++++----------
 .../testing/continuous/ContinuousMoru.java         |  5 +--
 .../testing/continuous/ContinuousVerify.java       |  3 +-
 .../apache/accumulo/testing/ingest/TestIngest.java |  4 ++-
 .../testing/randomwalk/concurrent/Replication.java |  7 +++--
 .../testing/randomwalk/multitable/CopyTool.java    |  4 ++-
 .../testing/randomwalk/security/AlterTable.java    |  3 +-
 .../testing/randomwalk/security/CreateTable.java   |  3 +-
 .../randomwalk/security/SecurityFixture.java       |  2 +-
 .../randomwalk/sequential/MapRedVerifyTool.java    |  7 +++--
 10 files changed, 41 insertions(+), 33 deletions(-)

diff --git a/src/main/java/org/apache/accumulo/testing/TestEnv.java b/src/main/java/org/apache/accumulo/testing/TestEnv.java
index 19e4891..1df78c1 100644
--- a/src/main/java/org/apache/accumulo/testing/TestEnv.java
+++ b/src/main/java/org/apache/accumulo/testing/TestEnv.java
@@ -7,9 +7,6 @@ import java.util.Properties;
 
 import org.apache.accumulo.core.client.Accumulo;
 import org.apache.accumulo.core.client.AccumuloClient;
-import org.apache.accumulo.core.client.AccumuloException;
-import org.apache.accumulo.core.client.AccumuloSecurityException;
-import org.apache.accumulo.core.client.ClientInfo;
 import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
 import org.apache.accumulo.core.conf.ClientProperty;
 import org.apache.hadoop.conf.Configuration;
@@ -18,7 +15,7 @@ public class TestEnv implements AutoCloseable {
 
   protected final Properties testProps;
   private String clientPropsPath;
-  private ClientInfo info;
+  private final Properties clientProps;
   private AccumuloClient client = null;
   private Configuration hadoopConfig = null;
 
@@ -27,14 +24,20 @@ public class TestEnv implements AutoCloseable {
     requireNonNull(clientPropsPath);
     this.testProps = TestProps.loadFromFile(testPropsPath);
     this.clientPropsPath = clientPropsPath;
-    this.info = ClientInfo.from(TestProps.loadFromFile(clientPropsPath));
+    this.clientProps = Accumulo.newClientProperties().from(clientPropsPath).build();
+  }
+
+  private Properties copyProperties(Properties props) {
+    Properties result = new Properties();
+    props.forEach((key, value) -> result.setProperty((String) key, (String) value));
+    return result;
   }
 
   /**
    * @return a copy of the test properties
    */
   public Properties getTestProperties() {
-    return new Properties(testProps);
+    return copyProperties(testProps);
   }
 
   /**
@@ -48,8 +51,8 @@ public class TestEnv implements AutoCloseable {
     return clientPropsPath;
   }
 
-  public ClientInfo getInfo() {
-    return info;
+  public Properties getClientProps() {
+    return copyProperties(clientProps);
   }
 
   /**
@@ -58,7 +61,7 @@ public class TestEnv implements AutoCloseable {
    * @return username
    */
   public String getAccumuloUserName() {
-    return info.getPrincipal();
+    return ClientProperty.AUTH_PRINCIPAL.getValue(clientProps);
   }
 
   /**
@@ -67,9 +70,9 @@ public class TestEnv implements AutoCloseable {
    * @return password
    */
   public String getAccumuloPassword() {
-    String authType = info.getProperties().getProperty(ClientProperty.AUTH_TYPE.getKey());
+    String authType = ClientProperty.AUTH_TYPE.getValue(clientProps);
     if (authType.equals("password")) {
-      return info.getProperties().getProperty(ClientProperty.AUTH_TOKEN.getKey());
+      return ClientProperty.AUTH_TOKEN.getValue(clientProps);
     }
     return null;
   }
@@ -101,7 +104,7 @@ public class TestEnv implements AutoCloseable {
    * Gets an authentication token based on the configured password.
    */
   public AuthenticationToken getToken() {
-    return info.getAuthenticationToken();
+    return ClientProperty.getAuthenticationToken(clientProps);
   }
 
   public String getHdfsRoot() {
@@ -115,16 +118,15 @@ public class TestEnv implements AutoCloseable {
   /**
    * Gets an Accumulo client. The same client is reused after the first call.
    */
-  public synchronized AccumuloClient getAccumuloClient() throws AccumuloException, AccumuloSecurityException {
+  public synchronized AccumuloClient getAccumuloClient() {
     if (client == null) {
-      client = Accumulo.newClient().from(info).build();
+      client = Accumulo.newClient().from(clientProps).build();
     }
     return client;
   }
 
-  public AccumuloClient createClient(String principal, AuthenticationToken token)
-      throws AccumuloSecurityException, AccumuloException {
-    return Accumulo.newClient().from(getInfo()).as(principal, token).build();
+  public AccumuloClient createClient(String principal, AuthenticationToken token) {
+    return Accumulo.newClient().from(clientProps).as(principal, token).build();
   }
 
   @Override
diff --git a/src/main/java/org/apache/accumulo/testing/continuous/ContinuousMoru.java b/src/main/java/org/apache/accumulo/testing/continuous/ContinuousMoru.java
index 6e19ed0..6497067 100644
--- a/src/main/java/org/apache/accumulo/testing/continuous/ContinuousMoru.java
+++ b/src/main/java/org/apache/accumulo/testing/continuous/ContinuousMoru.java
@@ -24,6 +24,7 @@ import java.util.Set;
 import java.util.UUID;
 
 import org.apache.accumulo.core.client.AccumuloSecurityException;
+import org.apache.accumulo.core.client.ClientInfo;
 import org.apache.accumulo.core.client.mapreduce.AccumuloInputFormat;
 import org.apache.accumulo.core.client.mapreduce.AccumuloOutputFormat;
 import org.apache.accumulo.core.data.Key;
@@ -123,7 +124,7 @@ public class ContinuousMoru extends Configured implements Tool {
 
     job.setInputFormatClass(AccumuloInputFormat.class);
 
-    AccumuloInputFormat.setClientInfo(job, env.getInfo());
+    AccumuloInputFormat.setClientInfo(job, ClientInfo.from(env.getClientProps()));
     AccumuloInputFormat.setInputTableName(job, env.getAccumuloTableName());
 
     int maxMaps = Integer.parseInt(env.getTestProperty(TestProps.CI_VERIFY_MAX_MAPS));
@@ -140,7 +141,7 @@ public class ContinuousMoru extends Configured implements Tool {
     job.setMapperClass(CMapper.class);
     job.setNumReduceTasks(0);
     job.setOutputFormatClass(AccumuloOutputFormat.class);
-    AccumuloOutputFormat.setClientInfo(job, env.getInfo());
+    AccumuloOutputFormat.setClientInfo(job, ClientInfo.from(env.getClientProps()));
     AccumuloOutputFormat.setCreateTables(job, true);
     AccumuloOutputFormat.setDefaultTableName(job, env.getAccumuloTableName());
 
diff --git a/src/main/java/org/apache/accumulo/testing/continuous/ContinuousVerify.java b/src/main/java/org/apache/accumulo/testing/continuous/ContinuousVerify.java
index 59beb15..94d0fbd 100644
--- a/src/main/java/org/apache/accumulo/testing/continuous/ContinuousVerify.java
+++ b/src/main/java/org/apache/accumulo/testing/continuous/ContinuousVerify.java
@@ -26,6 +26,7 @@ import java.util.Random;
 import java.util.Set;
 
 import org.apache.accumulo.core.client.AccumuloClient;
+import org.apache.accumulo.core.client.ClientInfo;
 import org.apache.accumulo.core.client.mapreduce.AccumuloInputFormat;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Range;
@@ -174,7 +175,7 @@ public class ContinuousVerify extends Configured implements Tool {
 
     AccumuloInputFormat.setRanges(job, ranges);
     AccumuloInputFormat.setAutoAdjustRanges(job, false);
-    AccumuloInputFormat.setClientInfo(job, env.getInfo());
+    AccumuloInputFormat.setClientInfo(job, ClientInfo.from(env.getClientProps()));
 
     job.setMapperClass(CMapper.class);
     job.setMapOutputKeyClass(LongWritable.class);
diff --git a/src/main/java/org/apache/accumulo/testing/ingest/TestIngest.java b/src/main/java/org/apache/accumulo/testing/ingest/TestIngest.java
index 5702b13..5f058ab 100644
--- a/src/main/java/org/apache/accumulo/testing/ingest/TestIngest.java
+++ b/src/main/java/org/apache/accumulo/testing/ingest/TestIngest.java
@@ -36,6 +36,7 @@ import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.clientImpl.TabletServerBatchWriter;
 import org.apache.accumulo.core.client.security.SecurityErrorCode;
 import org.apache.accumulo.core.conf.DefaultConfiguration;
+import org.apache.accumulo.core.crypto.CryptoServiceFactory;
 import org.apache.accumulo.core.data.ConstraintViolationSummary;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Mutation;
@@ -218,7 +219,8 @@ public class TestIngest {
 
     if (opts.outputFile != null) {
       Configuration conf = CachedConfiguration.getInstance();
-      writer = FileOperations.getInstance().newWriterBuilder().forFile(opts.outputFile + "." + RFile.EXTENSION, fs, conf)
+      writer = FileOperations.getInstance().newWriterBuilder()
+          .forFile(opts.outputFile + "." + RFile.EXTENSION, fs, conf, CryptoServiceFactory.newDefaultInstance())
           .withTableConfiguration(DefaultConfiguration.getInstance()).build();
       writer.startDefaultLocalityGroup();
     } else {
diff --git a/src/main/java/org/apache/accumulo/testing/randomwalk/concurrent/Replication.java b/src/main/java/org/apache/accumulo/testing/randomwalk/concurrent/Replication.java
index 8018df4..85f1fe6 100644
--- a/src/main/java/org/apache/accumulo/testing/randomwalk/concurrent/Replication.java
+++ b/src/main/java/org/apache/accumulo/testing/randomwalk/concurrent/Replication.java
@@ -42,6 +42,7 @@ import org.apache.accumulo.core.client.BatchWriter;
 import org.apache.accumulo.core.client.Scanner;
 import org.apache.accumulo.core.client.admin.InstanceOperations;
 import org.apache.accumulo.core.client.admin.TableOperations;
+import org.apache.accumulo.core.conf.ClientProperty;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Mutation;
 import org.apache.accumulo.core.data.Value;
@@ -60,14 +61,14 @@ public class Replication extends Test {
   @Override
   public void visit(State state, RandWalkEnv env, Properties props) throws Exception {
     final AccumuloClient c = env.getAccumuloClient();
-    final String instName = c.info().getInstanceName();
+    final String instName = ClientProperty.INSTANCE_NAME.getValue(c.properties());
+    final String zookeepers = ClientProperty.INSTANCE_ZOOKEEPERS.getValue(c.properties());
     final InstanceOperations iOps = c.instanceOperations();
     final TableOperations tOps = c.tableOperations();
 
     // Replicate to ourselves
     iOps.setProperty(REPLICATION_NAME.getKey(), instName);
-    iOps.setProperty(REPLICATION_PEERS.getKey() + instName, "org.apache.accumulo.tserver.replication.AccumuloReplicaSystem," + instName + ","
-        + c.info().getZooKeepers());
+    iOps.setProperty(REPLICATION_PEERS.getKey() + instName, "org.apache.accumulo.tserver.replication.AccumuloReplicaSystem," + instName + "," + zookeepers);
     iOps.setProperty(REPLICATION_PEER_USER.getKey() + instName, env.getAccumuloUserName());
     iOps.setProperty(REPLICATION_PEER_PASSWORD.getKey() + instName, env.getAccumuloPassword());
     // Tweak some replication parameters to make the replication go faster
diff --git a/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/CopyTool.java b/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/CopyTool.java
index 7831e60..747ec08 100644
--- a/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/CopyTool.java
+++ b/src/main/java/org/apache/accumulo/testing/randomwalk/multitable/CopyTool.java
@@ -17,6 +17,7 @@
 package org.apache.accumulo.testing.randomwalk.multitable;
 
 import java.io.IOException;
+import java.util.Properties;
 
 import org.apache.accumulo.core.client.Accumulo;
 import org.apache.accumulo.core.client.ClientInfo;
@@ -56,7 +57,8 @@ public class CopyTool extends Configured implements Tool {
       return 1;
     }
 
-    ClientInfo info = Accumulo.newClient().from(args[0]).info();
+    Properties props = Accumulo.newClientProperties().from(args[0]).build();
+    ClientInfo info = ClientInfo.from(props);
     job.setInputFormatClass(AccumuloInputFormat.class);
     AccumuloInputFormat.setClientInfo(job, info);
     AccumuloInputFormat.setInputTableName(job, args[1]);
diff --git a/src/main/java/org/apache/accumulo/testing/randomwalk/security/AlterTable.java b/src/main/java/org/apache/accumulo/testing/randomwalk/security/AlterTable.java
index ea30ee3..72ccbc5 100644
--- a/src/main/java/org/apache/accumulo/testing/randomwalk/security/AlterTable.java
+++ b/src/main/java/org/apache/accumulo/testing/randomwalk/security/AlterTable.java
@@ -36,8 +36,7 @@ public class AlterTable extends Test {
   @Override
   public void visit(State state, RandWalkEnv env, Properties props) throws Exception {
     String systemUser = WalkingSecurity.get(state, env).getSysUserName();
-    try (AccumuloClient client = env.createClient(systemUser,
-        WalkingSecurity.get(state, env).getSysToken())) {
+    try (AccumuloClient client = env.createClient(systemUser, WalkingSecurity.get(state, env).getSysToken())) {
 
       String tableName = WalkingSecurity.get(state, env).getTableName();
 
diff --git a/src/main/java/org/apache/accumulo/testing/randomwalk/security/CreateTable.java b/src/main/java/org/apache/accumulo/testing/randomwalk/security/CreateTable.java
index 51db1eb..e9d53eb 100644
--- a/src/main/java/org/apache/accumulo/testing/randomwalk/security/CreateTable.java
+++ b/src/main/java/org/apache/accumulo/testing/randomwalk/security/CreateTable.java
@@ -33,8 +33,7 @@ public class CreateTable extends Test {
 
   @Override
   public void visit(State state, RandWalkEnv env, Properties props) throws Exception {
-    try (AccumuloClient client = env.createClient(WalkingSecurity.get(state, env).getSysUserName(),
-        WalkingSecurity.get(state, env).getSysToken())) {
+    try (AccumuloClient client = env.createClient(WalkingSecurity.get(state, env).getSysUserName(), WalkingSecurity.get(state, env).getSysToken())) {
 
       String tableName = WalkingSecurity.get(state, env).getTableName();
 
diff --git a/src/main/java/org/apache/accumulo/testing/randomwalk/security/SecurityFixture.java b/src/main/java/org/apache/accumulo/testing/randomwalk/security/SecurityFixture.java
index a61eed9..cbc5464 100644
--- a/src/main/java/org/apache/accumulo/testing/randomwalk/security/SecurityFixture.java
+++ b/src/main/java/org/apache/accumulo/testing/randomwalk/security/SecurityFixture.java
@@ -35,7 +35,7 @@ public class SecurityFixture extends Fixture {
   public void setUp(State state, RandWalkEnv env) throws Exception {
     String secTableName, systemUserName, tableUserName, secNamespaceName;
     // A best-effort sanity check to guard against not password-based auth
-    if (env.getInfo().getProperties().getProperty(ClientProperty.AUTH_TYPE.getKey()).equals("kerberos")) {
+    if (env.getClientProps().getProperty(ClientProperty.AUTH_TYPE.getKey()).equals("kerberos")) {
       throw new IllegalStateException("Security module currently cannot support Kerberos/SASL instances");
     }
 
diff --git a/src/main/java/org/apache/accumulo/testing/randomwalk/sequential/MapRedVerifyTool.java b/src/main/java/org/apache/accumulo/testing/randomwalk/sequential/MapRedVerifyTool.java
index b67c11b..2f98bc2 100644
--- a/src/main/java/org/apache/accumulo/testing/randomwalk/sequential/MapRedVerifyTool.java
+++ b/src/main/java/org/apache/accumulo/testing/randomwalk/sequential/MapRedVerifyTool.java
@@ -18,6 +18,7 @@ package org.apache.accumulo.testing.randomwalk.sequential;
 
 import java.io.IOException;
 import java.util.Iterator;
+import java.util.Properties;
 
 import org.apache.accumulo.core.client.Accumulo;
 import org.apache.accumulo.core.client.ClientInfo;
@@ -87,11 +88,11 @@ public class MapRedVerifyTool extends Configured implements Tool {
       return 1;
     }
 
-    ClientInfo info = Accumulo.newClient().from(args[0]).info();
-    AccumuloInputFormat.setClientInfo(job, info);
+    Properties props = Accumulo.newClientProperties().from(args[0]).build();
+    AccumuloInputFormat.setClientInfo(job, ClientInfo.from(props));
     AccumuloInputFormat.setInputTableName(job, args[1]);
 
-    AccumuloOutputFormat.setClientInfo(job, info);
+    AccumuloOutputFormat.setClientInfo(job, ClientInfo.from(props));
     AccumuloOutputFormat.setDefaultTableName(job, args[2]);
 
     job.setInputFormatClass(AccumuloInputFormat.class);