You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2014/12/02 21:37:25 UTC
[37/50] [abbrv] accumulo git commit: Merge branch '1.6'
Merge branch '1.6'
Conflicts:
minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
minicluster/src/test/java/org/apache/accumulo/cluster/AccumuloClustersTest.java
test/src/test/java/org/apache/accumulo/test/Accumulo3030IT.java
test/src/test/java/org/apache/accumulo/test/AllowScansToBeInterruptedIT.java
test/src/test/java/org/apache/accumulo/test/BadDeleteMarkersCreatedIT.java
test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java
test/src/test/java/org/apache/accumulo/test/InterruptibleScannersIT.java
test/src/test/java/org/apache/accumulo/test/KeyValueEqualityIT.java
test/src/test/java/org/apache/accumulo/test/MetaConstraintRetryIT.java
test/src/test/java/org/apache/accumulo/test/RecoveryCompactionsAreFlushesIT.java
test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java
test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java
test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java
test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java
test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java
test/src/test/java/org/apache/accumulo/test/functional/MetadataMaxFilesIT.java
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/74e7103f
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/74e7103f
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/74e7103f
Branch: refs/heads/metrics2
Commit: 74e7103f1221524c289385a5244e683bb6150167
Parents: bfcb0ed 7ca9c2d
Author: Josh Elser <el...@apache.org>
Authored: Tue Nov 25 18:50:13 2014 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Tue Nov 25 18:50:13 2014 -0500
----------------------------------------------------------------------
TESTING | 113 ++++++
minicluster/pom.xml | 8 +
.../accumulo/cluster/AccumuloCluster.java | 46 ++-
.../accumulo/cluster/AccumuloClusters.java | 43 ---
.../apache/accumulo/cluster/AccumuloConfig.java | 156 --------
.../apache/accumulo/cluster/ClusterControl.java | 83 ++++
.../apache/accumulo/cluster/RemoteShell.java | 94 +++++
.../accumulo/cluster/RemoteShellOptions.java | 126 +++++++
.../apache/accumulo/cluster/package-info.java | 27 --
.../standalone/StandaloneAccumuloCluster.java | 147 ++++++++
.../standalone/StandaloneClusterControl.java | 351 +++++++++++++++++
.../minicluster/MiniAccumuloCluster.java | 3 +-
.../apache/accumulo/minicluster/ServerType.java | 2 +-
.../impl/MiniAccumuloClusterControl.java | 375 +++++++++++++++++++
.../impl/MiniAccumuloClusterImpl.java | 183 +++------
.../impl/MiniAccumuloConfigImpl.java | 37 +-
.../accumulo/cluster/AccumuloClustersTest.java | 65 ----
.../MiniAccumuloClusterStartStopTest.java | 12 +-
.../impl/MiniAccumuloClusterImplTest.java | 7 +-
.../accumulo/gc/SimpleGarbageCollector.java | 1 +
.../accumulo/test/TestMultiTableIngest.java | 20 +-
.../accumulo/harness/AccumuloClusterIT.java | 220 +++++++++++
.../org/apache/accumulo/harness/AccumuloIT.java | 98 +++++
.../MiniClusterConfigurationCallback.java | 41 ++
.../accumulo/harness/MiniClusterHarness.java | 148 ++++++++
.../accumulo/harness/SharedMiniClusterIT.java | 87 +++++
.../conf/AccumuloClusterConfiguration.java | 33 ++
.../AccumuloClusterPropertyConfiguration.java | 180 +++++++++
.../conf/AccumuloMiniClusterConfiguration.java | 71 ++++
.../StandaloneAccumuloClusterConfiguration.java | 114 ++++++
.../test/AllowScansToBeInterruptedIT.java | 104 -----
.../apache/accumulo/test/AuditMessageIT.java | 44 ++-
.../test/BadDeleteMarkersCreatedIT.java | 91 ++++-
.../org/apache/accumulo/test/BatchWriterIT.java | 4 +-
.../accumulo/test/BulkImportVolumeIT.java | 37 +-
.../org/apache/accumulo/test/CleanWalIT.java | 71 +++-
.../accumulo/test/ConditionalWriterIT.java | 63 ++--
.../test/ConfigurableMajorCompactionIT.java | 2 +-
.../org/apache/accumulo/test/DeleteRowsIT.java | 47 ---
.../org/apache/accumulo/test/ExistingMacIT.java | 5 +-
.../apache/accumulo/test/ImportExportIT.java | 3 +
.../accumulo/test/InterruptibleScannersIT.java | 105 ++++++
.../accumulo/test/KeyValueEqualityIT.java | 7 +-
.../accumulo/test/MetaConstraintRetryIT.java | 7 +-
.../org/apache/accumulo/test/MetaSplitIT.java | 77 +++-
.../accumulo/test/MultiTableBatchWriterIT.java | 37 +-
.../org/apache/accumulo/test/NamespacesIT.java | 33 +-
.../accumulo/test/NoMutationRecoveryIT.java | 37 +-
.../test/RecoveryCompactionsAreFlushesIT.java | 22 +-
.../org/apache/accumulo/test/ShellServerIT.java | 50 +--
.../apache/accumulo/test/SplitRecoveryIT.java | 4 +-
.../test/TableConfigurationUpdateIT.java | 6 +-
.../apache/accumulo/test/TableOperationsIT.java | 31 +-
.../test/TracerRecoversAfterOfflineTableIT.java | 1 +
.../java/org/apache/accumulo/test/VolumeIT.java | 17 +-
.../accumulo/test/functional/AbstractMacIT.java | 79 +---
.../test/functional/AccumuloInputFormatIT.java | 6 +-
.../accumulo/test/functional/AddSplitIT.java | 3 +-
.../test/functional/BadIteratorMincIT.java | 3 +-
.../BalanceInPresenceOfOfflineTableIT.java | 55 ++-
.../test/functional/BatchScanSplitIT.java | 7 +-
.../test/functional/BatchWriterFlushIT.java | 3 +-
.../test/functional/BigRootTabletIT.java | 16 +-
.../accumulo/test/functional/BinaryIT.java | 14 +-
.../test/functional/BinaryStressIT.java | 78 +++-
.../accumulo/test/functional/BloomFilterIT.java | 217 ++++++-----
.../accumulo/test/functional/BulkFileIT.java | 15 +-
.../apache/accumulo/test/functional/BulkIT.java | 44 ++-
.../functional/BulkSplitOptimizationIT.java | 88 +++--
.../test/functional/ChaoticBalancerIT.java | 31 +-
.../accumulo/test/functional/ClassLoaderIT.java | 18 +-
.../accumulo/test/functional/CleanTmpIT.java | 55 ++-
.../accumulo/test/functional/CleanUpIT.java | 76 +++-
.../accumulo/test/functional/CloneTestIT.java | 16 +-
.../accumulo/test/functional/CombinerIT.java | 3 +-
.../accumulo/test/functional/CompactionIT.java | 85 ++++-
.../accumulo/test/functional/ConcurrencyIT.java | 79 ++--
.../test/functional/ConfigurableMacIT.java | 5 +-
.../accumulo/test/functional/ConstraintIT.java | 3 +-
.../test/functional/CreateAndUseIT.java | 3 +-
.../test/functional/CreateManyScannersIT.java | 3 +-
.../accumulo/test/functional/CredentialsIT.java | 3 +-
.../test/functional/DeleteEverythingIT.java | 76 ++--
.../accumulo/test/functional/DeleteIT.java | 37 +-
.../accumulo/test/functional/DeleteRowsIT.java | 17 +-
.../test/functional/DeleteRowsSplitIT.java | 3 +-
.../functional/DeleteTableDuringSplitIT.java | 3 +-
.../test/functional/DynamicThreadPoolsIT.java | 50 ++-
.../accumulo/test/functional/ExamplesIT.java | 251 ++++++++-----
.../test/functional/FateStarvationIT.java | 3 +-
.../accumulo/test/functional/LargeRowIT.java | 32 +-
.../accumulo/test/functional/LogicalTimeIT.java | 31 +-
.../test/functional/MasterAssignmentIT.java | 6 +-
.../test/functional/MasterFailoverIT.java | 38 +-
.../accumulo/test/functional/MaxOpenIT.java | 103 +++--
.../accumulo/test/functional/MergeIT.java | 3 +-
.../accumulo/test/functional/MetadataIT.java | 6 +-
.../accumulo/test/functional/PermissionsIT.java | 39 +-
.../accumulo/test/functional/ReadWriteIT.java | 255 +++++++++----
.../functional/RecoveryWithEmptyRFileIT.java | 20 +-
.../accumulo/test/functional/RenameIT.java | 3 +-
.../accumulo/test/functional/RestartIT.java | 250 ++++++++++---
.../test/functional/RestartStressIT.java | 88 ++++-
.../accumulo/test/functional/RowDeleteIT.java | 62 +--
.../test/functional/ScanIteratorIT.java | 3 +-
.../accumulo/test/functional/ScanRangeIT.java | 3 +-
.../test/functional/ScanSessionTimeOutIT.java | 80 ++--
.../accumulo/test/functional/ScannerIT.java | 7 +-
.../test/functional/ServerSideErrorIT.java | 3 +-
.../accumulo/test/functional/SimpleMacIT.java | 9 +-
.../test/functional/SparseColumnFamilyIT.java | 3 +-
.../accumulo/test/functional/SplitIT.java | 140 +++++--
.../apache/accumulo/test/functional/SslIT.java | 7 +-
.../accumulo/test/functional/StartIT.java | 14 +-
.../accumulo/test/functional/TableIT.java | 18 +-
.../accumulo/test/functional/TabletIT.java | 7 +-
.../accumulo/test/functional/TimeoutIT.java | 5 +-
.../accumulo/test/functional/VisibilityIT.java | 3 +-
.../test/functional/WriteAheadLogIT.java | 30 +-
.../accumulo/test/functional/WriteLotsIT.java | 3 +-
.../test/replication/CyclicReplicationIT.java | 6 +-
.../replication/MultiInstanceReplicationIT.java | 8 +-
.../UnorderedWorkAssignerReplicationIT.java | 8 +-
123 files changed, 4770 insertions(+), 1767 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/minicluster/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
----------------------------------------------------------------------
diff --cc minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
index 5149d9d,50e90b8..237c37c
--- a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
+++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
@@@ -89,7 -88,7 +88,6 @@@ import org.apache.accumulo.server.util.
import org.apache.accumulo.server.zookeeper.ZooReaderWriterFactory;
import org.apache.accumulo.start.Main;
import org.apache.accumulo.start.classloader.vfs.MiniDFSUtil;
- import org.apache.accumulo.tserver.TabletServer;
-import org.apache.accumulo.trace.instrument.Tracer;
import org.apache.commons.configuration.MapConfiguration;
import org.apache.commons.io.FileUtils;
import org.apache.commons.vfs2.FileObject;
@@@ -870,7 -772,8 +770,12 @@@ public class MiniAccumuloClusterImpl im
return stats;
}
+ public MiniDFSCluster getMiniDfs() {
+ return this.miniDFS;
+ }
++
+ @Override
+ public MiniAccumuloClusterControl getClusterControl() {
+ return clusterControl;
+ }
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloConfigImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/server/gc/src/main/java/org/apache/accumulo/gc/SimpleGarbageCollector.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/main/java/org/apache/accumulo/test/TestMultiTableIngest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/AuditMessageIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/BadDeleteMarkersCreatedIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/BadDeleteMarkersCreatedIT.java
index 2ad28b4,0000000..9cae889
mode 100644,000000..100644
--- a/test/src/test/java/org/apache/accumulo/test/BadDeleteMarkersCreatedIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/BadDeleteMarkersCreatedIT.java
@@@ -1,94 -1,0 +1,175 @@@
+/*
+ * 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 java.util.Map;
+import java.util.Map.Entry;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
++import org.apache.accumulo.core.Constants;
+import org.apache.accumulo.core.client.Connector;
++import org.apache.accumulo.core.client.Instance;
+import org.apache.accumulo.core.client.Scanner;
++import org.apache.accumulo.core.client.admin.InstanceOperations;
+import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.metadata.MetadataTable;
+import org.apache.accumulo.core.metadata.schema.MetadataSchema;
+import org.apache.accumulo.core.security.Authorizations;
+import org.apache.accumulo.core.util.UtilWaitThread;
++import org.apache.accumulo.core.zookeeper.ZooUtil;
++import org.apache.accumulo.fate.zookeeper.ZooCache;
++import org.apache.accumulo.fate.zookeeper.ZooLock;
++import org.apache.accumulo.harness.AccumuloClusterIT;
++import org.apache.accumulo.minicluster.ServerType;
+import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl;
- import org.apache.accumulo.test.functional.ConfigurableMacIT;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.io.Text;
++import org.apache.log4j.Logger;
++import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+// Accumulo3047
- public class BadDeleteMarkersCreatedIT extends ConfigurableMacIT {
++public class BadDeleteMarkersCreatedIT extends AccumuloClusterIT {
++ private static final Logger log = Logger.getLogger(BadDeleteMarkersCreatedIT.class);
+
+ @Override
+ public int defaultTimeoutSeconds() {
+ return 60;
+ }
+
+ @Override
- public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
++ public void configureMiniCluster(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
+ cfg.setNumTservers(1);
+ cfg.setProperty(Property.GC_CYCLE_DELAY, "1s");
+ cfg.setProperty(Property.GC_CYCLE_START, "0s");
+ }
+
+ private int timeoutFactor = 1;
+
+ @Before
+ public void getTimeoutFactor() {
+ try {
+ timeoutFactor = Integer.parseInt(System.getProperty("timeout.factor"));
+ } catch (NumberFormatException e) {
+ log.warn("Could not parse integer from timeout.factor");
+ }
+
+ Assert.assertTrue("timeout.factor must be greater than or equal to 1", timeoutFactor >= 1);
+ }
+
++ private String gcCycleDelay, gcCycleStart;
++
++ @Before
++ public void alterConfig() throws Exception {
++ InstanceOperations iops = getConnector().instanceOperations();
++ Map<String,String> config = iops.getSystemConfiguration();
++ gcCycleDelay = config.get(Property.GC_CYCLE_DELAY.getKey());
++ gcCycleStart = config.get(Property.GC_CYCLE_START.getKey());
++ iops.setProperty(Property.GC_CYCLE_DELAY.getKey(), "1s");
++ iops.setProperty(Property.GC_CYCLE_START.getKey(), "0s");
++ log.info("Restarting garbage collector");
++
++ getCluster().getClusterControl().stopAllServers(ServerType.GARBAGE_COLLECTOR);
++
++ Instance instance = getConnector().getInstance();
++ ZooCache zcache = new ZooCache(instance.getZooKeepers(), instance.getZooKeepersSessionTimeOut());
++ zcache.clear();
++ String path = ZooUtil.getRoot(instance) + Constants.ZGC_LOCK;
++ byte[] gcLockData;
++ do {
++ gcLockData = ZooLock.getLockData(zcache, path, null);
++ if (null != gcLockData) {
++ log.info("Waiting for GC ZooKeeper lock to expire");
++ Thread.sleep(2000);
++ }
++ } while (null != gcLockData);
++
++ log.info("GC lock was lost");
++
++ getCluster().getClusterControl().startAllServers(ServerType.GARBAGE_COLLECTOR);
++ log.info("Garbage collector was restarted");
++
++ gcLockData = null;
++ do {
++ gcLockData = ZooLock.getLockData(zcache, path, null);
++ if (null == gcLockData) {
++ log.info("Waiting for GC ZooKeeper lock to be acquired");
++ Thread.sleep(2000);
++ }
++ } while (null == gcLockData);
++
++ log.info("GC lock was acquired");
++ }
++
++ @After
++ public void restoreConfig() throws Exception {
++ InstanceOperations iops = getConnector().instanceOperations();
++ if (null != gcCycleDelay) {
++ iops.setProperty(Property.GC_CYCLE_DELAY.getKey(), gcCycleDelay);
++ }
++ if (null != gcCycleStart) {
++ iops.setProperty(Property.GC_CYCLE_START.getKey(), gcCycleStart);
++ }
++ log.info("Restarting garbage collector");
++ getCluster().getClusterControl().stopAllServers(ServerType.GARBAGE_COLLECTOR);
++ getCluster().getClusterControl().startAllServers(ServerType.GARBAGE_COLLECTOR);
++ log.info("Garbage collector was restarted");
++ }
++
+ @Test
+ public void test() throws Exception {
+ // make a table
+ String tableName = getUniqueNames(1)[0];
+ Connector c = getConnector();
++ log.info("Creating table to be deleted");
+ c.tableOperations().create(tableName);
++ final String tableId = c.tableOperations().tableIdMap().get(tableName);
++ Assert.assertNotNull("Expected to find a tableId", tableId);
++
+ // add some splits
+ SortedSet<Text> splits = new TreeSet<Text>();
+ for (int i = 0; i < 10; i++) {
+ splits.add(new Text("" + i));
+ }
+ c.tableOperations().addSplits(tableName, splits);
+ // get rid of all the splits
+ c.tableOperations().deleteRows(tableName, null, null);
+ // get rid of the table
+ c.tableOperations().delete(tableName);
++ log.info("Sleeping to let garbage collector run");
+ // let gc run
- UtilWaitThread.sleep(timeoutFactor * 5 * 1000);
++ UtilWaitThread.sleep(timeoutFactor * 15 * 1000);
++ log.info("Verifying that delete markers were deleted");
+ // look for delete markers
+ Scanner scanner = c.createScanner(MetadataTable.NAME, Authorizations.EMPTY);
+ scanner.setRange(MetadataSchema.DeletesSection.getRange());
+ for (Entry<Key,Value> entry : scanner) {
- Assert.fail(entry.getKey().getRow().toString());
++ String row = entry.getKey().getRow().toString();
++ if (!row.contains("/" + tableId + "/")) {
++ log.info("Ignoring delete entry for a table other than the one we deleted");
++ continue;
++ }
++ Assert.fail("Delete entry should have been deleted by the garbage collector: " + entry.getKey().getRow().toString());
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java
index 2fcd61e,50185b8..a283305
--- a/test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java
@@@ -67,21 -68,26 +68,25 @@@ import org.apache.accumulo.core.iterato
import org.apache.accumulo.core.iterators.user.VersioningIterator;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.security.ColumnVisibility;
+ import org.apache.accumulo.core.security.SystemPermission;
import org.apache.accumulo.core.security.TablePermission;
import org.apache.accumulo.core.trace.DistributedTrace;
-import org.apache.accumulo.core.trace.TraceDump;
-import org.apache.accumulo.core.trace.TraceDump.Printer;
+import org.apache.accumulo.core.trace.Span;
+import org.apache.accumulo.core.trace.Trace;
import org.apache.accumulo.core.util.FastFormat;
import org.apache.accumulo.core.util.UtilWaitThread;
import org.apache.accumulo.examples.simple.constraints.AlphaNumKeyConstraint;
-import org.apache.accumulo.fate.zookeeper.ZooReader;
+ import org.apache.accumulo.harness.AccumuloClusterIT;
+ import org.apache.accumulo.minicluster.impl.MiniAccumuloClusterImpl;
import org.apache.accumulo.test.functional.BadIterator;
- import org.apache.accumulo.test.functional.SimpleMacIT;
import org.apache.accumulo.test.functional.SlowIterator;
-import org.apache.accumulo.trace.instrument.Span;
-import org.apache.accumulo.trace.instrument.Trace;
+import org.apache.accumulo.tracer.TraceDump;
+import org.apache.accumulo.tracer.TraceDump.Printer;
import org.apache.accumulo.tracer.TraceServer;
import org.apache.hadoop.io.Text;
+ import org.apache.log4j.Logger;
import org.junit.Assert;
+ import org.junit.Assume;
import org.junit.Test;
import com.google.common.collect.Iterables;
@@@ -1219,20 -1234,23 +1233,23 @@@ public class ConditionalWriterIT extend
@Test
public void testTrace() throws Exception {
--
++ // Need to add a getClientConfig() to AccumuloCluster
++ Assume.assumeTrue(getClusterType() == ClusterType.MINI);
Process tracer = null;
Connector conn = getConnector();
++ AccumuloCluster cluster = getCluster();
++ MiniAccumuloClusterImpl mac = (MiniAccumuloClusterImpl) cluster;
if (!conn.tableOperations().exists("trace")) {
- tracer = getStaticCluster().exec(TraceServer.class);
- }
- while (!conn.tableOperations().exists("trace")) {
- UtilWaitThread.sleep(1000);
- Assume.assumeTrue(getClusterType() == ClusterType.MINI);
- AccumuloCluster cluster = getCluster();
- MiniAccumuloClusterImpl mac = (MiniAccumuloClusterImpl) cluster;
+ tracer = mac.exec(TraceServer.class);
+ while (!conn.tableOperations().exists("trace")) {
+ UtilWaitThread.sleep(1000);
+ }
}
String tableName = getUniqueNames(1)[0];
conn.tableOperations().create(tableName);
- DistributedTrace.enable("localhost", "testTrace", getClientConfig());
- DistributedTrace.enable(conn.getInstance(), new ZooReader(conn.getInstance().getZooKeepers(), 30*1000), "testTrace", "localhost");
++ DistributedTrace.enable("localhost", "testTrace", mac.getClientConfig());
Span root = Trace.on("traceTest");
ConditionalWriter cw = conn.createConditionalWriter(tableName, new ConditionalWriterConfig());
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/KeyValueEqualityIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/KeyValueEqualityIT.java
index b1e5364,0000000..7dd7e52
mode 100644,000000..100644
--- a/test/src/test/java/org/apache/accumulo/test/KeyValueEqualityIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/KeyValueEqualityIT.java
@@@ -1,75 -1,0 +1,76 @@@
+/*
+ * 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 java.util.Iterator;
+import java.util.Map.Entry;
+
+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.admin.TableOperations;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Mutation;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.security.Authorizations;
- import org.apache.accumulo.test.functional.SimpleMacIT;
++import org.apache.accumulo.harness.AccumuloClusterIT;
+import org.junit.Assert;
+import org.junit.Test;
+
- public class KeyValueEqualityIT extends SimpleMacIT {
++public class KeyValueEqualityIT extends AccumuloClusterIT {
+
+ @Override
+ public int defaultTimeoutSeconds() {
+ return 60;
+ }
+
+ @Test
+ public void testEquality() throws Exception {
+ Connector conn = this.getConnector();
+ final BatchWriterConfig config = new BatchWriterConfig();
+
- final String table1 = "table1", table2 = "table2";
++ final String[] tables = getUniqueNames(2);
++ final String table1 = tables[0], table2 = tables[1];
+ final TableOperations tops = conn.tableOperations();
+ tops.create(table1);
+ tops.create(table2);
+
+ final BatchWriter bw1 = conn.createBatchWriter(table1, config), bw2 = conn.createBatchWriter(table2, config);
+
+ for (int row = 0; row < 100; row++) {
+ Mutation m = new Mutation(Integer.toString(row));
+ for (int col = 0; col < 10; col++) {
+ m.put(Integer.toString(col), "", System.currentTimeMillis(), Integer.toString(col * 2));
+ }
+ bw1.addMutation(m);
+ bw2.addMutation(m);
+ }
+
+ bw1.close();
+ bw2.close();
+
+ Iterator<Entry<Key,Value>> t1 = conn.createScanner(table1, Authorizations.EMPTY).iterator(), t2 = conn.createScanner(table2, Authorizations.EMPTY).iterator();
+ while (t1.hasNext() && t2.hasNext()) {
+ // KeyValue, the implementation of Entry<Key,Value>, should support equality and hashCode properly
+ Entry<Key,Value> e1 = t1.next(), e2 = t2.next();
+ Assert.assertEquals(e1, e2);
+ Assert.assertEquals(e1.hashCode(), e2.hashCode());
+ }
+ Assert.assertFalse("table1 had more data to read", t1.hasNext());
+ Assert.assertFalse("table2 had more data to read", t2.hasNext());
+ }
+}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/MetaConstraintRetryIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/NamespacesIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/RecoveryCompactionsAreFlushesIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/RecoveryCompactionsAreFlushesIT.java
index 8a4f275,0000000..b78e724
mode 100644,000000..100644
--- a/test/src/test/java/org/apache/accumulo/test/RecoveryCompactionsAreFlushesIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/RecoveryCompactionsAreFlushesIT.java
@@@ -1,97 -1,0 +1,101 @@@
+/*
+ * 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 java.util.Map.Entry;
+
++import org.apache.accumulo.cluster.ClusterControl;
+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.Scanner;
+import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Mutation;
+import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.metadata.MetadataTable;
+import org.apache.accumulo.core.metadata.schema.MetadataSchema;
+import org.apache.accumulo.core.security.Authorizations;
++import org.apache.accumulo.harness.AccumuloClusterIT;
+import org.apache.accumulo.minicluster.ServerType;
+import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl;
- import org.apache.accumulo.minicluster.impl.ProcessReference;
- import org.apache.accumulo.test.functional.ConfigurableMacIT;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.RawLocalFileSystem;
+import org.junit.Assert;
+import org.junit.Test;
+
+// Accumulo3010
- public class RecoveryCompactionsAreFlushesIT extends ConfigurableMacIT {
++public class RecoveryCompactionsAreFlushesIT extends AccumuloClusterIT {
+
+ @Override
+ public int defaultTimeoutSeconds() {
+ return 60;
+ }
+
+ @Override
- public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
++ public void configureMiniCluster(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
+ cfg.setNumTservers(1);
+ cfg.setProperty(Property.INSTANCE_ZK_TIMEOUT, "5s");
+ // file system supports recovery
+ hadoopCoreSite.set("fs.file.impl", RawLocalFileSystem.class.getName());
+ }
+
+ @Test
+ public void test() throws Exception {
+ // create a table
+ String tableName = getUniqueNames(1)[0];
+ Connector c = getConnector();
+ c.tableOperations().create(tableName);
+ c.tableOperations().setProperty(tableName, Property.TABLE_MAJC_RATIO.getKey(), "100");
+ c.tableOperations().setProperty(tableName, Property.TABLE_FILE_MAX.getKey(), "3");
+ // create 3 flush files
+ BatchWriter bw = c.createBatchWriter(tableName, new BatchWriterConfig());
+ Mutation m = new Mutation("a");
+ m.put("b", "c", new Value("v".getBytes()));
+ for (int i = 0; i < 3; i++) {
+ bw.addMutation(m);
+ bw.flush();
+ c.tableOperations().flush(tableName, null, null, true);
+ }
+ // create an unsaved mutation
+ bw.addMutation(m);
+ bw.close();
- // kill the tablet server
- for (ProcessReference p : cluster.getProcesses().get(ServerType.TABLET_SERVER)) {
- cluster.killProcess(ServerType.TABLET_SERVER, p);
- }
++
++ ClusterControl control = cluster.getClusterControl();
++
++ // kill the tablet servers
++ control.stopAllServers(ServerType.TABLET_SERVER);
++
+ // recover
- cluster.start();
++ control.startAllServers(ServerType.TABLET_SERVER);
++
+ // ensure the table is readable
+ for (@SuppressWarnings("unused") Entry<Key,Value> entry : c.createScanner(tableName, Authorizations.EMPTY)) {
+ }
++
+ // ensure that the recovery was not a merging minor compaction
+ Scanner s = c.createScanner(MetadataTable.NAME, Authorizations.EMPTY);
+ s.fetchColumnFamily(MetadataSchema.TabletsSection.DataFileColumnFamily.NAME);
+ for (Entry<Key, Value> entry : s) {
+ String filename = entry.getKey().getColumnQualifier().toString();
+ String parts[] = filename.split("/");
+ Assert.assertFalse(parts[parts.length-1].startsWith("M"));
+ }
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
index 4114dc8,544e2f9..544bb76
--- a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
@@@ -53,11 -52,12 +52,11 @@@ import org.apache.accumulo.core.data.Va
import org.apache.accumulo.core.file.FileOperations;
import org.apache.accumulo.core.file.FileSKVWriter;
import org.apache.accumulo.core.metadata.MetadataTable;
-import org.apache.accumulo.core.metadata.RootTable;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.util.UtilWaitThread;
-import org.apache.accumulo.core.util.shell.Shell;
+import org.apache.accumulo.shell.Shell;
+ import org.apache.accumulo.harness.SharedMiniClusterIT;
import org.apache.accumulo.test.functional.FunctionalTestUtils;
- import org.apache.accumulo.test.functional.SimpleMacIT;
import org.apache.accumulo.test.functional.SlowIterator;
import org.apache.accumulo.tracer.TraceServer;
import org.apache.commons.io.FileUtils;
@@@ -239,8 -244,9 +243,8 @@@ public class ShellServerIT extends Shar
@Before
public void setupShell() throws Exception {
- ts = new TestShell(ROOT_PASSWORD, getStaticCluster().getConfig().getInstanceName(), getStaticCluster().getConfig().getZooKeepers(), getStaticCluster()
- .getConfig().getClientConfFile().getAbsolutePath());
+ ts = new TestShell(getRootPassword(), getCluster().getConfig().getInstanceName(), getCluster().getConfig().getZooKeepers(), getCluster().getConfig()
- .getClientConfFile()
- .getAbsolutePath());
++ .getClientConfFile().getAbsolutePath());
}
@AfterClass
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/TracerRecoversAfterOfflineTableIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/VolumeIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java
index 644b05e,3833e3c..b0dd816
--- a/test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/AbstractMacIT.java
@@@ -52,36 -45,7 +45,7 @@@ public abstract class AbstractMacIT ext
} catch (Exception e) {}
}
- public static File createSharedTestDir(String name) {
- File baseDir = new File(System.getProperty("user.dir") + "/target/mini-tests");
- baseDir.mkdirs();
- if (name != null)
- baseDir = new File(baseDir, name);
- File testDir = new File(baseDir, System.currentTimeMillis() + "_" + new Random().nextInt(Short.MAX_VALUE));
- FileUtils.deleteQuietly(testDir);
- testDir.mkdir();
- return testDir;
- }
-
- public static File createTestDir(String name) {
- File baseDir = new File(System.getProperty("user.dir") + "/target/mini-tests");
- baseDir.mkdirs();
- if (name == null)
- return baseDir;
- File testDir = new File(baseDir, name);
- FileUtils.deleteQuietly(testDir);
- testDir.mkdir();
- return testDir;
- }
-
- public String[] getUniqueNames(int num) {
- String[] names = new String[num];
- for (int i = 0; i < num; i++)
- names[i] = this.getClass().getSimpleName() + "_" + testName.getMethodName() + i;
- return names;
- }
-
- public static void configureForEnvironment(MiniAccumuloConfigImpl cfg, File folder) {
- protected static void configureForEnvironment(MiniAccumuloConfigImpl cfg, Class<?> testClass, File folder) {
++ public static void configureForEnvironment(MiniAccumuloConfigImpl cfg, Class<?> testClass, File folder) {
if ("true".equals(System.getProperty("org.apache.accumulo.test.functional.useSslForIT"))) {
configureForSsl(cfg, folder);
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/AddSplitIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/BadIteratorMincIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/BalanceInPresenceOfOfflineTableIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/BalanceInPresenceOfOfflineTableIT.java
index 887aee4,0b87b28..d45b186
--- a/test/src/test/java/org/apache/accumulo/test/functional/BalanceInPresenceOfOfflineTableIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BalanceInPresenceOfOfflineTableIT.java
@@@ -22,17 -22,27 +22,27 @@@ import java.util.Map
import java.util.SortedSet;
import java.util.TreeSet;
+ import org.apache.accumulo.core.cli.BatchWriterOpts;
+ import org.apache.accumulo.core.cli.ScannerOpts;
import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.AccumuloSecurityException;
+ import org.apache.accumulo.core.client.Connector;
+ import org.apache.accumulo.core.client.Instance;
import org.apache.accumulo.core.client.TableExistsException;
import org.apache.accumulo.core.client.TableNotFoundException;
- import org.apache.accumulo.core.client.Connector;
+ import org.apache.accumulo.core.client.ZooKeeperInstance;
+ import org.apache.accumulo.core.client.impl.MasterClient;
+ import org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException;
import org.apache.accumulo.core.conf.Property;
+ import org.apache.accumulo.core.master.thrift.MasterClientService;
import org.apache.accumulo.core.master.thrift.MasterMonitorInfo;
import org.apache.accumulo.core.master.thrift.TableInfo;
++import org.apache.accumulo.core.trace.Tracer;
+ import org.apache.accumulo.harness.AccumuloClusterIT;
import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl;
+ import org.apache.accumulo.server.security.SystemCredentials;
import org.apache.accumulo.test.TestIngest;
import org.apache.accumulo.test.VerifyIngest;
-import org.apache.accumulo.trace.instrument.Tracer;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.Text;
@@@ -101,9 -121,11 +121,11 @@@ public class BalanceInPresenceOfOffline
TestIngest.Opts opts = new TestIngest.Opts();
VerifyIngest.Opts vopts = new VerifyIngest.Opts();
vopts.rows = opts.rows = 200000;
- TestIngest.ingest(connector, opts, BWOPTS);
- opts.tableName = TEST_TABLE;
++ opts.setTableName(TEST_TABLE);
+ TestIngest.ingest(connector, opts, new BatchWriterOpts());
connector.tableOperations().flush(TEST_TABLE, null, null, true);
- VerifyIngest.verifyIngest(connector, vopts, SOPTS);
- vopts.tableName = TEST_TABLE;
++ vopts.setTableName(TEST_TABLE);
+ VerifyIngest.verifyIngest(connector, vopts, new ScannerOpts());
log.debug("waiting for balancing, up to ~5 minutes to allow for migration cleanup.");
final long startTime = System.currentTimeMillis();
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/BatchScanSplitIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/BatchWriterFlushIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/BinaryIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java
index 6ee671e,d497d40..3319247
--- a/test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BloomFilterIT.java
@@@ -53,15 -58,11 +58,10 @@@ public class BloomFilterIT extends Accu
cfg.setDefaultMemory(1, MemoryUnit.GIGABYTE);
cfg.setNumTservers(1);
Map<String,String> siteConfig = new HashMap<String, String>();
-- siteConfig.put(Property.TSERV_READ_AHEAD_MAXCONCURRENT.getKey(), "1");
- siteConfig.put(Property.TABLE_BLOOM_SIZE.getKey(), "2000000");
- siteConfig.put(Property.TABLE_BLOOM_ERRORRATE.getKey(), "1%");
- siteConfig.put(Property.TABLE_BLOOM_LOAD_THRESHOLD.getKey(), "0");
- siteConfig.put(Property.TSERV_MUTATION_QUEUE_MAX.getKey(), "10M");
+ siteConfig.put(Property.TSERV_TOTAL_MUTATION_QUEUE_MAX.getKey(), "10M");
- siteConfig.put(Property.TABLE_FILE_COMPRESSED_BLOCK_SIZE.getKey(), "64K");
cfg.setSiteConfig(siteConfig );
}
-
+
@Override
protected int defaultTimeoutSeconds() {
return 6 * 60;
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java
index 22aa0cd,67de2e6..13c4d32
--- a/test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BulkFileIT.java
@@@ -37,6 -36,7 +37,7 @@@ import org.apache.accumulo.harness.Accu
import org.apache.accumulo.minicluster.MemoryUnit;
import org.apache.accumulo.minicluster.ServerType;
import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl;
-import org.apache.accumulo.server.conf.ServerConfiguration;
++import org.apache.accumulo.server.conf.ServerConfigurationFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
@@@ -65,10 -65,12 +66,12 @@@ public class BulkFileIT extends Accumul
splits.add(new Text(split));
c.tableOperations().addSplits(tableName, splits);
Configuration conf = new Configuration();
- AccumuloConfiguration aconf = DefaultConfiguration.getInstance();
- FileSystem fs = VolumeConfiguration.getDefaultVolume(conf, aconf).getFileSystem();
- AccumuloConfiguration aconf = ServerConfiguration.getDefaultConfiguration();
++ AccumuloConfiguration aconf = new ServerConfigurationFactory(c.getInstance()).getConfiguration();
+ FileSystem fs = getCluster().getFileSystem();
- String dir = rootPath() + "/bulk_test_diff_files_89723987592_" + getUniqueNames(1)[0];
+ String rootPath = getUsableDir();
+
+ String dir = rootPath + "/bulk_test_diff_files_89723987592_" + getUniqueNames(1)[0];
fs.delete(new Path(dir), true);
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/BulkIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/BulkSplitOptimizationIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/BulkSplitOptimizationIT.java
index 492e36f,27b5147..13cad1a
--- a/test/src/test/java/org/apache/accumulo/test/functional/BulkSplitOptimizationIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/BulkSplitOptimizationIT.java
@@@ -90,11 -119,12 +119,12 @@@ public class BulkSplitOptimizationIT ex
opts.rows = 100000;
opts.startRow = 0;
opts.cols = 1;
- opts.password = new Password(ROOT_PASSWORD);
- VerifyIngest.verifyIngest(c, opts, SOPTS);
+ opts.password = new Password(new String(token.getPassword(), UTF_8));
- opts.tableName = tableName;
++ opts.setTableName(tableName);
+ VerifyIngest.verifyIngest(c, opts, new ScannerOpts());
// ensure each tablet does not have all map files, should be ~2.5 files per tablet
- FunctionalTestUtils.checkRFiles(c, TABLE_NAME, 50, 100, 1, 4);
+ FunctionalTestUtils.checkRFiles(c, tableName, 50, 100, 1, 4);
}
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBalancerIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/ChaoticBalancerIT.java
index 8afb3d2,fc141db..8ffdbd2
--- a/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBalancerIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ChaoticBalancerIT.java
@@@ -61,9 -66,10 +66,11 @@@ public class ChaoticBalancerIT extends
TestIngest.Opts opts = new TestIngest.Opts();
VerifyIngest.Opts vopts = new VerifyIngest.Opts();
vopts.rows = opts.rows = 20000;
- TestIngest.ingest(c, opts, BWOPTS);
- c.tableOperations().flush("test_ingest", null, null, true);
- VerifyIngest.verifyIngest(c, vopts, SOPTS);
- opts.tableName = vopts.tableName = tableName;
++ opts.setTableName(tableName);
++ vopts.setTableName(tableName);
+ TestIngest.ingest(c, opts, new BatchWriterOpts());
+ c.tableOperations().flush(tableName, null, null, true);
+ VerifyIngest.verifyIngest(c, vopts, new ScannerOpts());
}
-
+
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/CompactionIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/CompactionIT.java
index b659913,dc877dc..ab26a44
--- a/test/src/test/java/org/apache/accumulo/test/functional/CompactionIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/CompactionIT.java
@@@ -89,8 -127,10 +127,10 @@@ public class CompactionIT extends Accum
opts.random = 56;
opts.dataSize = 50;
opts.cols = 1;
- opts.tableName = tableName;
++ opts.setTableName(tableName);
VerifyIngest.verifyIngest(c, opts, new ScannerOpts());
} catch (Exception ex) {
+ log.warn("Got exception verifying data", ex);
fail.set(true);
}
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/ConcurrencyIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/ConfigurableMacIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/ConstraintIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/CreateAndUseIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java
index f7f8700,d8bc864..68911ca
--- a/test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/DeleteEverythingIT.java
@@@ -16,11 -16,10 +16,10 @@@
*/
package org.apache.accumulo.test.functional;
-import static com.google.common.base.Charsets.UTF_8;
-import static org.junit.Assert.assertEquals;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.junit.Assert.*;
import java.util.Collections;
- import java.util.Map.Entry;
import org.apache.accumulo.core.client.BatchWriter;
import org.apache.accumulo.core.client.BatchWriterConfig;
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/DeleteIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/DeleteIT.java
index 3510fbd,f7396b3..db86d89
--- a/test/src/test/java/org/apache/accumulo/test/functional/DeleteIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/DeleteIT.java
@@@ -37,14 -41,21 +41,22 @@@ public class DeleteIT extends AccumuloC
@Test
public void test() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
- deleteTest(c, cluster);
- assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
+ String tableName = getUniqueNames(1)[0];
+ c.tableOperations().create(tableName);
+ PasswordToken token = (PasswordToken) getToken();
+ deleteTest(c, getCluster(), new String(token.getPassword(), Charsets.UTF_8), tableName);
+ try {
+ getCluster().getClusterControl().adminStopAll();
+ } finally {
+ getCluster().start();
+ }
}
- public static void deleteTest(Connector c, MiniAccumuloClusterImpl cluster) throws Exception {
+ public static void deleteTest(Connector c, AccumuloCluster cluster, String password, String tableName) throws Exception {
VerifyIngest.Opts vopts = new VerifyIngest.Opts();
TestIngest.Opts opts = new TestIngest.Opts();
- vopts.tableName = opts.tableName = tableName;
++ vopts.setTableName(tableName);
++ opts.setTableName(tableName);
vopts.rows = opts.rows = 1000;
vopts.cols = opts.cols = 1;
vopts.random = opts.random = 56;
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/DeleteRowsSplitIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/DynamicThreadPoolsIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/DynamicThreadPoolsIT.java
index 3ec3ccf,c10d3df..f96f8f8
--- a/test/src/test/java/org/apache/accumulo/test/functional/DynamicThreadPoolsIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/DynamicThreadPoolsIT.java
@@@ -29,17 -30,20 +30,20 @@@ import org.apache.accumulo.core.master.
import org.apache.accumulo.core.master.thrift.TableInfo;
import org.apache.accumulo.core.master.thrift.TabletServerStatus;
import org.apache.accumulo.core.security.Credentials;
+import org.apache.accumulo.core.trace.Tracer;
import org.apache.accumulo.core.util.UtilWaitThread;
+ import org.apache.accumulo.harness.AccumuloClusterIT;
import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl;
import org.apache.accumulo.test.TestIngest;
-import org.apache.accumulo.trace.instrument.Tracer;
import org.apache.hadoop.conf.Configuration;
+ import org.junit.After;
+ import org.junit.Before;
import org.junit.Test;
- public class DynamicThreadPoolsIT extends ConfigurableMacIT {
-
+ public class DynamicThreadPoolsIT extends AccumuloClusterIT {
+
@Override
- public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
+ public void configureMiniCluster(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
cfg.setNumTservers(1);
cfg.setSiteConfig(Collections.singletonMap(Property.TSERV_MAJC_DELAY.getKey(), "100ms"));
}
@@@ -57,14 -80,15 +80,15 @@@
TestIngest.Opts opts = new TestIngest.Opts();
opts.rows = 500 * 1000;
opts.createTable = true;
- TestIngest.ingest(c, opts, BWOPTS);
- c.tableOperations().flush("test_ingest", null, null, true);
- for (int i = 1; i < TABLES; i++)
- c.tableOperations().clone("test_ingest", "test_ingest" + i, true, null, null);
- opts.tableName = firstTable;
++ opts.setTableName(firstTable);
+ TestIngest.ingest(c, opts, new BatchWriterOpts());
+ c.tableOperations().flush(firstTable, null, null, true);
+ for (int i = 1; i < tables.length; i++)
+ c.tableOperations().clone(firstTable, tables[i], true, null, null);
UtilWaitThread.sleep(11 * 1000); // time between checks of the thread pool sizes
- Credentials creds = new Credentials("root", new PasswordToken(ROOT_PASSWORD));
- for (int i = 1; i < TABLES; i++)
- c.tableOperations().compact("test_ingest" + i, null, null, true, false);
+ Credentials creds = new Credentials(getPrincipal(), getToken());
+ for (int i = 1; i < tables.length; i++)
+ c.tableOperations().compact(tables[i], null, null, true, false);
for (int i = 0; i < 30; i++) {
int count = 0;
MasterClientService.Iface client = null;
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
index 5b03b17,5bced81..f2f99b7
--- a/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java
@@@ -145,9 -168,10 +168,13 @@@ public class ExamplesIT extends Accumul
count++;
}
assertTrue(count > 0);
- result = FunctionalTestUtils.readAll(cluster, TraceDumpExample.class, p);
- assertTrue(result.contains("myApp@myHost"));
- trace.destroy();
++ pair = cluster.getClusterControl().execWithStdout(TracingExample.class,
++ new String[] {"-i", instance, "-z", keepers, "-u", user, "-p", passwd, "-C", "-D", "-c"});
++ Assert.assertEquals("Expected return code of zero. STDOUT=" + pair.getValue(), 0, pair.getKey().intValue());
+ assertTrue(pair.getValue().contains("myHost@myApp"));
+ if (ClusterType.MINI == getClusterType() && null != trace) {
+ trace.destroy();
+ }
}
@Test
@@@ -288,6 -334,7 +337,7 @@@
TestIngest.Opts opts = new TestIngest.Opts();
opts.rows = 1;
opts.cols = 1000;
- opts.tableName = tableName;
++ opts.setTableName(tableName);
try {
TestIngest.ingest(c, opts, bwOpts);
} catch (MutationsRejectedException ex) {
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/FateStarvationIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/LargeRowIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java
index 4fd8b70,0bd303a..2b44ccb
--- a/test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/MasterFailoverIT.java
@@@ -44,22 -46,20 +46,20 @@@ public class MasterFailoverIT extends A
@Test
public void test() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
+ String[] names = getUniqueNames(2);
+ c.tableOperations().create(names[0]);
TestIngest.Opts opts = new TestIngest.Opts();
- TestIngest.ingest(c, opts, BWOPTS);
- for (ProcessReference master : cluster.getProcesses().get(ServerType.MASTER)) {
- cluster.killProcess(ServerType.MASTER, master);
- }
- opts.tableName = names[0];
++ opts.setTableName(names[0]);
+ TestIngest.ingest(c, opts, new BatchWriterOpts());
+
+ ClusterControl control = cluster.getClusterControl();
+ control.stopAllServers(ServerType.MASTER);
// start up a new one
- Process p = cluster.exec(Master.class);
+ control.startAllServers(ServerType.MASTER);
// talk to it
- c.tableOperations().rename("test_ingest", "test_ingest2");
- try {
- VerifyIngest.Opts vopts = new VerifyIngest.Opts();
- vopts.setTableName("test_ingest2");
- VerifyIngest.verifyIngest(c, vopts, SOPTS);
- } finally {
- p.destroy();
- }
+ c.tableOperations().rename(names[0], names[1]);
+ VerifyIngest.Opts vopts = new VerifyIngest.Opts();
- vopts.tableName = names[1];
++ vopts.setTableName(names[1]);
+ VerifyIngest.verifyIngest(c, vopts, new ScannerOpts());
}
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/MaxOpenIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/MaxOpenIT.java
index 2649890,ff9370c..729ec46
--- a/test/src/test/java/org/apache/accumulo/test/functional/MaxOpenIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/MaxOpenIT.java
@@@ -74,14 -104,15 +104,15 @@@ public class MaxOpenIT extends Accumulo
opts.rows = NUM_TO_INGEST;
opts.cols = 1;
opts.random = i;
- opts.tableName = tableName;
++ opts.setTableName(tableName);
TestIngest.ingest(c, opts, new BatchWriterOpts());
-
- c.tableOperations().flush("test_ingest", null, null, true);
- FunctionalTestUtils.checkRFiles(c, "test_ingest", NUM_TABLETS, NUM_TABLETS, i + 1, i + 1);
+
+ c.tableOperations().flush(tableName, null, null, true);
+ FunctionalTestUtils.checkRFiles(c, tableName, NUM_TABLETS, NUM_TABLETS, i + 1, i + 1);
}
-
+
List<Range> ranges = new ArrayList<Range>(NUM_TO_INGEST);
-
+
for (int i = 0; i < NUM_TO_INGEST; i++) {
ranges.add(new Range(TestIngest.generateRow(i, 0)));
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java
index bc9ab4a,da398d6..5e7dbfd
--- a/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java
@@@ -96,14 -141,16 +141,16 @@@ public class ReadWriteIT extends Accumu
opts.startRow = offset;
opts.columnFamily = colf;
opts.createTable = true;
- opts.tableName = tableName;
++ opts.setTableName(tableName);
+
TestIngest.ingest(connector, opts, new BatchWriterOpts());
}
-
- public static void verify(Connector connector, int rows, int cols, int width, int offset) throws Exception {
- verify(connector, rows, cols, width, offset, COLF);
+
+ public static void verify(Connector connector, int rows, int cols, int width, int offset, String tableName) throws Exception {
+ verify(connector, rows, cols, width, offset, COLF, tableName);
}
-
- private static void verify(Connector connector, int rows, int cols, int width, int offset, String colf) throws Exception {
+
+ private static void verify(Connector connector, int rows, int cols, int width, int offset, String colf, String tableName) throws Exception {
ScannerOpts scannerOpts = new ScannerOpts();
VerifyIngest.Opts opts = new VerifyIngest.Opts();
opts.rows = rows;
@@@ -111,9 -158,10 +158,10 @@@
opts.dataSize = width;
opts.startRow = offset;
opts.columnFamily = colf;
- opts.tableName = tableName;
++ opts.setTableName(tableName);
VerifyIngest.verifyIngest(connector, opts, scannerOpts);
}
-
+
public static String[] args(String... args) {
return args;
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/RenameIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
index e4b9c5a,8d5a1dd..d0e32a2
--- a/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
@@@ -68,33 -107,74 +107,74 @@@ public class RestartIT extends Accumulo
@Test
public void restartMaster() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
- Process ingest = cluster.exec(TestIngest.class, "-u", "root", "-p", ROOT_PASSWORD, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(),
- "--rows", "" + OPTS.rows);
- for (ProcessReference master : cluster.getProcesses().get(ServerType.MASTER)) {
- cluster.killProcess(ServerType.MASTER, master);
- }
- cluster.start();
- assertEquals(0, ingest.waitFor());
+ final String tableName = getUniqueNames(1)[0];
- OPTS.tableName = tableName;
- VOPTS.tableName = tableName;
++ OPTS.setTableName(tableName);
++ VOPTS.setTableName(tableName);
+ c.tableOperations().create(tableName);
+ final PasswordToken token = (PasswordToken) getToken();
+ final ClusterControl control = getCluster().getClusterControl();
+
+ Future<Integer> ret = svc.submit(new Callable<Integer>() {
+ @Override
+ public Integer call() {
+ try {
+ return control.exec(TestIngest.class,
+ new String[] {"-u", "root", "-p", new String(token.getPassword(), Charsets.UTF_8), "-i", cluster.getInstanceName(), "-z",
+ cluster.getZooKeepers(), "--rows", "" + OPTS.rows, "--table", tableName});
+ } catch (IOException e) {
+ log.error("Error running TestIngest", e);
+ return -1;
+ }
+ }
+ });
+
+ control.stopAllServers(ServerType.MASTER);
+ control.startAllServers(ServerType.MASTER);
+ assertEquals(0, ret.get().intValue());
VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
- ingest.destroy();
}
@Test
public void restartMasterRecovery() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
+ String tableName = getUniqueNames(1)[0];
+ c.tableOperations().create(tableName);
- OPTS.tableName = tableName;
- VOPTS.tableName = tableName;
++ OPTS.setTableName(tableName);
++ VOPTS.setTableName(tableName);
TestIngest.ingest(c, OPTS, BWOPTS);
- for (Entry<ServerType,Collection<ProcessReference>> entry : cluster.getProcesses().entrySet()) {
- for (ProcessReference proc : entry.getValue()) {
- cluster.killProcess(entry.getKey(), proc);
+ ClusterControl control = getCluster().getClusterControl();
+
+ // TODO implement a kill all too?
+ // cluster.stop() would also stop ZooKeeper
+ control.stopAllServers(ServerType.MASTER);
+ control.stopAllServers(ServerType.TRACER);
+ control.stopAllServers(ServerType.TABLET_SERVER);
+ control.stopAllServers(ServerType.GARBAGE_COLLECTOR);
+ control.stopAllServers(ServerType.MONITOR);
+
+ ZooReader zreader = new ZooReader(c.getInstance().getZooKeepers(), c.getInstance().getZooKeepersSessionTimeOut());
+ ZooCache zcache = new ZooCache(zreader, null);
+ byte[] masterLockData;
+ do {
+ masterLockData = ZooLock.getLockData(zcache, ZooUtil.getRoot(c.getInstance()) + Constants.ZMASTER_LOCK, null);
+ if (null != masterLockData) {
+ log.info("Master lock is still held");
+ Thread.sleep(1000);
}
- }
+ } while (null != masterLockData);
+
cluster.start();
UtilWaitThread.sleep(5);
- for (ProcessReference master : cluster.getProcesses().get(ServerType.MASTER)) {
- cluster.killProcess(ServerType.MASTER, master);
- }
+ control.stopAllServers(ServerType.MASTER);
+
+ masterLockData = new byte[0];
+ do {
+ masterLockData = ZooLock.getLockData(zcache, ZooUtil.getRoot(c.getInstance()) + Constants.ZMASTER_LOCK, null);
+ if (null != masterLockData) {
+ log.info("Master lock is still held");
+ Thread.sleep(1000);
+ }
+ } while (null != masterLockData);
cluster.start();
VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
}
@@@ -102,29 -182,54 +182,54 @@@
@Test
public void restartMasterSplit() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
- c.tableOperations().setProperty("test_ingest", Property.TABLE_SPLIT_THRESHOLD.getKey(), "5K");
- Process ingest = cluster.exec(TestIngest.class, "-u", "root", "-p", ROOT_PASSWORD, "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(),
- "--rows", "" + VOPTS.rows);
- for (ProcessReference master : cluster.getProcesses().get(ServerType.MASTER)) {
- cluster.killProcess(ServerType.MASTER, master);
- }
+ final String tableName = getUniqueNames(1)[0];
+ final PasswordToken token = (PasswordToken) getToken();
+ final ClusterControl control = getCluster().getClusterControl();
- VOPTS.tableName = tableName;
++ VOPTS.setTableName(tableName);
+ c.tableOperations().create(tableName);
+ c.tableOperations().setProperty(tableName, Property.TABLE_SPLIT_THRESHOLD.getKey(), "5K");
+ Future<Integer> ret = svc.submit(new Callable<Integer>() {
+ @Override
+ public Integer call() {
+ try {
+ return control.exec(TestIngest.class,
+ new String[] {"-u", "root", "-p", new String(token.getPassword(), Charsets.UTF_8), "-i", cluster.getInstanceName(), "-z",
+ cluster.getZooKeepers(), "--rows", Integer.toString(VOPTS.rows), "--table", tableName});
+ } catch (Exception e) {
+ log.error("Error running TestIngest", e);
+ return -1;
+ }
+ }
+ });
+
+ control.stopAllServers(ServerType.MASTER);
+
+ ZooReader zreader = new ZooReader(c.getInstance().getZooKeepers(), c.getInstance().getZooKeepersSessionTimeOut());
+ ZooCache zcache = new ZooCache(zreader, null);
+ byte[] masterLockData;
+ do {
+ masterLockData = ZooLock.getLockData(zcache, ZooUtil.getRoot(c.getInstance()) + Constants.ZMASTER_LOCK, null);
+ if (null != masterLockData) {
+ log.info("Master lock is still held");
+ Thread.sleep(1000);
+ }
+ } while (null != masterLockData);
+
cluster.start();
- assertEquals(0, ingest.waitFor());
+ assertEquals(0, ret.get().intValue());
VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
- ingest.destroy();
}
@Test
public void killedTabletServer() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
+ String tableName = getUniqueNames(1)[0];
+ c.tableOperations().create(tableName);
- OPTS.tableName = tableName;
- VOPTS.tableName = tableName;
++ OPTS.setTableName(tableName);
++ VOPTS.setTableName(tableName);
TestIngest.ingest(c, OPTS, BWOPTS);
VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
- List<ProcessReference> procs = new ArrayList<ProcessReference>(cluster.getProcesses().get(ServerType.TABLET_SERVER));
- for (ProcessReference tserver : procs) {
- cluster.killProcess(ServerType.TABLET_SERVER, tserver);
- }
+ cluster.getClusterControl().stopAllServers(ServerType.TABLET_SERVER);
cluster.start();
VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
}
@@@ -147,23 -252,46 +252,46 @@@
@Test
public void killedTabletServerDuringShutdown() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
+ String tableName = getUniqueNames(1)[0];
+ c.tableOperations().create(tableName);
- OPTS.tableName = tableName;
++ OPTS.setTableName(tableName);
TestIngest.ingest(c, OPTS, BWOPTS);
- List<ProcessReference> procs = new ArrayList<ProcessReference>(cluster.getProcesses().get(ServerType.TABLET_SERVER));
- cluster.killProcess(ServerType.TABLET_SERVER, procs.get(0));
- assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
+ try {
+ getCluster().getClusterControl().stopAllServers(ServerType.TABLET_SERVER);
+ getCluster().getClusterControl().adminStopAll();
+ } finally {
+ getCluster().start();
+ }
}
@Test
public void shutdownDuringCompactingSplitting() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
- c.tableOperations().setProperty("test_ingest", Property.TABLE_SPLIT_THRESHOLD.getKey(), "10K");
- c.tableOperations().setProperty(MetadataTable.NAME, Property.TABLE_SPLIT_THRESHOLD.getKey(), "20K");
- TestIngest.Opts opts = new TestIngest.Opts();
- TestIngest.ingest(c, opts, BWOPTS);
- c.tableOperations().flush("test_ingest", null, null, false);
- VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
- assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
+ String tableName = getUniqueNames(1)[0];
- VOPTS.tableName = tableName;
++ VOPTS.setTableName(tableName);
+ c.tableOperations().create(tableName);
+ c.tableOperations().setProperty(tableName, Property.TABLE_SPLIT_THRESHOLD.getKey(), "10K");
+ String splitThreshold = null;
+ for (Entry<String,String> entry : c.tableOperations().getProperties(tableName)) {
+ if (entry.getKey().equals(Property.TABLE_SPLIT_THRESHOLD.getKey())) {
+ splitThreshold = entry.getValue();
+ break;
+ }
+ }
+ Assert.assertNotNull(splitThreshold);
+ try {
+ c.tableOperations().setProperty(MetadataTable.NAME, Property.TABLE_SPLIT_THRESHOLD.getKey(), "20K");
+ TestIngest.Opts opts = new TestIngest.Opts();
- opts.tableName = tableName;
++ opts.setTableName(tableName);
+ TestIngest.ingest(c, opts, BWOPTS);
+ c.tableOperations().flush(tableName, null, null, false);
+ VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
+ getCluster().stop();
+ } finally {
+ if (getClusterType() == ClusterType.STANDALONE) {
+ getCluster().start();
+ c.tableOperations().setProperty(MetadataTable.NAME, Property.TABLE_SPLIT_THRESHOLD.getKey(), splitThreshold);
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/RestartStressIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/RestartStressIT.java
index d8c2804,6ad80ea..f4ff912
--- a/test/src/test/java/org/apache/accumulo/test/functional/RestartStressIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/RestartStressIT.java
@@@ -56,27 -93,40 +93,40 @@@ public class RestartStressIT extends Ac
static {
IOPTS = new TestIngest.Opts();
VOPTS = new VerifyIngest.Opts();
- IOPTS.rows = VOPTS.rows = 10*1000;
+ IOPTS.rows = VOPTS.rows = 10 * 1000;
}
private static final ScannerOpts SOPTS = new ScannerOpts();
-
-
+
@Test
public void test() throws Exception {
- Connector c = getConnector();
- c.tableOperations().create("test_ingest");
- c.tableOperations().setProperty("test_ingest", Property.TABLE_SPLIT_THRESHOLD.getKey(), "500K");
- Process ingest = cluster.exec(TestIngest.class,
- "-u", "root", "-p", ROOT_PASSWORD,
- "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(),
- "--rows", "" + IOPTS.rows);
+ final Connector c = getConnector();
+ final String tableName = getUniqueNames(1)[0];
+ final PasswordToken token = (PasswordToken) getToken();
+ c.tableOperations().create(tableName);
+ c.tableOperations().setProperty(tableName, Property.TABLE_SPLIT_THRESHOLD.getKey(), "500K");
+ final ClusterControl control = getCluster().getClusterControl();
+ Future<Integer> retCode = svc.submit(new Callable<Integer>() {
+ @Override
+ public Integer call() {
+ try {
+ return control.exec(TestIngest.class,
+ new String[] {"-u", "root", "-p", new String(token.getPassword(), Charsets.UTF_8), "-i", cluster.getInstanceName(), "-z", cluster.getZooKeepers(),
+ "--rows", "" + IOPTS.rows, "--table", tableName});
+ } catch (Exception e) {
+ log.error("Error running TestIngest", e);
+ return -1;
+ }
+ }
+ });
+
for (int i = 0; i < 2; i++) {
- UtilWaitThread.sleep(10*1000);
- cluster.killProcess(ServerType.TABLET_SERVER, cluster.getProcesses().get(ServerType.TABLET_SERVER).iterator().next());
- cluster.start();
+ UtilWaitThread.sleep(10 * 1000);
+ control.stopAllServers(ServerType.TABLET_SERVER);
+ control.startAllServers(ServerType.TABLET_SERVER);
}
- assertEquals(0, ingest.waitFor());
+ assertEquals(0, retCode.get().intValue());
- VOPTS.tableName = tableName;
++ VOPTS.setTableName(tableName);
VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
}
-
+
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/ScanIteratorIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/ScanRangeIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/ScanSessionTimeOutIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/SimpleMacIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/SimpleMacIT.java
index 3f04b94,b2667e8..34cc772
--- a/test/src/test/java/org/apache/accumulo/test/functional/SimpleMacIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/SimpleMacIT.java
@@@ -41,11 -40,13 +44,15 @@@ import org.junit.BeforeClass
/**
* An implementation of {@link AbstractMacIT} for test cases that do not need to know any special details of {@link MiniAccumuloCluster}. Tests which extend
* this class should be runnable on any instance of Accumulo, given a root connector.
+ *
+ * New tests should be written using {@link AccumuloClusterIT}. To obtain the same semantics (shared instance across methods in a class), extend
+ * {@link AccumuloIT} and use {@link MiniClusterHarness} to create a MiniAccumuloCluster properly configured for the environment.
*/
+ @Deprecated
public class SimpleMacIT extends AbstractMacIT {
- public static final Logger log = Logger.getLogger(SimpleMacIT.class);
+ protected static final Logger log = Logger.getLogger(SimpleMacIT.class);
+
+ private static final String INSTANCE_NAME = "instance1";
private static File folder;
private static MiniAccumuloClusterImpl cluster = null;
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/SplitIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/SplitIT.java
index 6203523,66d80fa..22c509b
--- a/test/src/test/java/org/apache/accumulo/test/functional/SplitIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/SplitIT.java
@@@ -61,17 -124,22 +124,22 @@@ public class SplitIT extends AccumuloCl
@Test
public void tabletShouldSplit() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
- c.tableOperations().setProperty("test_ingest", Property.TABLE_SPLIT_THRESHOLD.getKey(), "256K");
- c.tableOperations().setProperty("test_ingest", Property.TABLE_FILE_COMPRESSED_BLOCK_SIZE.getKey(), "1K");
+ String table = getUniqueNames(1)[0];
+ c.tableOperations().create(table);
+ c.tableOperations().setProperty(table, Property.TABLE_SPLIT_THRESHOLD.getKey(), "256K");
+ c.tableOperations().setProperty(table, Property.TABLE_FILE_COMPRESSED_BLOCK_SIZE.getKey(), "1K");
TestIngest.Opts opts = new TestIngest.Opts();
opts.rows = 100000;
- opts.tableName = table;
++ opts.setTableName(table);
TestIngest.ingest(c, opts, new BatchWriterOpts());
VerifyIngest.Opts vopts = new VerifyIngest.Opts();
vopts.rows = opts.rows;
- vopts.tableName = table;
++ vopts.setTableName(table);
VerifyIngest.verifyIngest(c, vopts, new ScannerOpts());
- UtilWaitThread.sleep(15 * 1000);
- String id = c.tableOperations().tableIdMap().get("test_ingest");
+ while (c.tableOperations().listSplits(table).size() < 10) {
+ UtilWaitThread.sleep(15 * 1000);
+ }
+ String id = c.tableOperations().tableIdMap().get(table);
Scanner s = c.createScanner(MetadataTable.NAME, Authorizations.EMPTY);
KeyExtent extent = new KeyExtent(new Text(id), null, null);
s.setRange(extent.toMetadataRange());
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/TableIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/TabletIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/VisibilityIT.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/WriteAheadLogIT.java
----------------------------------------------------------------------
diff --cc test/src/test/java/org/apache/accumulo/test/functional/WriteAheadLogIT.java
index af6eca5,07218ad..2f41323
--- a/test/src/test/java/org/apache/accumulo/test/functional/WriteAheadLogIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/WriteAheadLogIT.java
@@@ -58,20 -54,18 +54,18 @@@ public class WriteAheadLogIT extends Ac
@Test
public void test() throws Exception {
Connector c = getConnector();
- c.tableOperations().create("test_ingest");
- c.tableOperations().setProperty("test_ingest", Property.TABLE_SPLIT_THRESHOLD.getKey(), "750K");
+ String tableName = getUniqueNames(1)[0];
+ c.tableOperations().create(tableName);
+ c.tableOperations().setProperty(tableName, Property.TABLE_SPLIT_THRESHOLD.getKey(), "750K");
TestIngest.Opts opts = new TestIngest.Opts();
- opts.tableName = tableName;
++ opts.setTableName(tableName);
TestIngest.ingest(c, opts, new BatchWriterOpts());
VerifyIngest.Opts vopts = new VerifyIngest.Opts();
- vopts.tableName = tableName;
++ vopts.setTableName(tableName);
VerifyIngest.verifyIngest(c, vopts, new ScannerOpts());
- Map<ServerType,Collection<ProcessReference>> processes = cluster.getProcesses();
- for (ProcessReference tserver : processes.get(ServerType.TABLET_SERVER)) {
- cluster.killProcess(ServerType.TABLET_SERVER, tserver);
- }
- assertEquals(0, cluster.getProcesses().get(ServerType.TABLET_SERVER).size());
- cluster.start();
+ getCluster().getClusterControl().stopAllServers(ServerType.TABLET_SERVER);
+ getCluster().getClusterControl().startAllServers(ServerType.TABLET_SERVER);
VerifyIngest.verifyIngest(c, vopts, new ScannerOpts());
- assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
}
-
+
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/74e7103f/test/src/test/java/org/apache/accumulo/test/functional/WriteLotsIT.java
----------------------------------------------------------------------