diff --git hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java index b5f3fda..257973a 100644 --- hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java +++ hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestBase.java @@ -140,13 +140,15 @@ public abstract class IntegrationTestBase extends AbstractHBaseTool { } return util; } - + public abstract void setUpCluster() throws Exception; public void cleanUpCluster() throws Exception { - LOG.debug("Restoring the cluster"); - util.restoreCluster(); - LOG.debug("Done restoring the cluster"); + if (!util.isDistributedCluster() || (monkey != null && monkey.isDestructive())) { + LOG.debug("Restoring the cluster"); + util.restoreCluster(); + LOG.debug("Done restoring the cluster"); + } } public abstract int runTestFromCommandLine() throws Exception; diff --git hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java index bcf45dd..bcf7d85 100644 --- hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java +++ hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/CalmChaosMonkey.java @@ -41,4 +41,9 @@ public class CalmChaosMonkey extends ChaosMonkey { public void waitForStop() throws InterruptedException { } + + @Override + public boolean isDestructive() { + return false; + } } diff --git hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java index da75c3b..86cbfe5 100644 --- hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java +++ hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/ChaosMonkey.java @@ -51,4 +51,10 @@ public abstract class ChaosMonkey implements Stoppable { public abstract boolean isStopped(); public abstract void waitForStop() throws InterruptedException; + + /** + * Returns whether the CM does destructive actions (killing servers) so that a cluster restore + * is needed after CM is stopped. Otherwise cluster will be left as it is + */ + public abstract boolean isDestructive(); } diff --git hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java index f42f903..9152cb2 100644 --- hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java +++ hbase-it/src/test/java/org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java @@ -149,4 +149,10 @@ public class PolicyBasedChaosMonkey extends ChaosMonkey { monkeyThread.join(); } } + + @Override + public boolean isDestructive() { + // TODO: we can look at the actions, and decide to do the restore cluster or not based on them. + return true; + } }