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 fbb792d46d HDDS-11945. Improve startup message for ozone repair 
commands (#7591)
fbb792d46d is described below

commit fbb792d46d1b084e14123a7033b50906f8937e13
Author: Sarveksha Yeshavantha Raju 
<[email protected]>
AuthorDate: Fri Jan 3 14:57:48 2025 +0530

    HDDS-11945. Improve startup message for ozone repair commands (#7591)
---
 .../apache/hadoop/ozone/repair/OzoneRepair.java    |  7 +++++-
 .../hadoop/ozone/repair/TestOzoneRepair.java       | 25 ++++++++++++++++++++--
 2 files changed, 29 insertions(+), 3 deletions(-)

diff --git 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/repair/OzoneRepair.java
 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/repair/OzoneRepair.java
index b1ed206f97..864022da6f 100644
--- 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/repair/OzoneRepair.java
+++ 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/repair/OzoneRepair.java
@@ -31,7 +31,8 @@ import java.util.Scanner;
  * Ozone Repair Command line tool.
  */
 @CommandLine.Command(name = "ozone repair",
-    description = "Operational tool to repair Ozone",
+    description = "Advanced tool to repair Ozone. The nodes being repaired " +
+        "must be stopped before the tool is run.",
     versionProvider = HddsVersionProvider.class,
     mixinStandardHelpOptions = true)
 public class OzoneRepair extends GenericCli implements ExtensibleParentCommand 
{
@@ -46,6 +47,10 @@ public class OzoneRepair extends GenericCli implements 
ExtensibleParentCommand {
 
   @Override
   public int execute(String[] argv) {
+    if (argv.length == 0 || argv[0].equals("--help") || argv[0].equals("-h")) {
+      return super.execute(argv);
+    }
+
     String currentUser = getSystemUserName();
     if (!("y".equalsIgnoreCase(getConsoleReadLineWithFormat(currentUser)))) {
       System.out.println("Aborting command.");
diff --git 
a/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/repair/TestOzoneRepair.java
 
b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/repair/TestOzoneRepair.java
index 272bf24c06..bf6a9ed00a 100644
--- 
a/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/repair/TestOzoneRepair.java
+++ 
b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/repair/TestOzoneRepair.java
@@ -67,7 +67,7 @@ public class TestOzoneRepair {
     OzoneRepair ozoneRepair = new OzoneRepair();
     System.setIn(new ByteArrayInputStream("N".getBytes(DEFAULT_ENCODING)));
 
-    int res = ozoneRepair.execute(new String[]{});
+    int res = ozoneRepair.execute(new String[]{"om", "fso-tree"});
     assertEquals(1, res);
     assertThat(out.toString(DEFAULT_ENCODING)).contains("Aborting command.");
     // prompt should contain the current user name as well
@@ -79,10 +79,31 @@ public class TestOzoneRepair {
     OzoneRepair ozoneRepair = new OzoneRepair();
     System.setIn(new ByteArrayInputStream("y".getBytes(DEFAULT_ENCODING)));
 
-    ozoneRepair.execute(new String[]{});
+    ozoneRepair.execute(new String[]{"om", "fso-tree"});
     assertThat(out.toString(DEFAULT_ENCODING)).contains("Run as user: " + 
OZONE_USER);
     // prompt should contain the current user name as well
     assertThat(err.toString(DEFAULT_ENCODING)).contains("ATTENTION: Running as 
user " + OZONE_USER);
   }
 
+  @Test
+  void testOzoneRepairSkipsPromptWhenNoSubcommandProvided() throws Exception {
+    OzoneRepair ozoneRepair = new OzoneRepair();
+
+    // when no argument is passed, prompt should not be displayed
+    ozoneRepair.execute(new String[]{});
+    assertThat(err.toString(DEFAULT_ENCODING)).doesNotContain("ATTENTION: 
Running as user " + OZONE_USER);
+  }
+
+  @Test
+  void testOzoneRepairSkipsPromptWhenHelpFlagProvided() throws Exception {
+    OzoneRepair ozoneRepair = new OzoneRepair();
+
+    // when --help or -h flag is passed, prompt should not be displayed
+    ozoneRepair.execute(new String[]{"--help"});
+    assertThat(err.toString(DEFAULT_ENCODING)).doesNotContain("ATTENTION: 
Running as user " + OZONE_USER);
+
+    ozoneRepair.execute(new String[]{"-h"});
+    assertThat(err.toString(DEFAULT_ENCODING)).doesNotContain("ATTENTION: 
Running as user " + OZONE_USER);
+  }
+
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to