This is an automated email from the ASF dual-hosted git repository.
sodonnell pushed a commit to branch HDDS-5713
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/HDDS-5713 by this push:
new d7651d120e HDDS-10299. [DiskBalancer] Status command should output all
statuses by default (#6170)
d7651d120e is described below
commit d7651d120e1bf7c3af2ce3c568c69962a8636a29
Author: Stephen O'Donnell <[email protected]>
AuthorDate: Tue Feb 6 10:38:43 2024 +0000
HDDS-10299. [DiskBalancer] Status command should output all statuses by
default (#6170)
Co-authored-by: S O'Donnell <[email protected]>
---
...inerLocationProtocolServerSideTranslatorPB.java | 4 +++-
.../cli/datanode/DiskBalancerStatusSubcommand.java | 22 ++++------------------
2 files changed, 7 insertions(+), 19 deletions(-)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
index 397eed331a..4773aa123f 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
@@ -1318,7 +1318,9 @@ public final class
StorageContainerLocationProtocolServerSideTranslatorPB
case status:
infoProtoList = impl.getDiskBalancerStatus(
Optional.of(request.getHostsList()),
- Optional.of(request.getStatus()),
+ // If an optional proto enum field is not set, it will return the
first
+ // enum value. So, we need to check if the field is set.
+ request.hasStatus() ? Optional.of(request.getStatus()) :
Optional.empty(),
clientVersion);
break;
default:
diff --git
a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/DiskBalancerStatusSubcommand.java
b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/DiskBalancerStatusSubcommand.java
index 84dd3abe95..ffb3cd4367 100644
---
a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/DiskBalancerStatusSubcommand.java
+++
b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/DiskBalancerStatusSubcommand.java
@@ -27,12 +27,8 @@ import picocli.CommandLine.Option;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
import java.util.List;
-import java.util.Locale;
import java.util.Optional;
-import java.util.Set;
/**
* Handler to get disk balancer status.
@@ -44,12 +40,9 @@ import java.util.Set;
versionProvider = HddsVersionProvider.class)
public class DiskBalancerStatusSubcommand extends ScmSubcommand {
- private final Set<String> stateSet =
- new HashSet<>(Arrays.asList("RUNNING", "STOPPED", "UNKNOWN"));
-
@Option(names = {"-s", "--state"},
- description = "RUNNING, STOPPED, UNKNOWN. Default state is RUNNING.")
- private String state = "RUNNING";
+ description = "Display only datanodes with the given status: RUNNING,
STOPPED, UNKNOWN.")
+ private HddsProtos.DiskBalancerRunningStatus state = null;
@CommandLine.Option(names = {"-d", "--datanodes"},
description = "Get diskBalancer status on specific datanodes.")
@@ -57,17 +50,10 @@ public class DiskBalancerStatusSubcommand extends
ScmSubcommand {
@Override
public void execute(ScmClient scmClient) throws IOException {
- if (state != null && !stateSet.contains(state.toUpperCase(Locale.ROOT))) {
- System.err.println("Unsupported state: " + state);
- }
-
- assert state != null;
List<HddsProtos.DatanodeDiskBalancerInfoProto> resultProto =
scmClient.getDiskBalancerStatus(
- hosts.size() == 0 ? Optional.empty() : Optional.of(hosts),
- Optional.of(HddsProtos.DiskBalancerRunningStatus.valueOf(
- state.toUpperCase(Locale.ROOT)))
- );
+ hosts.isEmpty() ? Optional.empty() : Optional.of(hosts),
+ state == null ? Optional.empty() : Optional.of(state));
System.out.println(generateStatus(resultProto));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]