diff --git a/hbase-common/pom.xml b/hbase-common/pom.xml
index f9d039a5ba53..d11bf7905048 100644
--- a/hbase-common/pom.xml
+++ b/hbase-common/pom.xml
@@ -216,6 +216,10 @@
log4j
log4j
+
+ junit
+ junit
+
diff --git a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseCommonTestingUtility.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseCommonTestingUtility.java
similarity index 100%
rename from hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseCommonTestingUtility.java
rename to hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseCommonTestingUtility.java
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseInterfaceAudience.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseInterfaceAudience.java
index 12b8398362ae..4117e0d9febd 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseInterfaceAudience.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseInterfaceAudience.java
@@ -58,4 +58,9 @@ private HBaseInterfaceAudience(){}
* Denotes classes that can be used to build custom authentication solutions.
*/
public static final String AUTHENTICATION = "Authentication";
+
+ /**
+ * Denotes classes that are being used to build Custom Chaos Monkey.
+ */
+ public static final String CHAOS = "ChaosMonkey";
}
diff --git a/hbase-common/src/test/java/org/apache/hadoop/hbase/Waiter.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/Waiter.java
similarity index 100%
rename from hbase-common/src/test/java/org/apache/hadoop/hbase/Waiter.java
rename to hbase-common/src/main/java/org/apache/hadoop/hbase/Waiter.java
diff --git a/hbase-hadoop-compat/src/test/java/org/apache/hadoop/hbase/test/MetricsAssertHelper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/test/MetricsAssertHelper.java
similarity index 98%
rename from hbase-hadoop-compat/src/test/java/org/apache/hadoop/hbase/test/MetricsAssertHelper.java
rename to hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/test/MetricsAssertHelper.java
index 52e0d091279f..967dd95a32de 100644
--- a/hbase-hadoop-compat/src/test/java/org/apache/hadoop/hbase/test/MetricsAssertHelper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/test/MetricsAssertHelper.java
@@ -19,8 +19,10 @@
package org.apache.hadoop.hbase.test;
import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
/** Interface of a class to make assertions about metrics values. */
+@InterfaceAudience.Private
public interface MetricsAssertHelper {
/**
diff --git a/hbase-http/pom.xml b/hbase-http/pom.xml
index 0bf21d292708..0d059e5d3b3b 100644
--- a/hbase-http/pom.xml
+++ b/hbase-http/pom.xml
@@ -226,6 +226,11 @@
bcprov-jdk15on
test
+
+ org.bouncycastle
+ bcprov-jdk15on
+ compile
+
org.apache.kerby
kerb-core
diff --git a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/ssl/KeyStoreTestUtil.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/ssl/KeyStoreTestUtil.java
similarity index 99%
rename from hbase-http/src/test/java/org/apache/hadoop/hbase/http/ssl/KeyStoreTestUtil.java
rename to hbase-http/src/main/java/org/apache/hadoop/hbase/http/ssl/KeyStoreTestUtil.java
index c8abd9c6cebc..cc08e4e8c97b 100644
--- a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/ssl/KeyStoreTestUtil.java
+++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/ssl/KeyStoreTestUtil.java
@@ -46,8 +46,10 @@
import org.apache.hadoop.hbase.HBaseCommonTestingUtility;
import org.apache.hadoop.security.ssl.FileBasedKeyStoresFactory;
import org.apache.hadoop.security.ssl.SSLFactory;
+import org.apache.yetus.audience.InterfaceAudience;
import org.bouncycastle.x509.X509V1CertificateGenerator;
+@InterfaceAudience.Private
public final class KeyStoreTestUtil {
private KeyStoreTestUtil() {
}
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/ClusterManager.java
similarity index 94%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/ClusterManager.java
index 6356345aa1aa..878268b519d1 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/ClusterManager.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/ClusterManager.java
@@ -22,15 +22,16 @@
import org.apache.hadoop.conf.Configurable;
import org.apache.yetus.audience.InterfaceAudience;
-
+import org.apache.yetus.audience.InterfaceStability;
/**
* ClusterManager is an api to manage servers in a distributed environment. It provides services
* for starting / stopping / killing Hadoop/HBase daemons. Concrete implementations provide actual
* functionality for carrying out deployment-specific tasks.
*/
-@InterfaceAudience.Private
-interface ClusterManager extends Configurable {
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
+public interface ClusterManager extends Configurable {
/**
* Type of the service daemon
*/
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
similarity index 99%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
index 796bc1f27e00..550db91dda29 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
@@ -36,12 +36,14 @@
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.Threads;
import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
/**
* Manages the interactions with an already deployed distributed cluster (as opposed to
* a pseudo-distributed, or mini/local cluster). This is used by integration and system tests.
*/
-@InterfaceAudience.Private
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class DistributedHBaseCluster extends HBaseCluster {
private Admin admin;
private final Connection connection;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/HBaseClusterManager.java
similarity index 99%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/HBaseClusterManager.java
index 2f75c731bffa..701648a0354c 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/HBaseClusterManager.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/HBaseClusterManager.java
@@ -33,6 +33,7 @@
import org.apache.hadoop.hbase.util.RetryCounterFactory;
import org.apache.hadoop.util.Shell;
import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,7 +44,8 @@
* servers on the remote machines (for example, the test user could be the same user as the
* user the daemon is running as)
*/
-@InterfaceAudience.Private
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class HBaseClusterManager extends Configured implements ClusterManager {
private static final String SIGKILL = "SIGKILL";
private static final String SIGSTOP = "SIGSTOP";
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/IntegrationTestBase.java
similarity index 97%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/IntegrationTestBase.java
index a69975c36c38..33b038139988 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/IntegrationTestBase.java
@@ -29,6 +29,8 @@
import org.apache.hadoop.hbase.chaos.factories.MonkeyFactory;
import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey;
import org.apache.hadoop.hbase.util.AbstractHBaseTool;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.junit.After;
import org.junit.Before;
import org.slf4j.Logger;
@@ -44,6 +46,8 @@
* -monkeyProps <arg> The properties file for specifying chaos monkey properties.
* -ncc Option to not clean up the cluster at the end.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public abstract class IntegrationTestBase extends AbstractHBaseTool {
public static final String NO_CLUSTER_CLEANUP_LONG_OPT = "noClusterCleanUp";
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestingUtility.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/IntegrationTestingUtility.java
similarity index 97%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestingUtility.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/IntegrationTestingUtility.java
index a9e555eaec95..ff175ea4a483 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestingUtility.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/IntegrationTestingUtility.java
@@ -21,6 +21,8 @@
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.util.ReflectionUtils;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
/**
* Facility for integration/system tests. This extends {@link HBaseTestingUtility}
@@ -39,6 +41,8 @@
* via {@link #initializeCluster(int)}. Individual tests should not directly call
* {@link #setUseDistributedCluster(Configuration)}.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class IntegrationTestingUtility extends HBaseTestingUtility {
public IntegrationTestingUtility() {
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/Action.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/Action.java
similarity index 98%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/Action.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/Action.java
index 1120ae4f6ba3..df6dd101d47e 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/Action.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/Action.java
@@ -33,6 +33,7 @@
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.ClusterMetrics;
import org.apache.hadoop.hbase.HBaseCluster;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.IntegrationTestBase;
@@ -49,12 +50,16 @@
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A (possibly mischievous) action that the ChaosMonkey can perform.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class Action {
public static final String KILL_MASTER_TIMEOUT_KEY =
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddCPULoadAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/AddCPULoadAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddCPULoadAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/AddCPULoadAction.java
index 9d6437e431ba..f619a3518cf8 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddCPULoadAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/AddCPULoadAction.java
@@ -20,14 +20,19 @@
import java.io.IOException;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that adds high cpu load to a random regionserver for a given duration
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class AddCPULoadAction extends SudoCommandAction {
protected static final Logger LOG = LoggerFactory.getLogger(AddCPULoadAction.class);
private static final String CPU_LOAD_COMMAND =
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java
index a01222aee945..a4a2cf3b6813 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/AddColumnAction.java
@@ -21,18 +21,23 @@
import java.io.IOException;
import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action the adds a column family to a table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class AddColumnAction extends Action {
private final TableName tableName;
private Admin admin;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java
similarity index 92%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java
index 2026a913a525..beead72aa30a 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/BatchRestartRsAction.java
@@ -22,14 +22,19 @@
import java.util.List;
import java.util.Set;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Restarts a ratio of the running regionservers at the same time
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class BatchRestartRsAction extends RestartActionBaseAction {
float ratio; //ratio of regionservers to restart
private static final Logger LOG =
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java
similarity index 90%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java
index e76675aa4b1c..74adcb077d2d 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java
@@ -20,9 +20,12 @@
import java.util.Random;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.regionserver.BloomType;
import org.apache.hadoop.hbase.util.BloomFilterUtil;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,6 +33,8 @@
* Action that tries to adjust the bloom filter setting on all the columns of a
* table
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class ChangeBloomFilterAction extends Action {
private final long sleepTime;
private final TableName tableName;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java
similarity index 92%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java
index 533028428f67..afac8af23e1b 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java
@@ -21,15 +21,20 @@
import java.io.IOException;
import java.util.Random;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
import org.apache.hadoop.io.compress.Compressor;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that changes the compression algorithm on a column family from a list of tables.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class ChangeCompressionAction extends Action {
private final TableName tableName;
private final Random random;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java
similarity index 89%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java
index 55a308ce3868..6b32b30249b1 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java
@@ -21,14 +21,19 @@
import java.io.IOException;
import java.util.Random;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that changes the encoding on a column family from a list of tables.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class ChangeEncodingAction extends Action {
private final TableName tableName;
private final Random random;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.java
index 72ff50fc0929..d3558bbe6fe2 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.java
@@ -19,6 +19,7 @@
import java.util.Random;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
@@ -27,9 +28,13 @@
import org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy;
import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy;
import org.apache.hadoop.hbase.regionserver.IncreasingToUpperBoundRegionSplitPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class ChangeSplitPolicyAction extends Action {
private static final Logger LOG = LoggerFactory.getLogger(ChangeSplitPolicyAction.class);
private final TableName tableName;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java
similarity index 88%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java
index 18dba94a3031..7af5dd7e1fc0 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java
@@ -21,7 +21,10 @@
import java.io.IOException;
import java.util.Random;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.TableName;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,6 +33,8 @@
*
* Always keeps at least 1 as the number of versions.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class ChangeVersionsAction extends Action {
private final TableName tableName;
private static final Logger LOG = LoggerFactory.getLogger(ChangeVersionsAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactMobAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CompactMobAction.java
similarity index 90%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactMobAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CompactMobAction.java
index 6ac71d5739a0..f5ce538fc150 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactMobAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CompactMobAction.java
@@ -19,16 +19,21 @@
package org.apache.hadoop.hbase.chaos.actions;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.CompactType;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that queues a table compaction.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class CompactMobAction extends Action {
private final TableName tableName;
private final int majorRatio;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java
similarity index 92%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java
index 9a46147014c6..48aacd4b23e4 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CompactRandomRegionOfTableAction.java
@@ -21,17 +21,22 @@
import java.util.List;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Region that queues a compaction of a random region from the table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class CompactRandomRegionOfTableAction extends Action {
private final int majorRatio;
private final long sleepTime;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java
similarity index 90%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java
index c05d43b89f57..abaeac577f15 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CompactTableAction.java
@@ -19,15 +19,20 @@
package org.apache.hadoop.hbase.chaos.actions;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that queues a table compaction.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class CompactTableAction extends Action {
private final TableName tableName;
private final int majorRatio;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CorruptDataFilesAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CorruptDataFilesAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CorruptDataFilesAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CorruptDataFilesAction.java
index 83e8fe08a495..2246a24946b3 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CorruptDataFilesAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CorruptDataFilesAction.java
@@ -24,14 +24,19 @@
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.io.hfile.HFile;
import org.apache.hadoop.hbase.util.CommonFSUtils;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action corrupts HFiles with a certain chance.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class CorruptDataFilesAction extends Action {
private static final Logger LOG = LoggerFactory.getLogger(CorruptDataFilesAction.class);
private float chance;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CorruptPacketsCommandAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CorruptPacketsCommandAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CorruptPacketsCommandAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CorruptPacketsCommandAction.java
index 965bcbb6d417..da68f4adf291 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/CorruptPacketsCommandAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/CorruptPacketsCommandAction.java
@@ -20,8 +20,11 @@
import java.io.IOException;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,6 +32,8 @@
*
* Corrupt network packets on a random regionserver.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class CorruptPacketsCommandAction extends TCCommandAction {
private static final Logger LOG = LoggerFactory.getLogger(CorruptPacketsCommandAction.class);
private float ratio;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java
similarity index 92%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java
index 4610ef0de7de..85970c9e8544 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DecreaseMaxHFileSizeAction.java
@@ -21,12 +21,17 @@
import java.io.IOException;
import java.util.Random;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class DecreaseMaxHFileSizeAction extends Action {
private static final long minFileSize = 1 * 1024 * 1024 * 1024L;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DelayPacketsCommandAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DelayPacketsCommandAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DelayPacketsCommandAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DelayPacketsCommandAction.java
index 38578d8690e3..e11c1e4c73f5 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DelayPacketsCommandAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DelayPacketsCommandAction.java
@@ -20,14 +20,19 @@
import java.io.IOException;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action adds latency to communication on a random regionserver.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class DelayPacketsCommandAction extends TCCommandAction {
private static final Logger LOG = LoggerFactory.getLogger(DelayPacketsCommandAction.class);
private long delay;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DeleteDataFilesAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DeleteDataFilesAction.java
similarity index 90%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DeleteDataFilesAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DeleteDataFilesAction.java
index 4919adce490c..f3cc138187fa 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DeleteDataFilesAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DeleteDataFilesAction.java
@@ -23,14 +23,19 @@
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.io.hfile.HFile;
import org.apache.hadoop.hbase.util.CommonFSUtils;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action deletes HFiles with a certain chance.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class DeleteDataFilesAction extends Action {
private static final Logger LOG = LoggerFactory.getLogger(DeleteDataFilesAction.class);
private float chance;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DumpClusterStatusAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DumpClusterStatusAction.java
similarity index 84%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DumpClusterStatusAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DumpClusterStatusAction.java
index 3c70af0349c0..640a0d51a06f 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DumpClusterStatusAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DumpClusterStatusAction.java
@@ -20,12 +20,17 @@
import java.io.IOException;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action to dump the cluster status.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class DumpClusterStatusAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(DumpClusterStatusAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DuplicatePacketsCommandAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DuplicatePacketsCommandAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DuplicatePacketsCommandAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DuplicatePacketsCommandAction.java
index 7ed74ec4cde4..37dbe6e0364c 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/DuplicatePacketsCommandAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/DuplicatePacketsCommandAction.java
@@ -20,8 +20,11 @@
import java.io.IOException;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,6 +32,8 @@
*
* Duplicate network packets on a random regionserver.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class DuplicatePacketsCommandAction extends TCCommandAction {
private static final Logger LOG = LoggerFactory.getLogger(DuplicatePacketsCommandAction.class);
private float ratio;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FillDiskCommandAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/FillDiskCommandAction.java
similarity index 92%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FillDiskCommandAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/FillDiskCommandAction.java
index f5ca1d7f1944..7707e4523711 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FillDiskCommandAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/FillDiskCommandAction.java
@@ -20,8 +20,11 @@
import java.io.IOException;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,6 +32,8 @@
*
* Fill the disk on a random regionserver.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class FillDiskCommandAction extends SudoCommandAction {
private static final Logger LOG = LoggerFactory.getLogger(FillDiskCommandAction.class);
private long size;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java
index 083423c4ca99..045038746dea 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java
@@ -19,17 +19,22 @@
package org.apache.hadoop.hbase.chaos.actions;
import java.util.List;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to flush a random region of a table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class FlushRandomRegionOfTableAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(FlushRandomRegionOfTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java
similarity index 89%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java
index 93f7347ac93d..053243f2aab2 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/FlushTableAction.java
@@ -18,15 +18,20 @@
package org.apache.hadoop.hbase.chaos.actions;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to flush a table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class FlushTableAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(FlushTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ForceBalancerAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ForceBalancerAction.java
similarity index 83%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ForceBalancerAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ForceBalancerAction.java
index d75475432a12..51870de1ae62 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ForceBalancerAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ForceBalancerAction.java
@@ -18,12 +18,17 @@
package org.apache.hadoop.hbase.chaos.actions;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to force a balancer run.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class ForceBalancerAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(ForceBalancerAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/GracefulRollingRestartRsAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/GracefulRollingRestartRsAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/GracefulRollingRestartRsAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/GracefulRollingRestartRsAction.java
index 82005bbbd4e7..224cd3eb844e 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/GracefulRollingRestartRsAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/GracefulRollingRestartRsAction.java
@@ -22,9 +22,12 @@
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.util.RegionMover;
import org.apache.hadoop.util.Shell;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,6 +35,8 @@
* Gracefully restarts every regionserver in a rolling fashion. At each step, it unloads,
* restarts the loads every rs server sleeping randomly (0-sleepTime) in between servers.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class GracefulRollingRestartRsAction extends RestartActionBaseAction {
private static final Logger LOG = LoggerFactory.getLogger(GracefulRollingRestartRsAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/LosePacketsCommandAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/LosePacketsCommandAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/LosePacketsCommandAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/LosePacketsCommandAction.java
index 8b09daf4cf88..7a982aace66f 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/LosePacketsCommandAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/LosePacketsCommandAction.java
@@ -20,8 +20,11 @@
import java.io.IOException;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,6 +32,8 @@
*
* Lose network packets on a random regionserver.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class LosePacketsCommandAction extends TCCommandAction {
private static final Logger LOG = LoggerFactory.getLogger(LosePacketsCommandAction.class);
private float ratio;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java
index 085413d6e6fa..f784c4e04bf1 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/MergeRandomAdjacentRegionsOfTableAction.java
@@ -20,16 +20,21 @@
import java.util.List;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action to merge regions of a table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class MergeRandomAdjacentRegionsOfTableAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(MergeRandomAdjacentRegionsOfTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java
index cdd2f20aed82..ba140cf6ceae 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/MoveRandomRegionOfTableAction.java
@@ -20,17 +20,22 @@
import java.util.List;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to move a random region of a table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class MoveRandomRegionOfTableAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(MoveRandomRegionOfTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java
similarity index 93%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java
index 1c1f07b3df58..1aff0f88f317 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/MoveRegionsOfTableAction.java
@@ -24,17 +24,22 @@
import java.util.List;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.chaos.factories.MonkeyConstants;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to move every region of a table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class MoveRegionsOfTableAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(MoveRegionsOfTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java
similarity index 92%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java
index 37e540104d68..3adbda90d314 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RemoveColumnAction.java
@@ -22,18 +22,23 @@
import java.util.Random;
import java.util.Set;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that removes a column family.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RemoveColumnAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(RemoveColumnAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ReorderPacketsCommandAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ReorderPacketsCommandAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ReorderPacketsCommandAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ReorderPacketsCommandAction.java
index 1bb7969bb707..afe7b8f74357 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/ReorderPacketsCommandAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/ReorderPacketsCommandAction.java
@@ -20,8 +20,11 @@
import java.io.IOException;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,6 +32,8 @@
*
* Reorder network packets on a random regionserver.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class ReorderPacketsCommandAction extends TCCommandAction {
private static final Logger LOG = LoggerFactory.getLogger(ReorderPacketsCommandAction.class);
private float ratio;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartActionBaseAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartActionBaseAction.java
similarity index 94%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartActionBaseAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartActionBaseAction.java
index c53de9082261..da891a30bab3 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartActionBaseAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartActionBaseAction.java
@@ -20,14 +20,19 @@
import java.io.IOException;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.util.Threads;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Base class for restarting HBaseServer's
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RestartActionBaseAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(RestartActionBaseAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveMasterAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveMasterAction.java
similarity index 85%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveMasterAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveMasterAction.java
index ddd719a6e67a..bfe2802e831d 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveMasterAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveMasterAction.java
@@ -18,13 +18,18 @@
package org.apache.hadoop.hbase.chaos.actions;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to restart the active master.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RestartActiveMasterAction extends RestartActionBaseAction {
private static final Logger LOG = LoggerFactory.getLogger(RestartActionBaseAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveNameNodeAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveNameNodeAction.java
similarity index 93%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveNameNodeAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveNameNodeAction.java
index 2fc64e68a2cf..f1c141afb7ec 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveNameNodeAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartActiveNameNodeAction.java
@@ -21,6 +21,7 @@
import java.util.List;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper;
@@ -30,12 +31,16 @@
import org.apache.hadoop.hdfs.DFSUtil;
import org.apache.hadoop.hdfs.HAUtil;
import org.apache.hadoop.hdfs.server.namenode.ha.proto.HAZKInfoProtos.ActiveNodeInfo;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to restart the active namenode.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RestartActiveNameNodeAction extends RestartActionBaseAction {
private static final Logger LOG =
LoggerFactory.getLogger(RestartActiveNameNodeAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.java
similarity index 90%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.java
index 5824a42fca8c..9a2a173db898 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.java
@@ -22,6 +22,7 @@
import java.util.LinkedList;
import java.util.List;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.util.FSUtils;
@@ -29,12 +30,16 @@
import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.hdfs.protocol.DatanodeInfo;
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that restarts a random datanode.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RestartRandomDataNodeAction extends RestartActionBaseAction {
private static final Logger LOG = LoggerFactory.getLogger(RestartRandomDataNodeAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsAction.java
similarity index 86%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsAction.java
index 48458b68dcf4..1bc6223c674b 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsAction.java
@@ -18,14 +18,19 @@
package org.apache.hadoop.hbase.chaos.actions;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that restarts a random HRegionServer
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RestartRandomRsAction extends RestartActionBaseAction {
private static final Logger LOG = LoggerFactory.getLogger(RestartRandomRsAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsExceptMetaAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsExceptMetaAction.java
similarity index 85%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsExceptMetaAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsExceptMetaAction.java
index b78144a1ca2f..13ac37eaabca 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsExceptMetaAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomRsExceptMetaAction.java
@@ -18,9 +18,14 @@
package org.apache.hadoop.hbase.chaos.actions;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RestartRandomRsExceptMetaAction extends RestartRandomRsAction {
public RestartRandomRsExceptMetaAction(long sleepTime) {
super(sleepTime);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomZKNodeAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomZKNodeAction.java
similarity index 86%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomZKNodeAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomZKNodeAction.java
index 3ed7a0d92379..560ebe3ac0ee 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomZKNodeAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRandomZKNodeAction.java
@@ -18,15 +18,20 @@
package org.apache.hadoop.hbase.chaos.actions;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.zookeeper.ZKServerTool;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that restarts a random zookeeper node.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RestartRandomZKNodeAction extends RestartActionBaseAction {
private static final Logger LOG = LoggerFactory.getLogger(RestartRandomZKNodeAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingMetaAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingMetaAction.java
similarity index 88%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingMetaAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingMetaAction.java
index aeecf0a891fe..97adc059492f 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingMetaAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingMetaAction.java
@@ -19,13 +19,18 @@
package org.apache.hadoop.hbase.chaos.actions;
import org.apache.hadoop.hbase.ClusterMetrics;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to restart the HRegionServer holding Meta.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RestartRsHoldingMetaAction extends RestartActionBaseAction {
private static final Logger LOG =
LoggerFactory.getLogger(RestartRsHoldingMetaAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingTableAction.java
similarity index 87%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingTableAction.java
index a63c672db39e..80b4c5a81373 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RestartRsHoldingTableAction.java
@@ -21,14 +21,19 @@
import java.util.List;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.client.RegionLocator;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that restarts an HRegionServer holding one of the regions of the table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RestartRsHoldingTableAction extends RestartActionBaseAction {
private static final Logger LOG =
LoggerFactory.getLogger(RestartRsHoldingTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.java
similarity index 95%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.java
index c76fcb1904f3..d57153960657 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.java
@@ -25,8 +25,11 @@
import java.util.Queue;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,6 +39,8 @@
* The parameter maxDeadServers limits the maximum number of servers that
* can be down at the same time during rolling restarts.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RollingBatchRestartRsAction extends BatchRestartRsAction {
private static final Logger LOG = LoggerFactory.getLogger(RollingBatchRestartRsAction.class);
protected int maxDeadServers; // number of maximum dead servers at any given time. Defaults to 5
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchSuspendResumeRsAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchSuspendResumeRsAction.java
similarity index 94%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchSuspendResumeRsAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchSuspendResumeRsAction.java
index d4ad3e40b5f8..81f38b7ea6a7 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchSuspendResumeRsAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/RollingBatchSuspendResumeRsAction.java
@@ -24,10 +24,13 @@
import java.util.Queue;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.util.Threads;
import org.apache.hadoop.util.Shell;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,6 +40,8 @@
* maxSuspendedServers limits the maximum number of servers that can be down at the same time
* during rolling restarts.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class RollingBatchSuspendResumeRsAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(RollingBatchSuspendResumeRsAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java
similarity index 89%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java
index 6ee9b57b8a7c..119ea7b61ffd 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SnapshotTableAction.java
@@ -18,15 +18,20 @@
package org.apache.hadoop.hbase.chaos.actions;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to take a snapshot of a table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class SnapshotTableAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(SnapshotTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.java
similarity index 90%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.java
index 10d544051601..456ec2c2d35e 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.java
@@ -20,13 +20,17 @@
import java.io.IOException;
import java.util.concurrent.ThreadLocalRandom;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class SplitAllRegionOfTableAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(SplitAllRegionOfTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java
index b4873753bb35..a4c9edbce8dd 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.java
@@ -20,17 +20,22 @@
import java.util.List;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to split a random region of a table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class SplitRandomRegionOfTableAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(SplitRandomRegionOfTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SudoCommandAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SudoCommandAction.java
similarity index 90%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SudoCommandAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SudoCommandAction.java
index 6092a5dbbc6a..10d100908557 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/SudoCommandAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/SudoCommandAction.java
@@ -23,12 +23,17 @@
import org.apache.hadoop.hbase.DistributedHBaseCluster;
import org.apache.hadoop.hbase.HBaseCluster;
import org.apache.hadoop.hbase.HBaseClusterManager;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Base class for performing Actions based on linux commands requiring sudo privileges
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
abstract public class SudoCommandAction extends Action {
private static final Logger LOG = LoggerFactory.getLogger(SudoCommandAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/TCCommandAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/TCCommandAction.java
similarity index 82%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/TCCommandAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/TCCommandAction.java
index 9444f876f72a..dc8affe26396 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/TCCommandAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/TCCommandAction.java
@@ -18,9 +18,15 @@
package org.apache.hadoop.hbase.chaos.actions;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
+
/**
* Base class for tc command actions
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
abstract public class TCCommandAction extends SudoCommandAction {
protected static final String ADD = "add";
protected static final String DELETE = "del";
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.java
similarity index 88%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.java
index b79dafa14e82..5322f2839438 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.java
@@ -20,15 +20,20 @@
import java.util.Random;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to truncate of a table.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class TruncateTableAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(TruncateTableAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceKillAndRebalanceAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceKillAndRebalanceAction.java
similarity index 94%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceKillAndRebalanceAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceKillAndRebalanceAction.java
index 5e5504af10ee..61f1fcf317ab 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceKillAndRebalanceAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceKillAndRebalanceAction.java
@@ -26,12 +26,17 @@
import org.apache.commons.lang3.RandomUtils;
import org.apache.hadoop.hbase.ClusterMetrics;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.junit.Assert;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** This action is too specific to put in ChaosMonkey; put it here */
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class UnbalanceKillAndRebalanceAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(UnbalanceKillAndRebalanceAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceRegionsAction.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceRegionsAction.java
similarity index 91%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceRegionsAction.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceRegionsAction.java
index 3f2a3a1b518a..35779965c28d 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceRegionsAction.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/actions/UnbalanceRegionsAction.java
@@ -24,13 +24,18 @@
import org.apache.commons.lang3.RandomUtils;
import org.apache.hadoop.hbase.ClusterMetrics;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.ServerName;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Action that tries to unbalance the regions of a cluster.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class UnbalanceRegionsAction extends Action {
private static final Logger LOG =
LoggerFactory.getLogger(UnbalanceRegionsAction.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/CalmMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/CalmMonkeyFactory.java
similarity index 93%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/CalmMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/CalmMonkeyFactory.java
index e10958572274..35c08bdb0e1b 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/CalmMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/CalmMonkeyFactory.java
@@ -20,11 +20,12 @@
import org.apache.hadoop.hbase.chaos.monkies.CalmChaosMonkey;
import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey;
-
+import org.apache.yetus.audience.InterfaceAudience;
/**
* Factory to create a calm ChaosMonkey.
*/
+@InterfaceAudience.Private
public class CalmMonkeyFactory extends MonkeyFactory {
@Override
public ChaosMonkey build() {
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java
similarity index 97%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java
index 069b604ac27c..35e5ecfb72da 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/DataIssuesMonkeyFactory.java
@@ -25,12 +25,14 @@
import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* A chaos monkey to delete and corrupt regionserver data, requires a user with
* passwordless ssh access to the cluster and sudo privileges.
* Highly destructive
*/
+@InterfaceAudience.Private
public class DataIssuesMonkeyFactory extends MonkeyFactory {
private long action1Period;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java
similarity index 98%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java
index fcf2605fc0af..a0475858584d 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/DistributedIssuesMonkeyFactory.java
@@ -30,11 +30,13 @@
import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* A chaos monkey to create distributed cluster related issues, requires a user with
* passwordless ssh access to the cluster and sudo privileges.
*/
+@InterfaceAudience.Private
public class DistributedIssuesMonkeyFactory extends MonkeyFactory {
private long action1Period;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java
similarity index 97%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java
index 7f81523374fe..2d303fc05cd2 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java
@@ -24,11 +24,13 @@
import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* A chaos monkey to kill the active master periodically. Can be run in single master
* or multi master setup.
*/
+@InterfaceAudience.Private
public class MasterKillingMonkeyFactory extends MonkeyFactory {
private long action1Period;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java
similarity index 98%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java
index 400e59f98b1b..eecdaf6d5fb8 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java
@@ -39,10 +39,12 @@
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
import org.apache.hadoop.hbase.chaos.policies.TwoConcurrentActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* This is a copy of NoKillMonkeyFactory that also does mob compactions.
*/
+@InterfaceAudience.Private
public class MobNoKillMonkeyFactory extends MonkeyFactory {
@Override public ChaosMonkey build() {
Action[] actions1 = new Action[] {
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java
similarity index 99%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java
index 2ab33f4aa5d8..5b7e8338330c 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java
@@ -45,10 +45,12 @@
import org.apache.hadoop.hbase.chaos.policies.CompositeSequentialPolicy;
import org.apache.hadoop.hbase.chaos.policies.DoActionsOncePolicy;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* This is a copy of SlowDeterministicMonkeyFactory that also does mob compactions.
*/
+@InterfaceAudience.Private
public class MobSlowDeterministicMonkeyFactory extends MonkeyFactory {
private long action1Period;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java
similarity index 95%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java
index 6b428991ad67..a1e27308d3c4 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java
@@ -20,7 +20,12 @@
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public interface MonkeyConstants {
String PERIODIC_ACTION1_PERIOD = "sdm.action1.period";
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java
similarity index 89%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java
index 73f696824403..bcb81ab43842 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java
@@ -22,18 +22,23 @@
import java.util.Properties;
import java.util.Set;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.IntegrationTestingUtility;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey;
import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableMap;
import org.apache.hadoop.hbase.util.ReflectionUtils;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Base class of the factory that will create a ChaosMonkey.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public abstract class MonkeyFactory {
private static final Logger LOG = LoggerFactory.getLogger(MonkeyFactory.class);
@@ -80,7 +85,7 @@ public MonkeyFactory setProperties(Properties props) {
public static final String DISTRIBUTED_ISSUES = "distributedIssues";
public static final String DATA_ISSUES = "dataIssues";
- public static Map FACTORIES = ImmutableMap.builder()
+ private static Map factories = ImmutableMap.builder()
.put(CALM, new CalmMonkeyFactory())
.put(SLOW_DETERMINISTIC, new SlowDeterministicMonkeyFactory())
.put(UNBALANCE, new UnbalanceMonkeyFactory())
@@ -95,8 +100,12 @@ public MonkeyFactory setProperties(Properties props) {
.put(DATA_ISSUES, new DataIssuesMonkeyFactory())
.build();
+ private static Map getMonkeyFactoryMap() {
+ return factories;
+ }
+
public static MonkeyFactory getFactory(String factoryName) {
- MonkeyFactory fact = FACTORIES.get(factoryName);
+ MonkeyFactory fact = getMonkeyFactoryMap().get(factoryName);
if (fact == null && factoryName != null && !factoryName.isEmpty()) {
Class klass = null;
try {
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.java
similarity index 98%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.java
index efe0fe68d460..fa941308194a 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.java
@@ -39,11 +39,13 @@
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
import org.apache.hadoop.hbase.chaos.policies.TwoConcurrentActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* Monkey factory to create a ChaosMonkey that will not need access to ssh. It will not
* kill any services and it will not perform any restarts.
*/
+@InterfaceAudience.Private
public class NoKillMonkeyFactory extends MonkeyFactory {
@Override public ChaosMonkey build() {
Action[] actions1 = new Action[] {
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java
similarity index 98%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java
index 676b04d3fee3..f2f324da8eab 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/ServerAndDependenciesKillingMonkeyFactory.java
@@ -33,11 +33,13 @@
import org.apache.hadoop.hbase.chaos.policies.CompositeSequentialPolicy;
import org.apache.hadoop.hbase.chaos.policies.DoActionsOncePolicy;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* Creates ChaosMonkeys for doing server restart actions, but not
* flush / compact / snapshot kind of actions.
*/
+@InterfaceAudience.Private
public class ServerAndDependenciesKillingMonkeyFactory extends MonkeyFactory {
private long gracefulRollingRestartTSSLeepTime;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java
similarity index 97%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java
index 6a5efeda8454..fa59c9a0f1ba 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java
@@ -31,11 +31,13 @@
import org.apache.hadoop.hbase.chaos.policies.CompositeSequentialPolicy;
import org.apache.hadoop.hbase.chaos.policies.DoActionsOncePolicy;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* Creates ChaosMonkeys for doing server restart actions, but not
* flush / compact / snapshot kind of actions.
*/
+@InterfaceAudience.Private
public class ServerKillingMonkeyFactory extends MonkeyFactory {
private long gracefulRollingRestartTSSLeepTime;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java
similarity index 99%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java
index 432fd8bf0043..5301b094de8e 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java
@@ -49,7 +49,9 @@
import org.apache.hadoop.hbase.chaos.policies.CompositeSequentialPolicy;
import org.apache.hadoop.hbase.chaos.policies.DoActionsOncePolicy;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
+@InterfaceAudience.Private
public class SlowDeterministicMonkeyFactory extends MonkeyFactory {
private long action1Period;
private long action2Period;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java
similarity index 98%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java
index 16d6b29cae03..5a1720de1ca6 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java
@@ -43,7 +43,9 @@
import org.apache.hadoop.hbase.chaos.policies.CompositeSequentialPolicy;
import org.apache.hadoop.hbase.chaos.policies.DoActionsOncePolicy;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
+import org.apache.yetus.audience.InterfaceAudience;
+@InterfaceAudience.Private
public class StressAssignmentManagerMonkeyFactory extends MonkeyFactory {
private long gracefulRollingRestartTSSLeepTime;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java
similarity index 97%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java
index f9c818447264..5dbab39e8f5e 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/factories/UnbalanceMonkeyFactory.java
@@ -23,7 +23,9 @@
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.chaos.policies.PeriodicRandomActionPolicy;
import org.apache.hadoop.hbase.chaos.policies.Policy;
+import org.apache.yetus.audience.InterfaceAudience;
+@InterfaceAudience.Private
public class UnbalanceMonkeyFactory extends MonkeyFactory {
/** How often to introduce the chaos. If too frequent, sequence of kills on minicluster
* can cause test to fail when Put runs out of retries. */
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java
similarity index 83%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java
index bcf7d85ee75a..89b7579969db 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java
@@ -18,9 +18,15 @@
package org.apache.hadoop.hbase.chaos.monkies;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
+
/**
* Chaos Monkey that does nothing.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class CalmChaosMonkey extends ChaosMonkey {
@Override
public void start() throws Exception {
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java
similarity index 90%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java
index 86cbfe5c612d..082254bcb6ac 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java
@@ -18,6 +18,9 @@
package org.apache.hadoop.hbase.chaos.monkies;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.apache.hadoop.hbase.Stoppable;
/**
@@ -41,6 +44,8 @@
* ChaosMonkey class is indeed inspired by the Netflix's same-named tool:
* http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public abstract class ChaosMonkey implements Stoppable {
public abstract void start() throws Exception;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java
similarity index 95%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java
index dc2ac13c396c..91698dd63eb0 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java
@@ -25,15 +25,20 @@
import java.util.Properties;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.IntegrationTestingUtility;
import org.apache.hadoop.hbase.chaos.policies.Policy;
import org.apache.hadoop.hbase.util.Pair;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Chaos monkey that given multiple policies will run actions against the cluster.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class PolicyBasedChaosMonkey extends ChaosMonkey {
private static final Logger LOG = LoggerFactory.getLogger(PolicyBasedChaosMonkey.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/CompositeSequentialPolicy.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/CompositeSequentialPolicy.java
similarity index 86%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/CompositeSequentialPolicy.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/CompositeSequentialPolicy.java
index 4fefca802a17..77f878dcf933 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/CompositeSequentialPolicy.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/CompositeSequentialPolicy.java
@@ -20,8 +20,13 @@
import java.util.Arrays;
import java.util.List;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
/** A policy that runs multiple other policies one after the other */
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class CompositeSequentialPolicy extends Policy {
private List policies;
public CompositeSequentialPolicy(Policy... policies) {
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/DoActionsOncePolicy.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/DoActionsOncePolicy.java
similarity index 88%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/DoActionsOncePolicy.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/DoActionsOncePolicy.java
index 0d8564d355bb..8076485fa1cb 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/DoActionsOncePolicy.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/DoActionsOncePolicy.java
@@ -22,10 +22,15 @@
import java.util.Arrays;
import java.util.List;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.chaos.actions.Action;
import org.apache.hadoop.util.StringUtils;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
/** A policy which performs a sequence of actions deterministically. */
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class DoActionsOncePolicy extends PeriodicPolicy {
private List actions;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.java
similarity index 88%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.java
index 9ffef16a1a96..2c271246d513 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.java
@@ -19,9 +19,14 @@
package org.apache.hadoop.hbase.chaos.policies;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.util.Threads;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
/** A policy which does stuff every time interval. */
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public abstract class PeriodicPolicy extends Policy {
private long periodMs;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/PeriodicRandomActionPolicy.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/PeriodicRandomActionPolicy.java
similarity index 90%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/PeriodicRandomActionPolicy.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/PeriodicRandomActionPolicy.java
index a0dc89e0192d..988d648a2c1c 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/PeriodicRandomActionPolicy.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/PeriodicRandomActionPolicy.java
@@ -22,15 +22,20 @@
import java.util.Arrays;
import java.util.List;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.chaos.actions.Action;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.util.Pair;
import org.apache.hadoop.util.StringUtils;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
/**
* A policy, which picks a random action according to the given weights,
* and performs it every configurable period.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class PeriodicRandomActionPolicy extends PeriodicPolicy {
private List> actions;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/Policy.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/Policy.java
similarity index 88%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/Policy.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/Policy.java
index ad68b66a4c51..4d3e46443a37 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/Policy.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/Policy.java
@@ -17,18 +17,21 @@
*/
package org.apache.hadoop.hbase.chaos.policies;
-
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import java.util.Properties;
-
import org.apache.hadoop.hbase.IntegrationTestingUtility;
import org.apache.hadoop.hbase.chaos.actions.Action;
import org.apache.hadoop.hbase.util.StoppableImplementation;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A policy to introduce chaos to the cluster
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public abstract class Policy extends StoppableImplementation implements Runnable {
protected static final Logger LOG = LoggerFactory.getLogger(Policy.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.java
similarity index 92%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.java
index d801ba81b601..9661e6b9522b 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.java
@@ -18,10 +18,13 @@
package org.apache.hadoop.hbase.chaos.policies;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.chaos.actions.Action;
import org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey;
import org.apache.hadoop.hbase.util.Threads;
import org.apache.hadoop.util.StringUtils;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
@@ -32,6 +35,8 @@
* Chaos Monkey policy that will run two different actions at the same time.
* A random action from each array of actions will be chosen and then run in parallel.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class TwoConcurrentActionPolicy extends PeriodicPolicy {
private final Action[] actionsOne;
private final Action[] actionsTwo;
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.java
similarity index 96%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.java
index 504bd628dc0a..f5625c6a77ab 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.java
@@ -24,6 +24,7 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.IntegrationTestingUtility;
import org.apache.hadoop.hbase.TableName;
@@ -31,11 +32,15 @@
import org.apache.hadoop.hbase.chaos.monkies.ChaosMonkey;
import org.apache.hadoop.hbase.util.AbstractHBaseTool;
import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hbase.thirdparty.com.google.common.collect.Sets;
import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
+@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.CHAOS, HBaseInterfaceAudience.TOOLS})
+@InterfaceStability.Evolving
public class ChaosMonkeyRunner extends AbstractHBaseTool {
private static final Logger LOG = LoggerFactory.getLogger(ChaosMonkeyRunner.class);
diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/util/Monkeys.java b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/util/Monkeys.java
similarity index 92%
rename from hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/util/Monkeys.java
rename to hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/util/Monkeys.java
index acdd7b083757..debf33abf4f5 100644
--- a/hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/util/Monkeys.java
+++ b/hbase-it/src/main/java/org/apache/hadoop/hbase/chaos/util/Monkeys.java
@@ -26,7 +26,10 @@
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.IntegrationTestingUtility;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.yetus.audience.InterfaceStability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,6 +39,8 @@
/**
* This class can be used to control chaos monkeys life cycle.
*/
+@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CHAOS)
+@InterfaceStability.Evolving
public class Monkeys implements Closeable {
private static final Logger LOG = LoggerFactory.getLogger(Monkeys.class);
diff --git a/hbase-server/pom.xml b/hbase-server/pom.xml
index 05813f5b0673..638ad70627ca 100644
--- a/hbase-server/pom.xml
+++ b/hbase-server/pom.xml
@@ -515,6 +515,33 @@
mockito-core
test
+
+ junit
+ junit
+
+
+ org.apache.hadoop
+ hadoop-mapreduce-client-jobclient
+ ${hadoop.version}
+ tests
+
+
+ com.google.code.findbugs
+ jsr305
+
+
+
+
+ org.apache.hadoop
+ hadoop-minikdc
+ compile
+
+
+ org.apache.hadoop
+ hadoop-hdfs
+ ${hadoop.version}
+ tests
+
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseCluster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/HBaseCluster.java
similarity index 99%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseCluster.java
rename to hbase-server/src/main/java/org/apache/hadoop/hbase/HBaseCluster.java
index 85dff357ca62..fdfdb86d4d96 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseCluster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/HBaseCluster.java
@@ -51,7 +51,7 @@
* In that sense, this class does not abstract away every interface that
* MiniHBaseCluster or DistributedHBaseCluster provide.
*/
-@InterfaceAudience.Private
+@InterfaceAudience.Public
public abstract class HBaseCluster implements Closeable, Configurable {
// Log is being used in DistributedHBaseCluster class, hence keeping it as package scope
static final Logger LOG = LoggerFactory.getLogger(HBaseCluster.class.getName());
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
rename to hbase-server/src/main/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
index 834fbac77c20..d312d69035d4 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
@@ -22,6 +22,7 @@
import static org.junit.Assert.fail;
import edu.umd.cs.findbugs.annotations.Nullable;
+
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
@@ -50,6 +51,7 @@
import java.util.TreeSet;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.logging.impl.Jdk14Logger;
@@ -150,9 +152,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.impl.Log4jLoggerAdapter;
-
import org.apache.hbase.thirdparty.com.google.common.io.Closeables;
-
import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
/**
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/MiniHBaseCluster.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java
rename to hbase-server/src/main/java/org/apache/hadoop/hbase/MiniHBaseCluster.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/MockRegionServerServices.java
similarity index 99%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java
rename to hbase-server/src/main/java/org/apache/hadoop/hbase/MockRegionServerServices.java
index f0a85b580d4b..e8111026e5b8 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/MockRegionServerServices.java
@@ -60,6 +60,7 @@
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.wal.WAL;
import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
+import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -70,6 +71,7 @@
/**
* Basic mock region server services. Should only be instantiated by HBaseTestingUtility.b
*/
+@InterfaceAudience.Private
public class MockRegionServerServices implements RegionServerServices {
protected static final Logger LOG = LoggerFactory.getLogger(MockRegionServerServices.class);
private final Map regions = new HashMap<>();
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/StartMiniClusterOption.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/StartMiniClusterOption.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/StartMiniClusterOption.java
rename to hbase-server/src/main/java/org/apache/hadoop/hbase/StartMiniClusterOption.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/MapreduceTestingShim.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MapreduceTestingShim.java
similarity index 98%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/MapreduceTestingShim.java
rename to hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MapreduceTestingShim.java
index 69f738741eb1..db53890871d3 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/MapreduceTestingShim.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MapreduceTestingShim.java
@@ -28,6 +28,7 @@
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.JobContext;
import org.apache.hadoop.mapreduce.JobID;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* This class provides shims for HBase to interact with the Hadoop 1.0.x and the
@@ -35,6 +36,7 @@
*
* NOTE: No testing done against 0.22.x, or 0.21.x.
*/
+@InterfaceAudience.Private
abstract public class MapreduceTestingShim {
private static MapreduceTestingShim instance;
private static Class[] emptyParam = new Class[] {};
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java
rename to hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/HBaseKerberosUtils.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/HBaseKerberosUtils.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/security/HBaseKerberosUtils.java
rename to hbase-server/src/main/java/org/apache/hadoop/hbase/security/HBaseKerberosUtils.java
index f80e5f48919b..d73411e01ea6 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/HBaseKerberosUtils.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/HBaseKerberosUtils.java
@@ -29,12 +29,12 @@
import org.apache.hadoop.hbase.http.ssl.KeyStoreTestUtil;
import org.apache.hadoop.hdfs.DFSConfigKeys;
import org.apache.hadoop.http.HttpConfig;
+import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hbase.thirdparty.com.google.common.base.Strings;
-import org.apache.hadoop.security.UserGroupInformation;
@InterfaceAudience.Private
public class HBaseKerberosUtils {
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/StoppableImplementation.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/StoppableImplementation.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/util/StoppableImplementation.java
rename to hbase-server/src/main/java/org/apache/hadoop/hbase/util/StoppableImplementation.java
diff --git a/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/HBaseZKTestingUtility.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/HBaseZKTestingUtility.java
similarity index 100%
rename from hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/HBaseZKTestingUtility.java
rename to hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/HBaseZKTestingUtility.java