Browse Source

HDDS-1302. Fix SCM CLI does not list container with id 1.

(cherry picked from commit 73f7b04e2b8f9a4b06a1e5b5c62eadd074555205)
Vivek Ratnavel Subramanian 6 năm trước cách đây
mục cha
commit
6b3e0b3edc

+ 1 - 1
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/SCMContainerManager.java

@@ -190,7 +190,7 @@ public class SCMContainerManager implements ContainerManager {
       Collections.sort(containersIds);
 
       return containersIds.stream()
-          .filter(id -> id.getId() >= startId)
+          .filter(id -> id.getId() > startId)
           .limit(count)
           .map(id -> {
             try {

+ 6 - 1
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java

@@ -296,8 +296,13 @@ public class SCMClientProtocolServer implements
     auditMap.put("startContainerID", String.valueOf(startContainerID));
     auditMap.put("count", String.valueOf(count));
     try {
+      // To allow startcontainerId to take the value "0",
+      // "null" is assigned, so that its handled in the
+      // scm.getContainerManager().listContainer method
+      final ContainerID containerId = startContainerID != 0 ? ContainerID
+          .valueof(startContainerID) : null;
       return scm.getContainerManager().
-          listContainer(ContainerID.valueof(startContainerID), count);
+          listContainer(containerId, count);
     } catch (Exception ex) {
       auditSuccess = false;
       AUDIT.logReadFailure(