HDFS-11761. Ozone: Get container report should only report closed containers. Contributed by Weiwei Yang.
This commit is contained in:
parent
2feec0045d
commit
f713452e7e
|
@ -746,7 +746,7 @@ public class ContainerManagerImpl implements ContainerManager {
|
||||||
// after we iterate a point.
|
// after we iterate a point.
|
||||||
return containerMap.entrySet().stream()
|
return containerMap.entrySet().stream()
|
||||||
.filter(containerStatus ->
|
.filter(containerStatus ->
|
||||||
containerStatus.getValue().getContainer().isOpen())
|
!containerStatus.getValue().getContainer().isOpen())
|
||||||
.map(containerStatus -> containerStatus.getValue().getContainer())
|
.map(containerStatus -> containerStatus.getValue().getContainer())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
|
@ -256,6 +256,35 @@ public class TestContainerPersistence {
|
||||||
.containsKey(containerName1));
|
.containsKey(containerName1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetContainerReports() throws Exception{
|
||||||
|
final int count = 10;
|
||||||
|
List<String> containerNames = new ArrayList<String>();
|
||||||
|
|
||||||
|
for (int i = 0; i < count; i++) {
|
||||||
|
String containerName = OzoneUtils.getRequestID();
|
||||||
|
ContainerData data = new ContainerData(containerName);
|
||||||
|
containerManager.createContainer(createSingleNodePipeline(containerName),
|
||||||
|
data);
|
||||||
|
|
||||||
|
// Close a bunch of containers.
|
||||||
|
// Put closed container names to a list.
|
||||||
|
if (i%3 == 0) {
|
||||||
|
containerManager.closeContainer(containerName);
|
||||||
|
containerNames.add(containerName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// The container report only returns reports of closed containers.
|
||||||
|
List<ContainerData> reports = containerManager.getContainerReports();
|
||||||
|
Assert.assertEquals(4, reports.size());
|
||||||
|
for(ContainerData report : reports) {
|
||||||
|
String actualName = report.getContainerName();
|
||||||
|
Assert.assertTrue(containerNames.remove(actualName));
|
||||||
|
}
|
||||||
|
Assert.assertTrue(containerNames.isEmpty());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This test creates 1000 containers and reads them back 5 containers at a
|
* This test creates 1000 containers and reads them back 5 containers at a
|
||||||
* time and verifies that we did get back all containers.
|
* time and verifies that we did get back all containers.
|
||||||
|
|
Loading…
Reference in New Issue