|
@@ -91,7 +91,7 @@ public class TestPipelineStateManager {
|
|
}
|
|
}
|
|
|
|
|
|
// verify pipeline returned is same
|
|
// verify pipeline returned is same
|
|
- Pipeline pipeline1 = stateManager.getPipeline(pipeline.getID());
|
|
|
|
|
|
+ Pipeline pipeline1 = stateManager.getPipeline(pipeline.getId());
|
|
Assert.assertTrue(pipeline == pipeline1);
|
|
Assert.assertTrue(pipeline == pipeline1);
|
|
|
|
|
|
// clean up
|
|
// clean up
|
|
@@ -102,15 +102,17 @@ public class TestPipelineStateManager {
|
|
public void testGetPipelines() throws IOException {
|
|
public void testGetPipelines() throws IOException {
|
|
Set<Pipeline> pipelines = new HashSet<>();
|
|
Set<Pipeline> pipelines = new HashSet<>();
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
- pipelines.add(pipeline);
|
|
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
- pipeline = createDummyPipeline(1);
|
|
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
pipelines.add(pipeline);
|
|
pipelines.add(pipeline);
|
|
|
|
+ pipeline = createDummyPipeline(1);
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
|
|
+ pipelines.add(pipeline);
|
|
|
|
|
|
- Set<Pipeline> pipelines1 = new HashSet<>(stateManager.getPipelinesByType(
|
|
|
|
|
|
+ Set<Pipeline> pipelines1 = new HashSet<>(stateManager.getPipelines(
|
|
HddsProtos.ReplicationType.RATIS));
|
|
HddsProtos.ReplicationType.RATIS));
|
|
- Assert.assertEquals(pipelines, pipelines1);
|
|
|
|
|
|
+ Assert.assertEquals(pipelines1.size(), pipelines.size());
|
|
// clean up
|
|
// clean up
|
|
for (Pipeline pipeline1 : pipelines) {
|
|
for (Pipeline pipeline1 : pipelines) {
|
|
removePipeline(pipeline1);
|
|
removePipeline(pipeline1);
|
|
@@ -131,16 +133,16 @@ public class TestPipelineStateManager {
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
pipelines.add(pipeline);
|
|
pipelines.add(pipeline);
|
|
|
|
|
|
- // 5 pipelines in allocated state for each type and factor
|
|
|
|
|
|
+ // 5 pipelines in open state for each type and factor
|
|
pipeline = createDummyPipeline(type, factor, factor.getNumber());
|
|
pipeline = createDummyPipeline(type, factor, factor.getNumber());
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
- stateManager.openPipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
pipelines.add(pipeline);
|
|
pipelines.add(pipeline);
|
|
|
|
|
|
- // 5 pipelines in allocated state for each type and factor
|
|
|
|
|
|
+ // 5 pipelines in closed state for each type and factor
|
|
pipeline = createDummyPipeline(type, factor, factor.getNumber());
|
|
pipeline = createDummyPipeline(type, factor, factor.getNumber());
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
- stateManager.finalizePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.finalizePipeline(pipeline.getId());
|
|
pipelines.add(pipeline);
|
|
pipelines.add(pipeline);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -152,8 +154,8 @@ public class TestPipelineStateManager {
|
|
.values()) {
|
|
.values()) {
|
|
// verify pipelines received
|
|
// verify pipelines received
|
|
List<Pipeline> pipelines1 =
|
|
List<Pipeline> pipelines1 =
|
|
- stateManager.getPipelinesByTypeAndFactor(type, factor);
|
|
|
|
- Assert.assertEquals(5, pipelines1.size());
|
|
|
|
|
|
+ stateManager.getPipelines(type, factor);
|
|
|
|
+ Assert.assertEquals(15, pipelines1.size());
|
|
pipelines1.stream().forEach(p -> {
|
|
pipelines1.stream().forEach(p -> {
|
|
Assert.assertEquals(p.getType(), type);
|
|
Assert.assertEquals(p.getType(), type);
|
|
Assert.assertEquals(p.getFactor(), factor);
|
|
Assert.assertEquals(p.getFactor(), factor);
|
|
@@ -167,41 +169,80 @@ public class TestPipelineStateManager {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Test
|
|
|
|
+ public void testGetPipelinesByTypeAndState() throws IOException {
|
|
|
|
+ Set<Pipeline> pipelines = new HashSet<>();
|
|
|
|
+ for (HddsProtos.ReplicationType type : HddsProtos.ReplicationType
|
|
|
|
+ .values()) {
|
|
|
|
+ HddsProtos.ReplicationFactor factor = HddsProtos.ReplicationFactor.THREE;
|
|
|
|
+ for (int i = 0; i < 5; i++) {
|
|
|
|
+ // 5 pipelines in allocated state for each type and factor
|
|
|
|
+ Pipeline pipeline =
|
|
|
|
+ createDummyPipeline(type, factor, factor.getNumber());
|
|
|
|
+ stateManager.addPipeline(pipeline);
|
|
|
|
+ pipelines.add(pipeline);
|
|
|
|
+
|
|
|
|
+ // 5 pipelines in open state for each type and factor
|
|
|
|
+ pipeline = createDummyPipeline(type, factor, factor.getNumber());
|
|
|
|
+ stateManager.addPipeline(pipeline);
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
|
|
+ pipelines.add(pipeline);
|
|
|
|
+
|
|
|
|
+ // 5 pipelines in closed state for each type and factor
|
|
|
|
+ pipeline = createDummyPipeline(type, factor, factor.getNumber());
|
|
|
|
+ stateManager.addPipeline(pipeline);
|
|
|
|
+ stateManager.finalizePipeline(pipeline.getId());
|
|
|
|
+ pipelines.add(pipeline);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (HddsProtos.ReplicationType type : HddsProtos.ReplicationType
|
|
|
|
+ .values()) {
|
|
|
|
+ // verify pipelines received
|
|
|
|
+ List<Pipeline> pipelines1 = stateManager
|
|
|
|
+ .getPipelines(type, Pipeline.PipelineState.OPEN);
|
|
|
|
+ Assert.assertEquals(5, pipelines1.size());
|
|
|
|
+ pipelines1.forEach(p -> {
|
|
|
|
+ Assert.assertEquals(p.getType(), type);
|
|
|
|
+ Assert.assertEquals(p.getPipelineState(), Pipeline.PipelineState.OPEN);
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ pipelines1 = stateManager
|
|
|
|
+ .getPipelines(type, Pipeline.PipelineState.OPEN,
|
|
|
|
+ Pipeline.PipelineState.CLOSED, Pipeline.PipelineState.ALLOCATED);
|
|
|
|
+ Assert.assertEquals(15, pipelines1.size());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //clean up
|
|
|
|
+ for (Pipeline pipeline : pipelines) {
|
|
|
|
+ removePipeline(pipeline);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@Test
|
|
@Test
|
|
public void testAddAndGetContainer() throws IOException {
|
|
public void testAddAndGetContainer() throws IOException {
|
|
long containerID = 0;
|
|
long containerID = 0;
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
- pipeline = stateManager.getPipeline(pipeline.getID());
|
|
|
|
-
|
|
|
|
- try {
|
|
|
|
- stateManager.addContainerToPipeline(pipeline.getID(),
|
|
|
|
- ContainerID.valueof(++containerID));
|
|
|
|
- Assert.fail("Container should not have been added");
|
|
|
|
- } catch (IOException e) {
|
|
|
|
- // add container possible only in container with open state
|
|
|
|
- Assert.assertTrue(e.getMessage().contains("is not in open state"));
|
|
|
|
- }
|
|
|
|
|
|
+ pipeline = stateManager.getPipeline(pipeline.getId());
|
|
|
|
+ stateManager.addContainerToPipeline(pipeline.getId(),
|
|
|
|
+ ContainerID.valueof(++containerID));
|
|
|
|
|
|
// move pipeline to open state
|
|
// move pipeline to open state
|
|
- stateManager.openPipeline(pipeline.getID());
|
|
|
|
-
|
|
|
|
- // add three containers
|
|
|
|
- stateManager.addContainerToPipeline(pipeline.getID(),
|
|
|
|
- ContainerID.valueof(containerID));
|
|
|
|
- stateManager.addContainerToPipeline(pipeline.getID(),
|
|
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
|
|
+ stateManager.addContainerToPipeline(pipeline.getId(),
|
|
ContainerID.valueof(++containerID));
|
|
ContainerID.valueof(++containerID));
|
|
- stateManager.addContainerToPipeline(pipeline.getID(),
|
|
|
|
|
|
+ stateManager.addContainerToPipeline(pipeline.getId(),
|
|
ContainerID.valueof(++containerID));
|
|
ContainerID.valueof(++containerID));
|
|
|
|
|
|
//verify the number of containers returned
|
|
//verify the number of containers returned
|
|
Set<ContainerID> containerIDs =
|
|
Set<ContainerID> containerIDs =
|
|
- stateManager.getContainers(pipeline.getID());
|
|
|
|
|
|
+ stateManager.getContainers(pipeline.getId());
|
|
Assert.assertEquals(containerIDs.size(), containerID);
|
|
Assert.assertEquals(containerIDs.size(), containerID);
|
|
|
|
|
|
removePipeline(pipeline);
|
|
removePipeline(pipeline);
|
|
try {
|
|
try {
|
|
- stateManager.addContainerToPipeline(pipeline.getID(),
|
|
|
|
|
|
+ stateManager.addContainerToPipeline(pipeline.getId(),
|
|
ContainerID.valueof(++containerID));
|
|
ContainerID.valueof(++containerID));
|
|
Assert.fail("Container should not have been added");
|
|
Assert.fail("Container should not have been added");
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
@@ -215,12 +256,12 @@ public class TestPipelineStateManager {
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
// close the pipeline
|
|
// close the pipeline
|
|
- stateManager.openPipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
stateManager
|
|
stateManager
|
|
- .addContainerToPipeline(pipeline.getID(), ContainerID.valueof(1));
|
|
|
|
|
|
+ .addContainerToPipeline(pipeline.getId(), ContainerID.valueof(1));
|
|
|
|
|
|
try {
|
|
try {
|
|
- stateManager.removePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.removePipeline(pipeline.getId());
|
|
Assert.fail("Pipeline should not have been removed");
|
|
Assert.fail("Pipeline should not have been removed");
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
// can not remove a pipeline which already has containers
|
|
// can not remove a pipeline which already has containers
|
|
@@ -228,10 +269,10 @@ public class TestPipelineStateManager {
|
|
}
|
|
}
|
|
|
|
|
|
// close the pipeline
|
|
// close the pipeline
|
|
- stateManager.finalizePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.finalizePipeline(pipeline.getId());
|
|
|
|
|
|
try {
|
|
try {
|
|
- stateManager.removePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.removePipeline(pipeline.getId());
|
|
Assert.fail("Pipeline should not have been removed");
|
|
Assert.fail("Pipeline should not have been removed");
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
// can not remove a pipeline which already has containers
|
|
// can not remove a pipeline which already has containers
|
|
@@ -248,33 +289,33 @@ public class TestPipelineStateManager {
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
// create an open pipeline in stateMap
|
|
// create an open pipeline in stateMap
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
- stateManager.openPipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
|
|
|
|
- stateManager.addContainerToPipeline(pipeline.getID(),
|
|
|
|
|
|
+ stateManager.addContainerToPipeline(pipeline.getId(),
|
|
ContainerID.valueof(containerID));
|
|
ContainerID.valueof(containerID));
|
|
- Assert.assertEquals(1, stateManager.getContainers(pipeline.getID()).size());
|
|
|
|
- stateManager.removeContainerFromPipeline(pipeline.getID(),
|
|
|
|
|
|
+ Assert.assertEquals(1, stateManager.getContainers(pipeline.getId()).size());
|
|
|
|
+ stateManager.removeContainerFromPipeline(pipeline.getId(),
|
|
ContainerID.valueof(containerID));
|
|
ContainerID.valueof(containerID));
|
|
- Assert.assertEquals(0, stateManager.getContainers(pipeline.getID()).size());
|
|
|
|
|
|
+ Assert.assertEquals(0, stateManager.getContainers(pipeline.getId()).size());
|
|
|
|
|
|
// add two containers in the pipeline
|
|
// add two containers in the pipeline
|
|
- stateManager.addContainerToPipeline(pipeline.getID(),
|
|
|
|
|
|
+ stateManager.addContainerToPipeline(pipeline.getId(),
|
|
ContainerID.valueof(++containerID));
|
|
ContainerID.valueof(++containerID));
|
|
- stateManager.addContainerToPipeline(pipeline.getID(),
|
|
|
|
|
|
+ stateManager.addContainerToPipeline(pipeline.getId(),
|
|
ContainerID.valueof(++containerID));
|
|
ContainerID.valueof(++containerID));
|
|
- Assert.assertEquals(2, stateManager.getContainers(pipeline.getID()).size());
|
|
|
|
|
|
+ Assert.assertEquals(2, stateManager.getContainers(pipeline.getId()).size());
|
|
|
|
|
|
// move pipeline to closing state
|
|
// move pipeline to closing state
|
|
- stateManager.finalizePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.finalizePipeline(pipeline.getId());
|
|
|
|
|
|
- stateManager.removeContainerFromPipeline(pipeline.getID(),
|
|
|
|
|
|
+ stateManager.removeContainerFromPipeline(pipeline.getId(),
|
|
ContainerID.valueof(containerID));
|
|
ContainerID.valueof(containerID));
|
|
- stateManager.removeContainerFromPipeline(pipeline.getID(),
|
|
|
|
|
|
+ stateManager.removeContainerFromPipeline(pipeline.getId(),
|
|
ContainerID.valueof(--containerID));
|
|
ContainerID.valueof(--containerID));
|
|
- Assert.assertEquals(0, stateManager.getContainers(pipeline.getID()).size());
|
|
|
|
|
|
+ Assert.assertEquals(0, stateManager.getContainers(pipeline.getId()).size());
|
|
|
|
|
|
// clean up
|
|
// clean up
|
|
- stateManager.removePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.removePipeline(pipeline.getId());
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -282,30 +323,30 @@ public class TestPipelineStateManager {
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
// finalize on ALLOCATED pipeline
|
|
// finalize on ALLOCATED pipeline
|
|
- stateManager.finalizePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.finalizePipeline(pipeline.getId());
|
|
Assert.assertEquals(Pipeline.PipelineState.CLOSED,
|
|
Assert.assertEquals(Pipeline.PipelineState.CLOSED,
|
|
- stateManager.getPipeline(pipeline.getID()).getPipelineState());
|
|
|
|
|
|
+ stateManager.getPipeline(pipeline.getId()).getPipelineState());
|
|
// clean up
|
|
// clean up
|
|
removePipeline(pipeline);
|
|
removePipeline(pipeline);
|
|
|
|
|
|
pipeline = createDummyPipeline(1);
|
|
pipeline = createDummyPipeline(1);
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
- stateManager.openPipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
// finalize on OPEN pipeline
|
|
// finalize on OPEN pipeline
|
|
- stateManager.finalizePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.finalizePipeline(pipeline.getId());
|
|
Assert.assertEquals(Pipeline.PipelineState.CLOSED,
|
|
Assert.assertEquals(Pipeline.PipelineState.CLOSED,
|
|
- stateManager.getPipeline(pipeline.getID()).getPipelineState());
|
|
|
|
|
|
+ stateManager.getPipeline(pipeline.getId()).getPipelineState());
|
|
// clean up
|
|
// clean up
|
|
removePipeline(pipeline);
|
|
removePipeline(pipeline);
|
|
|
|
|
|
pipeline = createDummyPipeline(1);
|
|
pipeline = createDummyPipeline(1);
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
- stateManager.openPipeline(pipeline.getID());
|
|
|
|
- stateManager.finalizePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
|
|
+ stateManager.finalizePipeline(pipeline.getId());
|
|
// finalize should work on already closed pipeline
|
|
// finalize should work on already closed pipeline
|
|
- stateManager.finalizePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.finalizePipeline(pipeline.getId());
|
|
Assert.assertEquals(Pipeline.PipelineState.CLOSED,
|
|
Assert.assertEquals(Pipeline.PipelineState.CLOSED,
|
|
- stateManager.getPipeline(pipeline.getID()).getPipelineState());
|
|
|
|
|
|
+ stateManager.getPipeline(pipeline.getId()).getPipelineState());
|
|
// clean up
|
|
// clean up
|
|
removePipeline(pipeline);
|
|
removePipeline(pipeline);
|
|
}
|
|
}
|
|
@@ -315,25 +356,25 @@ public class TestPipelineStateManager {
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
Pipeline pipeline = createDummyPipeline(1);
|
|
stateManager.addPipeline(pipeline);
|
|
stateManager.addPipeline(pipeline);
|
|
// open on ALLOCATED pipeline
|
|
// open on ALLOCATED pipeline
|
|
- stateManager.openPipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
Assert.assertEquals(Pipeline.PipelineState.OPEN,
|
|
Assert.assertEquals(Pipeline.PipelineState.OPEN,
|
|
- stateManager.getPipeline(pipeline.getID()).getPipelineState());
|
|
|
|
|
|
+ stateManager.getPipeline(pipeline.getId()).getPipelineState());
|
|
|
|
|
|
- stateManager.openPipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.openPipeline(pipeline.getId());
|
|
// open should work on already open pipeline
|
|
// open should work on already open pipeline
|
|
Assert.assertEquals(Pipeline.PipelineState.OPEN,
|
|
Assert.assertEquals(Pipeline.PipelineState.OPEN,
|
|
- stateManager.getPipeline(pipeline.getID()).getPipelineState());
|
|
|
|
|
|
+ stateManager.getPipeline(pipeline.getId()).getPipelineState());
|
|
// clean up
|
|
// clean up
|
|
removePipeline(pipeline);
|
|
removePipeline(pipeline);
|
|
}
|
|
}
|
|
|
|
|
|
private void removePipeline(Pipeline pipeline) throws IOException {
|
|
private void removePipeline(Pipeline pipeline) throws IOException {
|
|
- stateManager.finalizePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.finalizePipeline(pipeline.getId());
|
|
Set<ContainerID> containerIDs =
|
|
Set<ContainerID> containerIDs =
|
|
- stateManager.getContainers(pipeline.getID());
|
|
|
|
|
|
+ stateManager.getContainers(pipeline.getId());
|
|
for (ContainerID containerID : containerIDs) {
|
|
for (ContainerID containerID : containerIDs) {
|
|
- stateManager.removeContainerFromPipeline(pipeline.getID(), containerID);
|
|
|
|
|
|
+ stateManager.removeContainerFromPipeline(pipeline.getId(), containerID);
|
|
}
|
|
}
|
|
- stateManager.removePipeline(pipeline.getID());
|
|
|
|
|
|
+ stateManager.removePipeline(pipeline.getId());
|
|
}
|
|
}
|
|
}
|
|
}
|