|
@@ -35,9 +35,9 @@ import org.apache.hadoop.hdds.scm.server.SCMDatanodeHeartbeatDispatcher.Pipeline
|
|
|
import org.apache.hadoop.hdds.server.events.EventQueue;
|
|
|
import org.apache.hadoop.metrics2.MetricsRecordBuilder;
|
|
|
import org.apache.hadoop.test.GenericTestUtils;
|
|
|
-import org.junit.AfterClass;
|
|
|
+import org.junit.After;
|
|
|
import org.junit.Assert;
|
|
|
-import org.junit.BeforeClass;
|
|
|
+import org.junit.Before;
|
|
|
import org.junit.Test;
|
|
|
|
|
|
import java.io.File;
|
|
@@ -55,8 +55,8 @@ public class TestSCMPipelineManager {
|
|
|
private static File testDir;
|
|
|
private static Configuration conf;
|
|
|
|
|
|
- @BeforeClass
|
|
|
- public static void setUp() throws Exception {
|
|
|
+ @Before
|
|
|
+ public void setUp() throws Exception {
|
|
|
conf = new OzoneConfiguration();
|
|
|
testDir = GenericTestUtils
|
|
|
.getTestDir(TestSCMPipelineManager.class.getSimpleName());
|
|
@@ -68,8 +68,8 @@ public class TestSCMPipelineManager {
|
|
|
nodeManager = new MockNodeManager(true, 20);
|
|
|
}
|
|
|
|
|
|
- @AfterClass
|
|
|
- public static void cleanup() throws IOException {
|
|
|
+ @After
|
|
|
+ public void cleanup() {
|
|
|
FileUtil.fullyDelete(testDir);
|
|
|
}
|
|
|
|
|
@@ -269,4 +269,50 @@ public class TestSCMPipelineManager {
|
|
|
"NumPipelineCreationFailed", metrics);
|
|
|
Assert.assertTrue(numPipelineCreateFailed == 0);
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testActivateDeactivatePipeline() throws IOException {
|
|
|
+ final SCMPipelineManager pipelineManager =
|
|
|
+ new SCMPipelineManager(conf, nodeManager, new EventQueue());
|
|
|
+ final PipelineProvider mockRatisProvider =
|
|
|
+ new MockRatisPipelineProvider(nodeManager,
|
|
|
+ pipelineManager.getStateManager(), conf);
|
|
|
+
|
|
|
+ pipelineManager.setPipelineProvider(HddsProtos.ReplicationType.RATIS,
|
|
|
+ mockRatisProvider);
|
|
|
+
|
|
|
+ final Pipeline pipeline = pipelineManager
|
|
|
+ .createPipeline(HddsProtos.ReplicationType.RATIS,
|
|
|
+ HddsProtos.ReplicationFactor.THREE);
|
|
|
+ final PipelineID pid = pipeline.getId();
|
|
|
+
|
|
|
+ pipelineManager.openPipeline(pid);
|
|
|
+ pipelineManager.addContainerToPipeline(pid, ContainerID.valueof(1));
|
|
|
+
|
|
|
+ Assert.assertTrue(pipelineManager
|
|
|
+ .getPipelines(HddsProtos.ReplicationType.RATIS,
|
|
|
+ HddsProtos.ReplicationFactor.THREE,
|
|
|
+ Pipeline.PipelineState.OPEN).contains(pipeline));
|
|
|
+
|
|
|
+ Assert.assertEquals(Pipeline.PipelineState.OPEN,
|
|
|
+ pipelineManager.getPipeline(pid).getPipelineState());
|
|
|
+
|
|
|
+ pipelineManager.deactivatePipeline(pid);
|
|
|
+ Assert.assertEquals(Pipeline.PipelineState.DORMANT,
|
|
|
+ pipelineManager.getPipeline(pid).getPipelineState());
|
|
|
+
|
|
|
+ Assert.assertFalse(pipelineManager
|
|
|
+ .getPipelines(HddsProtos.ReplicationType.RATIS,
|
|
|
+ HddsProtos.ReplicationFactor.THREE,
|
|
|
+ Pipeline.PipelineState.OPEN).contains(pipeline));
|
|
|
+
|
|
|
+ pipelineManager.activatePipeline(pid);
|
|
|
+
|
|
|
+ Assert.assertTrue(pipelineManager
|
|
|
+ .getPipelines(HddsProtos.ReplicationType.RATIS,
|
|
|
+ HddsProtos.ReplicationFactor.THREE,
|
|
|
+ Pipeline.PipelineState.OPEN).contains(pipeline));
|
|
|
+
|
|
|
+ pipelineManager.close();
|
|
|
+ }
|
|
|
}
|