You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by ad...@apache.org on 2023/04/01 13:51:35 UTC
[ozone] branch master updated: HDDS-8185. Implement JSON output for datanode list (#4508)
This is an automated email from the ASF dual-hosted git repository.
adoroszlai 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 7b570dfa7a HDDS-8185. Implement JSON output for datanode list (#4508)
7b570dfa7a is described below
commit 7b570dfa7a23661a30b071bcf3502699e5cc6341
Author: jyotirmoy-gh <69...@users.noreply.github.com>
AuthorDate: Sat Apr 1 19:21:28 2023 +0530
HDDS-8185. Implement JSON output for datanode list (#4508)
---
.../hadoop/hdds/scm/cli/datanode/ListInfoSubcommand.java | 16 +++++++++++++++-
.../dist/src/main/smoketest/admincli/datanode.robot | 6 ++++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/ListInfoSubcommand.java b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/ListInfoSubcommand.java
index 6e6e3cf0ec..08daa1fa71 100644
--- a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/ListInfoSubcommand.java
+++ b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/ListInfoSubcommand.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.cli.ScmSubcommand;
import org.apache.hadoop.hdds.scm.client.ScmClient;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
+import org.apache.hadoop.hdds.server.JsonUtils;
import picocli.CommandLine;
import java.io.IOException;
@@ -65,6 +66,11 @@ public class ListInfoSubcommand extends ScmSubcommand {
defaultValue = "")
private String nodeState;
+ @CommandLine.Option(names = { "--json" },
+ description = "Show info in json format",
+ defaultValue = "false")
+ private boolean json;
+
private List<Pipeline> pipelines;
@@ -88,7 +94,15 @@ public class ListInfoSubcommand extends ScmSubcommand {
allNodes = allNodes.filter(p -> p.getHealthState().toString()
.compareToIgnoreCase(nodeState) == 0);
}
- allNodes.forEach(this::printDatanodeInfo);
+
+ if (json) {
+ List<DatanodeWithAttributes> datanodeList = allNodes.collect(
+ Collectors.toList());
+ System.out.print(
+ JsonUtils.toJsonStringWithDefaultPrettyPrinter(datanodeList));
+ } else {
+ allNodes.forEach(this::printDatanodeInfo);
+ }
}
private List<DatanodeWithAttributes> getAllNodes(ScmClient scmClient)
diff --git a/hadoop-ozone/dist/src/main/smoketest/admincli/datanode.robot b/hadoop-ozone/dist/src/main/smoketest/admincli/datanode.robot
index b4ab5bf25c..9f31afb254 100644
--- a/hadoop-ozone/dist/src/main/smoketest/admincli/datanode.robot
+++ b/hadoop-ozone/dist/src/main/smoketest/admincli/datanode.robot
@@ -62,3 +62,9 @@ Incomplete command
#List datanodes on unknown host
# ${output} = Execute And Ignore Error ozone admin --verbose datanode list --scm unknown-host
# Should contain ${output} Invalid host name
+
+List datanodes as JSON
+ ${output} = Execute ozone admin datanode list --json | jq -r '.'
+ Should contain ${output} datanodeDetails
+ Should contain ${output} healthState
+ Should contain ${output} opState
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org