diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/UpgradeFinalization.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/UpgradeFinalization.java index 131469e43411..0afcc2c7b230 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/UpgradeFinalization.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/upgrade/UpgradeFinalization.java @@ -17,6 +17,9 @@ package org.apache.hadoop.ozone.upgrade; +import static org.apache.hadoop.ozone.upgrade.UpgradeException.ResultCodes.INVALID_REQUEST; + +import java.io.IOException; import java.util.Collection; import java.util.Collections; import org.apache.hadoop.hdds.annotation.InterfaceAudience; @@ -110,6 +113,60 @@ public Collection msgs() { } } + public static void handleInvalidRequestAfterInitiatingFinalization( + boolean force, UpgradeException e) throws IOException { + if (INVALID_REQUEST.equals(e.getResult())) { + if (force) { + return; + } + System.err.println("Finalization is already in progress, it is not" + + "possible to initiate it again."); + e.printStackTrace(System.err); + System.err.println("If you want to track progress from a new client" + + "for any reason, use --takeover, and the status update will be" + + "received by the new client. Note that with forcing to monitor" + + "progress from a new client, the old one initiated the upgrade" + + "will not be able to monitor the progress further and exit."); + throw new IOException("Exiting..."); + } else { + throw e; + } + } + + public static void emitExitMsg() { + System.out.println("Exiting..."); + } + + public static boolean isFinalized(Status status) { + return Status.ALREADY_FINALIZED.equals(status); + } + + public static boolean isDone(Status status) { + return Status.FINALIZATION_DONE.equals(status); + } + + public static boolean isInprogress(Status status) { + return Status.FINALIZATION_IN_PROGRESS.equals(status); + } + + public static boolean isStarting(Status status) { + return Status.STARTING_FINALIZATION.equals(status); + } + + public static void emitGeneralErrorMsg() { + System.err.println("Finalization was not successful."); + } + + public static void emitFinishedMsg(String component) { + System.out.println("Finalization of " + component + "'s metadata upgrade " + + "finished."); + } + + public static void emitCancellationMsg(String component) { + System.err.println("Finalization command was cancelled. Note that, this" + + "will not cancel finalization in " + component + ". Progress can be" + + "monitored in the Ozone Manager's log."); + } private UpgradeFinalization() { // no instances } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestHSyncUpgrade.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestHSyncUpgrade.java index 866393ec0dbf..167559e324e1 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestHSyncUpgrade.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestHSyncUpgrade.java @@ -22,8 +22,6 @@ import static org.apache.hadoop.ozone.OzoneConsts.OZONE_OFS_URI_SCHEME; import static org.apache.hadoop.ozone.OzoneConsts.OZONE_ROOT; import static org.apache.hadoop.ozone.OzoneConsts.OZONE_URI_DELIMITER; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isDone; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isStarting; import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_DEFAULT_BUCKET_LAYOUT; import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_DIR_DELETING_SERVICE_INTERVAL; import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_ADDRESS_KEY; @@ -32,6 +30,8 @@ import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_OPEN_KEY_EXPIRE_THRESHOLD; import static org.apache.hadoop.ozone.om.OmUpgradeConfig.ConfigStrings.OZONE_OM_INIT_DEFAULT_LAYOUT_VERSION; import static org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.NOT_SUPPORTED_OPERATION_PRIOR_FINALIZATION; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isDone; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isStarting; import static org.apache.ozone.test.LambdaTestUtils.await; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/multitenant/TestMultiTenantVolume.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/multitenant/TestMultiTenantVolume.java index 27d39b3d0244..7d80fba7aa89 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/multitenant/TestMultiTenantVolume.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/multitenant/TestMultiTenantVolume.java @@ -17,10 +17,10 @@ package org.apache.hadoop.ozone.om.multitenant; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isDone; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isStarting; import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_MULTITENANCY_ENABLED; import static org.apache.hadoop.ozone.om.OmUpgradeConfig.ConfigStrings.OZONE_OM_INIT_DEFAULT_LAYOUT_VERSION; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isDone; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isStarting; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java index f099e88cbeae..8c5a623e9c8c 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshot.java @@ -23,8 +23,6 @@ import static org.apache.hadoop.ozone.OzoneAcl.AclScope.DEFAULT; import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_SNAPSHOT_DELETING_SERVICE_INTERVAL; import static org.apache.hadoop.ozone.OzoneConsts.OM_KEY_PREFIX; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isDone; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isStarting; import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_DEFAULT_BUCKET_LAYOUT; import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_ENABLE_FILESYSTEM_PATHS; import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_SNAPSHOT_DIFF_DISABLE_NATIVE_LIBS; @@ -46,6 +44,8 @@ import static org.apache.hadoop.ozone.snapshot.SnapshotDiffResponse.JobStatus.CANCELLED; import static org.apache.hadoop.ozone.snapshot.SnapshotDiffResponse.JobStatus.DONE; import static org.apache.hadoop.ozone.snapshot.SnapshotDiffResponse.JobStatus.IN_PROGRESS; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isDone; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isStarting; import static org.apache.ozone.rocksdiff.RocksDBCheckpointDiffer.COLUMN_FAMILIES_TO_TRACK_IN_DAG; import static org.apache.ozone.test.LambdaTestUtils.await; import static org.assertj.core.api.Assertions.assertThat; 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 3a6f0fc3257a..45dbaf55e4a6 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 @@ -17,15 +17,15 @@ package org.apache.hadoop.ozone.admin.om; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.emitCancellationMsg; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.emitExitMsg; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.emitFinishedMsg; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.emitGeneralErrorMsg; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.handleInvalidRequestAfterInitiatingFinalization; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isDone; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isFinalized; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isInprogress; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isStarting; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.emitCancellationMsg; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.emitExitMsg; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.emitFinishedMsg; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.emitGeneralErrorMsg; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.handleInvalidRequestAfterInitiatingFinalization; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isDone; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isFinalized; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isInprogress; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isStarting; import java.io.IOException; import java.util.UUID; 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 63f928e0998d..4b123c943c1b 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 @@ -17,15 +17,15 @@ package org.apache.hadoop.ozone.admin.scm; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.emitCancellationMsg; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.emitExitMsg; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.emitFinishedMsg; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.emitGeneralErrorMsg; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.handleInvalidRequestAfterInitiatingFinalization; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isDone; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isFinalized; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isInprogress; -import static org.apache.hadoop.ozone.admin.scm.FinalizeUpgradeCommandUtil.isStarting; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.emitCancellationMsg; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.emitExitMsg; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.emitFinishedMsg; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.emitGeneralErrorMsg; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.handleInvalidRequestAfterInitiatingFinalization; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isDone; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isFinalized; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isInprogress; +import static org.apache.hadoop.ozone.upgrade.UpgradeFinalization.isStarting; import java.io.IOException; import java.util.UUID; diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizeUpgradeCommandUtil.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizeUpgradeCommandUtil.java deleted file mode 100644 index f46cf83496ca..000000000000 --- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/scm/FinalizeUpgradeCommandUtil.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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 - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * 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 static org.apache.hadoop.ozone.upgrade.UpgradeException.ResultCodes.INVALID_REQUEST; - -import java.io.IOException; -import org.apache.hadoop.ozone.upgrade.UpgradeException; -import org.apache.hadoop.ozone.upgrade.UpgradeFinalization; - -/** - * Base class to help with Upgrade finalization command. - */ - -public final class FinalizeUpgradeCommandUtil { - - private FinalizeUpgradeCommandUtil() { - - } - - public static void handleInvalidRequestAfterInitiatingFinalization( - boolean force, UpgradeException e) throws IOException { - if (e.getResult().equals(INVALID_REQUEST)) { - if (force) { - return; - } - System.err.println("Finalization is already in progress, it is not" - + "possible to initiate it again."); - e.printStackTrace(System.err); - System.err.println("If you want to track progress from a new client" - + "for any reason, use --takeover, and the status update will be" - + "received by the new client. Note that with forcing to monitor" - + "progress from a new client, the old one initiated the upgrade" - + "will not be able to monitor the progress further and exit."); - throw new IOException("Exiting..."); - } else { - throw e; - } - } - - public static void emitExitMsg() { - System.out.println("Exiting..."); - } - - public static boolean isFinalized(UpgradeFinalization.Status status) { - return status.equals(UpgradeFinalization.Status.ALREADY_FINALIZED); - } - - public static boolean isDone(UpgradeFinalization.Status status) { - return status.equals(UpgradeFinalization.Status.FINALIZATION_DONE); - } - - public static boolean isInprogress(UpgradeFinalization.Status status) { - return status.equals(UpgradeFinalization.Status.FINALIZATION_IN_PROGRESS); - } - - public static boolean isStarting(UpgradeFinalization.Status status) { - return status.equals(UpgradeFinalization.Status.STARTING_FINALIZATION); - } - - public static void emitGeneralErrorMsg() { - System.err.println("Finalization was not successful."); - } - - public static void emitFinishedMsg(String component) { - System.out.println("Finalization of " + component + "'s metadata upgrade " - + "finished."); - } - - public static void emitCancellationMsg(String component) { - System.err.println("Finalization command was cancelled. Note that, this" - + "will not cancel finalization in " + component + ". Progress can be" - + "monitored in the Ozone Manager's log."); - } -}