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

nanda 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 7f22731005 HDDS-8928. SCM Decommissioning command should exit with 
non-zero code on failure. (#5049)
7f22731005 is described below

commit 7f22731005e14ad9f5c8b9e86090bfbbb388a448
Author: Nandakumar <[email protected]>
AuthorDate: Wed Jul 12 18:03:09 2023 +0530

    HDDS-8928. SCM Decommissioning command should exit with non-zero code on 
failure. (#5049)
---
 .../hadoop/ozone/admin/scm/DecommissionScmSubcommand.java     |  6 ++++--
 .../hadoop/ozone/scm/TestDecommissionScmSubcommand.java       | 11 ++++++-----
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/DecommissionScmSubcommand.java
 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/DecommissionScmSubcommand.java
index e1a77561d8..aa8bd3abf6 100644
--- 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/DecommissionScmSubcommand.java
+++ 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/DecommissionScmSubcommand.java
@@ -49,10 +49,12 @@ public class DecommissionScmSubcommand extends 
ScmSubcommand {
   public void execute(ScmClient scmClient) throws IOException {
     DecommissionScmResponseProto response = scmClient.decommissionScm(nodeId);
     if (!response.getSuccess()) {
-      System.out.println("Error decommissioning Scm " + nodeId);
+      String errorMsg = "Error decommissioning Scm " + nodeId;
       if (response.hasErrorMsg()) {
-        System.out.println(response.getErrorMsg());
+        errorMsg = errorMsg + ", " + response.getErrorMsg();
       }
+      // Throwing exception to create non-zero exit code in case of failure.
+      throw new IOException(errorMsg);
     } else {
       System.out.println("Decommissioned Scm " + nodeId);
     }
diff --git 
a/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/scm/TestDecommissionScmSubcommand.java
 
b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/scm/TestDecommissionScmSubcommand.java
index a7ba74949a..2cb3be1d0b 100644
--- 
a/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/scm/TestDecommissionScmSubcommand.java
+++ 
b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/scm/TestDecommissionScmSubcommand.java
@@ -23,11 +23,14 @@ import org.apache.hadoop.hdds.scm.client.ScmClient;
 import org.apache.hadoop.ozone.admin.scm.DecommissionScmSubcommand;
 import org.apache.ozone.test.GenericTestUtils;
 
+import java.io.IOException;
 import java.util.UUID;
 
 import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import org.mockito.Mockito;
+
+import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.mock;
 import picocli.CommandLine;
@@ -98,11 +101,9 @@ public class TestDecommissionScmSubcommand {
     try (GenericTestUtils.SystemOutCapturer capture =
              new GenericTestUtils.SystemOutCapturer()) {
       cmd.execute(client);
-      assertTrue(capture.getOutput().contains(
-          "remove current leader"));
+      fail();
+    } catch (IOException ex) {
+      assertTrue(ex.getMessage().contains("remove current leader"));
     }
   }
-
-  // TODO: test decommission revoke certificate
-
 }


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

Reply via email to