You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by el...@apache.org on 2021/02/24 08:46:15 UTC

[ozone] 26/27: support to replicate only one containerid

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

elek pushed a commit to branch HDDS-3816-ec
in repository https://gitbox.apache.org/repos/asf/ozone.git

commit b1ba81e49ce95aefdb4cd52c43bca52b91ad42bc
Author: Elek Márton <el...@apache.org>
AuthorDate: Tue Feb 23 15:37:47 2021 +0100

    support to replicate only one containerid
---
 .../ozone/freon/ClosedContainerReplicator.java     | 37 +++++++++++++---------
 1 file changed, 22 insertions(+), 15 deletions(-)

diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
index 45f4704..cacae37 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
@@ -74,6 +74,11 @@ public class ClosedContainerReplicator extends BaseFreonGenerator implements
       defaultValue = "false")
   private boolean inMemory;
 
+  @Option(names = {"--container-Id"},
+      description = "Download only the selected container.",
+      defaultValue = "0")
+  private long containerId;
+
   private ReplicationSupervisor supervisor;
 
   private Timer timer;
@@ -105,25 +110,27 @@ public class ClosedContainerReplicator extends BaseFreonGenerator implements
 
     for (ContainerInfo container : containerInfos) {
 
-      final ContainerWithPipeline containerWithPipeline =
-          containerOperationClient
-              .getContainerWithPipeline(container.getContainerID());
+      if (containerId == 0 || containerId == container.getContainerID()) {
+        final ContainerWithPipeline containerWithPipeline =
+            containerOperationClient
+                .getContainerWithPipeline(container.getContainerID());
 
-      if (container.getState() == LifeCycleState.CLOSED) {
+        if (container.getState() == LifeCycleState.CLOSED) {
 
-        final List<DatanodeDetails> datanodesWithContainer =
-            containerWithPipeline.getPipeline().getNodes();
+          final List<DatanodeDetails> datanodesWithContainer =
+              containerWithPipeline.getPipeline().getNodes();
 
-        final List<String> datanodeUUIDs =
-            datanodesWithContainer
-                .stream().map(DatanodeDetails::getUuidString)
-                .collect(Collectors.toList());
+          final List<String> datanodeUUIDs =
+              datanodesWithContainer
+                  .stream().map(DatanodeDetails::getUuidString)
+                  .collect(Collectors.toList());
 
-        //if datanode is specified, replicate only container if it has a
-        //replica.
-        if (datanode.isEmpty() || datanodeUUIDs.contains(datanode)) {
-          replicationTasks.add(new ReplicationTask(container.getContainerID(),
-              datanodesWithContainer));
+          //if datanode is specified, replicate only container if it has a
+          //replica.
+          if (datanode.isEmpty() || datanodeUUIDs.contains(datanode)) {
+            replicationTasks.add(new ReplicationTask(container.getContainerID(),
+                datanodesWithContainer));
+          }
         }
       }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org