This is an automated email from the ASF dual-hosted git repository.
sodonnell 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 537bac8887 HDDS-7176. Sort the container replica according to the
replica index (#3720)
537bac8887 is described below
commit 537bac88875f5f4b5fd47476aea105059dccbc76
Author: Nibiru <[email protected]>
AuthorDate: Wed Aug 31 03:01:37 2022 +0800
HDDS-7176. Sort the container replica according to the replica index (#3720)
---
.../hdds/scm/cli/container/InfoSubcommand.java | 6 ++++--
.../hdds/scm/cli/container/TestInfoSubCommand.java | 22 +++++++++++++++++++++-
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git
a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/container/InfoSubcommand.java
b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/container/InfoSubcommand.java
index 25ed0e5df5..7f5f48fea1 100644
---
a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/container/InfoSubcommand.java
+++
b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/container/InfoSubcommand.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.hdds.scm.cli.container;
import java.io.IOException;
+import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@@ -104,8 +105,9 @@ public class InfoSubcommand extends ScmSubcommand {
// Print the replica details if available
if (replicas != null) {
- String replicaStr = replicas.stream().map(
- InfoSubcommand::buildReplicaDetails)
+ String replicaStr = replicas.stream()
+
.sorted(Comparator.comparing(ContainerReplicaInfo::getReplicaIndex))
+ .map(InfoSubcommand::buildReplicaDetails)
.collect(Collectors.joining(",\n"));
LOG.info("Replicas: [{}]", replicaStr);
}
diff --git
a/hadoop-hdds/tools/src/test/java/org/apache/hadoop/hdds/scm/cli/container/TestInfoSubCommand.java
b/hadoop-hdds/tools/src/test/java/org/apache/hadoop/hdds/scm/cli/container/TestInfoSubCommand.java
index 6e605c8c79..128708c44a 100644
---
a/hadoop-hdds/tools/src/test/java/org/apache/hadoop/hdds/scm/cli/container/TestInfoSubCommand.java
+++
b/hadoop-hdds/tools/src/test/java/org/apache/hadoop/hdds/scm/cli/container/TestInfoSubCommand.java
@@ -114,6 +114,16 @@ public class TestInfoSubCommand {
Matcher matcher = pattern.matcher(replica.get(0).getRenderedMessage());
Assertions.assertTrue(matcher.matches());
}
+ // Ensure the replicaIndex output is in order
+ if (includeIndex) {
+ List<Integer> indexList = new ArrayList<>();
+ for (int i = 1; i < datanodes.size() + 1; i++) {
+ String temp = "ReplicaIndex: " + i;
+ indexList.add(replica.get(0).getRenderedMessage().indexOf(temp));
+ }
+ Assertions.assertEquals(datanodes.size(), indexList.size());
+ Assertions.assertTrue(inSort(indexList));
+ }
// Ensure ReplicaIndex is not mentioned as it was not passed in the proto:
Pattern pattern = Pattern.compile(".*ReplicaIndex.*",
Pattern.DOTALL);
@@ -181,6 +191,15 @@ public class TestInfoSubCommand {
testJsonOutput();
}
+ private static boolean inSort(List<Integer> list) {
+ for (int i = 0; i < list.size(); i++) {
+ if (list.indexOf(i) > list.indexOf(i + 1)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
private void testJsonOutput() throws IOException {
cmd = new InfoSubcommand();
CommandLine c = new CommandLine(cmd);
@@ -208,6 +227,7 @@ public class TestInfoSubCommand {
private List<ContainerReplicaInfo> getReplicas(boolean includeIndex) {
List<ContainerReplicaInfo> replicas = new ArrayList<>();
+ int index = 1;
for (DatanodeDetails dn : datanodes) {
ContainerReplicaInfo.Builder container
= new ContainerReplicaInfo.Builder()
@@ -219,7 +239,7 @@ public class TestInfoSubCommand {
.setKeyCount(1)
.setSequenceId(1);
if (includeIndex) {
- container.setReplicaIndex(4);
+ container.setReplicaIndex(index++);
}
replicas.add(container.build());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]