You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by av...@apache.org on 2021/04/28 15:49:39 UTC
[ozone] branch HDDS-3698-nonrolling-upgrade updated: HDDS-4818. Add
command to get status of Finalize in OM & SCM (#2083)
This is an automated email from the ASF dual-hosted git repository.
avijayan pushed a commit to branch HDDS-3698-nonrolling-upgrade
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/HDDS-3698-nonrolling-upgrade by this push:
new 40223ec HDDS-4818. Add command to get status of Finalize in OM & SCM (#2083)
40223ec is described below
commit 40223ec6944b9aaa67b167825644592be3622966
Author: Gui Hecheng <ma...@tencent.com>
AuthorDate: Wed Apr 28 23:49:22 2021 +0800
HDDS-4818. Add command to get status of Finalize in OM & SCM (#2083)
---
.../apache/hadoop/hdds/scm/client/ScmClient.java | 3 +-
.../protocol/StorageContainerLocationProtocol.java | 3 +-
.../ozone/upgrade/BasicUpgradeFinalizer.java | 5 ++
.../hadoop/ozone/upgrade/UpgradeFinalizer.java | 5 ++
...inerLocationProtocolClientSideTranslatorPB.java | 4 +-
.../src/main/proto/ScmAdminProtocol.proto | 1 +
...inerLocationProtocolServerSideTranslatorPB.java | 2 +-
.../hdds/scm/server/SCMClientProtocolServer.java | 6 +-
.../hdds/scm/server/StorageContainerManager.java | 7 ++-
.../hdds/scm/cli/ContainerOperationClient.java | 5 +-
.../ozone/om/protocol/OzoneManagerProtocol.java | 6 +-
...OzoneManagerProtocolClientSideTranslatorPB.java | 3 +-
.../hadoop/hdds/upgrade/TestHDDSUpgrade.java | 4 +-
.../hadoop/ozone/om/TestOMUpgradeFinalization.java | 3 +-
.../src/main/proto/OmClientProtocol.proto | 1 +
.../org/apache/hadoop/ozone/om/OzoneManager.java | 7 ++-
.../protocolPB/OzoneManagerRequestHandler.java | 4 +-
.../admin/om/FinalizationStatusSubCommand.java | 64 ++++++++++++++++++++++
.../ozone/admin/om/FinalizeUpgradeSubCommand.java | 3 +-
.../org/apache/hadoop/ozone/admin/om/OMAdmin.java | 3 +-
.../admin/scm/FinalizationScmStatusSubcommand.java | 51 +++++++++++++++++
.../admin/scm/FinalizeScmUpgradeSubcommand.java | 3 +-
.../apache/hadoop/ozone/admin/scm/ScmAdmin.java | 3 +-
23 files changed, 175 insertions(+), 21 deletions(-)
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/client/ScmClient.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/client/ScmClient.java
index 0616b1c..abc448f 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/client/ScmClient.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/client/ScmClient.java
@@ -340,5 +340,6 @@ public interface ScmClient extends Closeable {
throws IOException;
StatusAndMessages queryUpgradeFinalizationProgress(
- String upgradeClientID, boolean force) throws IOException;
+ String upgradeClientID, boolean force, boolean readonly)
+ throws IOException;
}
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java
index 72d3ab3..3cddf88 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java
@@ -304,5 +304,6 @@ public interface StorageContainerLocationProtocol extends Closeable {
throws IOException;
StatusAndMessages queryUpgradeFinalizationProgress(
- String upgradeClientID, boolean force) throws IOException;
+ String upgradeClientID, boolean force, boolean readonly)
+ throws IOException;
}
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/BasicUpgradeFinalizer.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/BasicUpgradeFinalizer.java
index c4fdd5a..7609dcb 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/BasicUpgradeFinalizer.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/BasicUpgradeFinalizer.java
@@ -92,6 +92,11 @@ public abstract class BasicUpgradeFinalizer
return new StatusAndMessages(status, returningMsgs);
}
+ @Override
+ public synchronized Status getStatus() {
+ return versionManager.getUpgradeState();
+ }
+
protected void preFinalizeUpgrade(T service) throws IOException {
// No Op by default.
}
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/UpgradeFinalizer.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/UpgradeFinalizer.java
index a710e3b..44ae948 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/UpgradeFinalizer.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/UpgradeFinalizer.java
@@ -177,6 +177,11 @@ public interface UpgradeFinalizer<T> {
StatusAndMessages reportStatus(String upgradeClientId, boolean takeover)
throws IOException;
+ /**
+ * Get a readonly status of the finalization.
+ * @return the status of the finalization
+ */
+ Status getStatus();
/**
* Runs the set of pre finalized state validations and actions that need to
diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
index 87f6398..2b3b42f 100644
--- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
+++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
@@ -746,12 +746,14 @@ public final class StorageContainerLocationProtocolClientSideTranslatorPB
@Override
public StatusAndMessages queryUpgradeFinalizationProgress(
- String upgradeClientID, boolean force) throws IOException {
+ String upgradeClientID, boolean force, boolean readonly)
+ throws IOException {
QueryUpgradeFinalizationProgressRequestProto req =
QueryUpgradeFinalizationProgressRequestProto.
newBuilder()
.setUpgradeClientId(upgradeClientID)
.setTakeover(force)
+ .setReadonly(readonly)
.build();
QueryUpgradeFinalizationProgressResponseProto response =
diff --git a/hadoop-hdds/interface-admin/src/main/proto/ScmAdminProtocol.proto b/hadoop-hdds/interface-admin/src/main/proto/ScmAdminProtocol.proto
index dfd10de..ea443e6 100644
--- a/hadoop-hdds/interface-admin/src/main/proto/ScmAdminProtocol.proto
+++ b/hadoop-hdds/interface-admin/src/main/proto/ScmAdminProtocol.proto
@@ -431,6 +431,7 @@ message FinalizeScmUpgradeResponseProto {
message QueryUpgradeFinalizationProgressRequestProto {
required string upgradeClientId = 1;
optional bool takeover = 2;
+ optional bool readonly = 3;
}
message QueryUpgradeFinalizationProgressResponseProto {
required hadoop.hdds.UpgradeFinalizationStatus status = 1;
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 d630268..66093b3 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
@@ -578,7 +578,7 @@ public final class StorageContainerLocationProtocolServerSideTranslatorPB
throws IOException {
StatusAndMessages progress =
impl.queryUpgradeFinalizationProgress(request.getUpgradeClientId(),
- request.getTakeover());
+ request.getTakeover(), request.getReadonly());
UpgradeFinalizationStatus.Status protoStatus =
UpgradeFinalizationStatus.Status.valueOf(progress.status().name());
diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
index 625362d..4e1c489 100644
--- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
+++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
@@ -668,8 +668,10 @@ public class SCMClientProtocolServer implements
@Override
public StatusAndMessages queryUpgradeFinalizationProgress(
- String upgradeClientID, boolean force) throws IOException {
- return scm.queryUpgradeFinalizationProgress(upgradeClientID, force);
+ String upgradeClientID, boolean force, boolean readonly)
+ throws IOException {
+ return scm.queryUpgradeFinalizationProgress(upgradeClientID, force,
+ readonly);
}
/**
diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
index fc9fd01..03272a5 100644
--- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
+++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
@@ -137,6 +137,7 @@ import java.net.InetSocketAddress;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -1646,8 +1647,12 @@ public final class StorageContainerManager extends ServiceRuntimeInfoImpl
}
public StatusAndMessages queryUpgradeFinalizationProgress(
- String upgradeClientID, boolean takeover
+ String upgradeClientID, boolean takeover, boolean readonly
) throws IOException {
+ if (readonly) {
+ return new StatusAndMessages(upgradeFinalizer.getStatus(),
+ Collections.emptyList());
+ }
return upgradeFinalizer.reportStatus(upgradeClientID, takeover);
}
diff --git a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java
index e5295d7..93c87b2 100644
--- a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java
+++ b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java
@@ -560,8 +560,9 @@ public class ContainerOperationClient implements ScmClient {
@Override
public StatusAndMessages queryUpgradeFinalizationProgress(
- String upgradeClientID, boolean force) throws IOException {
+ String upgradeClientID, boolean force, boolean readonly)
+ throws IOException {
return storageContainerLocationClient.queryUpgradeFinalizationProgress(
- upgradeClientID, force);
+ upgradeClientID, force, readonly);
}
}
diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocol/OzoneManagerProtocol.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocol/OzoneManagerProtocol.java
index 706d126..dd85032 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocol/OzoneManagerProtocol.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocol/OzoneManagerProtocol.java
@@ -330,7 +330,8 @@ public interface OzoneManagerProtocol
*
* The leader Ozone Manager initiates finalization of the followers via
* the Raft protocol in other Ozone Managers, and reports progress to the
- * client via the {@link #queryUpgradeFinalizationProgress(String, boolean)}
+ * client via the
+ * {@link #queryUpgradeFinalizationProgress(String, boolean, boolean)}
* call.
*
* The follower Ozone Managers reject this request and directs the client to
@@ -366,6 +367,7 @@ public interface OzoneManagerProtocol
* client takes over the old client and the old client should exit.
*
* @param takeover set force takeover of output monitoring
+ * @param readonly set readonly of output
* @param upgradeClientID String identifier of the upgrade finalizer client
* @return the finalization status and status messages.
* @throws IOException
@@ -374,7 +376,7 @@ public interface OzoneManagerProtocol
* if finalization is needed but not yet started
*/
StatusAndMessages queryUpgradeFinalizationProgress(
- String upgradeClientID, boolean takeover
+ String upgradeClientID, boolean takeover, boolean readonly
) throws IOException;
/*
diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
index 4945254..7c1488c 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
@@ -1112,12 +1112,13 @@ public final class OzoneManagerProtocolClientSideTranslatorPB
@Override
public StatusAndMessages queryUpgradeFinalizationProgress(
- String upgradeClientID, boolean takeover
+ String upgradeClientID, boolean takeover, boolean readonly
) throws IOException {
FinalizeUpgradeProgressRequest req = FinalizeUpgradeProgressRequest
.newBuilder()
.setUpgradeClientId(upgradeClientID)
.setTakeover(takeover)
+ .setReadonly(readonly)
.build();
OMRequest omRequest = createOMRequest(Type.FinalizeUpgradeProgress)
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestHDDSUpgrade.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestHDDSUpgrade.java
index 608b04b..1d5a511 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestHDDSUpgrade.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestHDDSUpgrade.java
@@ -410,7 +410,7 @@ public class TestHDDSUpgrade {
// Wait for the Finalization to complete on the SCM.
while (status.status() != FINALIZATION_DONE) {
- status = scm.queryUpgradeFinalizationProgress("xyz", false);
+ status = scm.queryUpgradeFinalizationProgress("xyz", false, false);
}
Set<PipelineID> postUpgradeOpenPipelines =
@@ -1018,7 +1018,7 @@ public class TestHDDSUpgrade {
while ((status.status() != FINALIZATION_DONE) &&
(status.status() != ALREADY_FINALIZED)) {
loadSCMState();
- status = scm.queryUpgradeFinalizationProgress("xyz", true);
+ status = scm.queryUpgradeFinalizationProgress("xyz", true, false);
if (status.status() == FINALIZATION_REQUIRED) {
status = scm.finalizeUpgrade("xyz");
}
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMUpgradeFinalization.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMUpgradeFinalization.java
index 9d85fa7..f3cac33 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMUpgradeFinalization.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMUpgradeFinalization.java
@@ -239,7 +239,8 @@ public class TestOMUpgradeFinalization {
waitFor(() -> {
try {
StatusAndMessages statusAndMessages =
- omClient.queryUpgradeFinalizationProgress("finalize-test", false);
+ omClient.queryUpgradeFinalizationProgress("finalize-test", false,
+ false);
System.out.println("Finalization Messages : " +
statusAndMessages.msgs());
return statusAndMessages.status().equals(FINALIZATION_DONE);
diff --git a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto
index 660ef82..5caa63d 100644
--- a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto
+++ b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto
@@ -1075,6 +1075,7 @@ message FinalizeUpgradeResponse {
message FinalizeUpgradeProgressRequest {
required string upgradeClientId = 1;
optional bool takeover = 2;
+ optional bool readonly = 3;
}
message FinalizeUpgradeProgressResponse {
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index 9a6d741..9fd34fe 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -37,6 +37,7 @@ import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
@@ -2745,8 +2746,12 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
@Override
public StatusAndMessages queryUpgradeFinalizationProgress(
- String upgradeClientID, boolean takeover
+ String upgradeClientID, boolean takeover, boolean readonly
) throws IOException {
+ if (readonly) {
+ return new StatusAndMessages(upgradeFinalizer.getStatus(),
+ Collections.emptyList());
+ }
return upgradeFinalizer.reportStatus(upgradeClientID, takeover);
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
index 0385c8c..bbb0696 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
@@ -615,9 +615,11 @@ public class OzoneManagerRequestHandler implements RequestHandler {
FinalizeUpgradeProgressRequest request) throws IOException {
String upgradeClientId = request.getUpgradeClientId();
boolean takeover = request.getTakeover();
+ boolean readonly = request.getReadonly();
StatusAndMessages progress =
- impl.queryUpgradeFinalizationProgress(upgradeClientId, takeover);
+ impl.queryUpgradeFinalizationProgress(upgradeClientId, takeover,
+ readonly);
UpgradeFinalizationStatus.Status protoStatus =
UpgradeFinalizationStatus.Status.valueOf(progress.status().name());
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/FinalizationStatusSubCommand.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/FinalizationStatusSubCommand.java
new file mode 100644
index 0000000..0af5400
--- /dev/null
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/FinalizationStatusSubCommand.java
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package org.apache.hadoop.ozone.admin.om;
+
+import org.apache.hadoop.hdds.cli.HddsVersionProvider;
+import org.apache.hadoop.ozone.om.protocol.OzoneManagerProtocol;
+import org.apache.hadoop.ozone.upgrade.UpgradeFinalizer;
+import picocli.CommandLine;
+
+import java.util.UUID;
+import java.util.concurrent.Callable;
+
+/**
+ * Handler of ozone admin om finalizationstatus command.
+ */
+@CommandLine.Command(
+ name = "finalizationstatus",
+ description = "Get the finalization status of om cluster.",
+ mixinStandardHelpOptions = true,
+ versionProvider = HddsVersionProvider.class
+)
+public class FinalizationStatusSubCommand implements Callable<Void> {
+
+ @CommandLine.ParentCommand
+ private OMAdmin parent;
+
+ @CommandLine.Option(
+ names = {"-id", "--service-id"},
+ description = "Ozone Manager Service ID"
+ )
+ private String omServiceId;
+
+ @CommandLine.Option(
+ names = {"-host", "--service-host"},
+ description = "Ozone Manager Host"
+ )
+ private String omHost;
+
+ @Override
+ public Void call() throws Exception {
+ OzoneManagerProtocol client =
+ parent.createOmClient(omServiceId, omHost, false);
+ String upgradeClientID = "Upgrade-Client-" + UUID.randomUUID().toString();
+ UpgradeFinalizer.StatusAndMessages progress =
+ client.queryUpgradeFinalizationProgress(upgradeClientID, false, true);
+ System.out.println(progress.status());
+ return null;
+ }
+}
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/FinalizeUpgradeSubCommand.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/FinalizeUpgradeSubCommand.java
index a943da5..922e788 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/FinalizeUpgradeSubCommand.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/FinalizeUpgradeSubCommand.java
@@ -148,7 +148,8 @@ public class FinalizeUpgradeSubCommand implements Callable<Void> {
// do not check for exceptions, if one happens during monitoring we
// should report it and exit.
UpgradeFinalizer.StatusAndMessages progress =
- client.queryUpgradeFinalizationProgress(upgradeClientID, force);
+ client.queryUpgradeFinalizationProgress(upgradeClientID, force,
+ false);
// this can happen after trying to takeover the request after the fact
// when there is already nothing to take over.
if (isFinalized(progress.status())) {
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/OMAdmin.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/OMAdmin.java
index 6c39de0..a11ce25 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/OMAdmin.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/om/OMAdmin.java
@@ -56,7 +56,8 @@ import java.util.Collection;
FinalizeUpgradeSubCommand.class,
GetServiceRolesSubcommand.class,
PrepareSubCommand.class,
- CancelPrepareSubCommand.class
+ CancelPrepareSubCommand.class,
+ FinalizationStatusSubCommand.class
})
@MetaInfServices(SubcommandWithParent.class)
public class OMAdmin extends GenericCli implements SubcommandWithParent {
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizationScmStatusSubcommand.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizationScmStatusSubcommand.java
new file mode 100644
index 0000000..cf320a5
--- /dev/null
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizationScmStatusSubcommand.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.admin.scm;
+
+import java.io.IOException;
+import java.util.UUID;
+
+import org.apache.hadoop.hdds.cli.HddsVersionProvider;
+import org.apache.hadoop.hdds.scm.cli.ScmSubcommand;
+import org.apache.hadoop.hdds.scm.client.ScmClient;
+import org.apache.hadoop.ozone.upgrade.UpgradeFinalizer;
+
+import picocli.CommandLine;
+
+/**
+ * Handler of FinalizationStatus SCM command.
+ */
+@CommandLine.Command(
+ name = "finalizationstatus",
+ description = "Finalization SCM Status",
+ mixinStandardHelpOptions = true,
+ versionProvider = HddsVersionProvider.class)
+public class FinalizationScmStatusSubcommand extends ScmSubcommand {
+
+ @CommandLine.ParentCommand
+ private ScmAdmin parent;
+
+ @Override
+ public void execute(ScmClient client) throws IOException {
+ String upgradeClientID = "Upgrade-Client-" + UUID.randomUUID().toString();
+ UpgradeFinalizer.StatusAndMessages progress =
+ client.queryUpgradeFinalizationProgress(upgradeClientID, false, true);
+ System.out.println(progress.status());
+ }
+}
\ No newline at end of file
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizeScmUpgradeSubcommand.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizeScmUpgradeSubcommand.java
index aac050a..b2a1ecc 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizeScmUpgradeSubcommand.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizeScmUpgradeSubcommand.java
@@ -133,7 +133,8 @@ public class FinalizeScmUpgradeSubcommand extends ScmSubcommand {
// do not check for exceptions, if one happens during monitoring we
// should report it and exit.
UpgradeFinalizer.StatusAndMessages progress =
- client.queryUpgradeFinalizationProgress(upgradeClientID, force);
+ client.queryUpgradeFinalizationProgress(upgradeClientID, force,
+ false);
// this can happen after trying to takeover the request after the fact
// when there is already nothing to take over.
if (isFinalized(progress.status())) {
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/ScmAdmin.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/ScmAdmin.java
index 1f63c73..006418a 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/ScmAdmin.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/ScmAdmin.java
@@ -36,7 +36,8 @@ import picocli.CommandLine.Spec;
versionProvider = HddsVersionProvider.class,
subcommands = {
GetScmRatisRolesSubcommand.class,
- FinalizeScmUpgradeSubcommand.class
+ FinalizeScmUpgradeSubcommand.class,
+ FinalizationScmStatusSubcommand.class
})
@MetaInfServices(SubcommandWithParent.class)
public class ScmAdmin extends GenericCli implements SubcommandWithParent {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org