sreejasahithi commented on code in PR #10144:
URL: https://github.com/apache/ozone/pull/10144#discussion_r3147719533
##
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java:
##
@@ -127,7 +128,9 @@ public Void replicate() throws Exception {
new ContainerOperationClient(conf);
final List containerInfos =
-containerOperationClient.listContainer(0L,
1_000_000).getContainerInfoList();
+
containerOperationClient.listContainer(ScmListContainerRequestCodec.toProto(
+0L, 1_000_000, null, null, null, null, null, null))
+.getContainerInfoList();
Review Comment:
create a named constant for `1_000_000`
##
hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocol/ScmListContainerRequestCodec.java:
##
@@ -0,0 +1,183 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hdds.scm.protocol;
+
+import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType.EC;
+
+import jakarta.annotation.Nullable;
+import org.apache.hadoop.hdds.client.ECReplicationConfig;
+import org.apache.hadoop.hdds.client.ReplicatedReplicationConfig;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
+import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
+import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.SCMListContainerRequestProto;
+import
org.apache.hadoop.hdds.protocol.proto.StorageContainerLocationProtocolProtos.SCMListContainerRequestProto.Builder;
+
+/**
+ * Codec between {@link SCMListContainerRequestProto} and {@link
ListContainerQuery} for list containers.
+ */
+public final class ScmListContainerRequestCodec {
+
+ private ScmListContainerRequestCodec() {
+ }
+
+ /**
+ * Immutable view of list container request fields after {@link #fromProto}.
+ */
+ public static final class ListContainerQuery {
+private final long startContainerID;
+private final int count;
+@Nullable
+private final HddsProtos.LifeCycleState state;
+@Nullable
+private final HddsProtos.ReplicationFactor factor;
+@Nullable
+private final HddsProtos.ReplicationType replicationType;
+@Nullable
+private final ReplicationConfig replicationConfig;
+@Nullable
+private final Boolean suppressed;
+
+private ListContainerQuery(long startContainerID, int count,
+@Nullable HddsProtos.LifeCycleState state,
+@Nullable HddsProtos.ReplicationFactor factor,
+@Nullable HddsProtos.ReplicationType replicationType,
+@Nullable ReplicationConfig replicationConfig,
+@Nullable Boolean suppressed) {
+ this.startContainerID = startContainerID;
+ this.count = count;
+ this.state = state;
+ this.factor = factor;
+ this.replicationType = replicationType;
+ this.replicationConfig = replicationConfig;
+ this.suppressed = suppressed;
+}
+
+public long getStartContainerID() {
+ return startContainerID;
+}
+
+public int getCount() {
+ return count;
+}
+
+@Nullable
+public HddsProtos.LifeCycleState getState() {
+ return state;
+}
+
+@Nullable
+public HddsProtos.ReplicationFactor getFactor() {
+ return factor;
+}
+
+@Nullable
+public HddsProtos.ReplicationType getReplicationType() {
+ return replicationType;
+}
+
+@Nullable
+public ReplicationConfig getReplicationConfig() {
+ return replicationConfig;
+}
+
+@Nullable
+public Boolean getSuppressed() {
+ return suppressed;
+}
+ }
+
+ /**
+ * Builds {@link SCMListContainerRequestProto} from Java fields.
+ */
+ @SuppressWarnings("checkstyle:ParameterNumber")
+ public static SCMListContainerRequestProto toProto(
+ long startContainerID,
+ int count,
+ @Nullable HddsProtos.LifeCycleState state,
+ @Nullable HddsProtos.ReplicationFactor factor,
+ @Nullable HddsProtos.ReplicationType replicationType,
+ @Nullable ReplicationConfig repConfig,
+ @Nullable Boolean suppressed,
+ @Nullable String traceId) {
+Builder builder = SCMListContainerRequestProto.newBuilder()
+.setCount(co