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]