This is an automated email from the ASF dual-hosted git repository.

sumitagrawal pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new f07743096f HDDS-10636. Ozone Recon - Filter EMPTY MISSING Containers 
in UnHealthy State Containers API. (#6471)
f07743096f is described below

commit f07743096fbf04a1a7b6831142e258a4ba7f23c6
Author: Devesh Kumar Singh <[email protected]>
AuthorDate: Wed Apr 3 10:52:21 2024 +0530

    HDDS-10636. Ozone Recon - Filter EMPTY MISSING Containers in UnHealthy 
State Containers API. (#6471)
    
    Co-authored-by: deveshsingh <devmadhu@[email protected]>
---
 .../hadoop/ozone/recon/api/ContainerEndpoint.java       |  8 +++++---
 .../hadoop/ozone/recon/api/TestContainerEndpoint.java   | 17 +++++++++++++++++
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java
index 06f175c0dc..afc9c8a323 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java
@@ -397,10 +397,12 @@ public class ContainerEndpoint {
       summary = containerHealthSchemaManager.getUnhealthyContainersSummary();
       List<UnhealthyContainers> containers = containerHealthSchemaManager
           .getUnhealthyContainers(internalState, offset, limit);
-      containers.stream()
+      List<UnhealthyContainers> emptyMissingFiltered = containers.stream()
           .filter(
-              container -> 
!container.getContainerState().equals(UnHealthyContainerStates.EMPTY_MISSING.toString()));
-      for (UnhealthyContainers c : containers) {
+              container -> 
!container.getContainerState().equals(UnHealthyContainerStates.EMPTY_MISSING.toString()))
+          .collect(
+              Collectors.toList());
+      for (UnhealthyContainers c : emptyMissingFiltered) {
         long containerID = c.getContainerId();
         ContainerInfo containerInfo =
             containerManager.getContainer(ContainerID.valueOf(containerID));
diff --git 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
index 854ac74bd3..82c7c1b5be 100644
--- 
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
+++ 
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
@@ -885,6 +885,7 @@ public class TestContainerEndpoint {
   public void testUnhealthyContainersFilteredResponse()
       throws IOException, TimeoutException {
     String missing = UnHealthyContainerStates.MISSING.toString();
+    String emptyMissing = UnHealthyContainerStates.EMPTY_MISSING.toString();
 
     Response response = containerEndpoint
         .getUnhealthyContainers(missing, 1000, 1);
@@ -904,6 +905,7 @@ public class TestContainerEndpoint {
     uuid3 = newDatanode("host3", "127.0.0.3");
     uuid4 = newDatanode("host4", "127.0.0.4");
     createUnhealthyRecords(5, 4, 3, 2);
+    createEmptyMissingUnhealthyRecords(2);
 
     response = containerEndpoint.getUnhealthyContainers(missing, 1000, 1);
 
@@ -926,6 +928,13 @@ public class TestContainerEndpoint {
     for (UnhealthyContainerMetadata r : records) {
       assertEquals(missing, r.getContainerState());
     }
+
+    Response filteredEmptyMissingResponse = containerEndpoint
+        .getUnhealthyContainers(emptyMissing, 1000, 1);
+    responseObject = (UnhealthyContainersResponse) 
filteredEmptyMissingResponse.getEntity();
+    records = responseObject.getContainers();
+    // Assert for zero empty missing containers.
+    assertEquals(0, records.size());
   }
 
   @Test
@@ -1026,6 +1035,14 @@ public class TestContainerEndpoint {
     return uuid;
   }
 
+  private void createEmptyMissingUnhealthyRecords(int emptyMissing) {
+    int cid = 0;
+    for (int i = 0; i < emptyMissing; i++) {
+      createUnhealthyRecord(++cid, 
UnHealthyContainerStates.EMPTY_MISSING.toString(),
+          3, 3, 0, null);
+    }
+  }
+
   private void createUnhealthyRecords(int missing, int overRep, int underRep,
                                       int misRep) {
     int cid = 0;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to