diff --git a/managed/src/main/java/Module.java b/managed/src/main/java/Module.java index bc8213befb9c5..db19901a37e8f 100644 --- a/managed/src/main/java/Module.java +++ b/managed/src/main/java/Module.java @@ -11,8 +11,8 @@ import com.yugabyte.yw.commissioner.DefaultExecutorServiceProvider; import com.yugabyte.yw.commissioner.ExecutorServiceProvider; import com.yugabyte.yw.commissioner.HealthChecker; -import com.yugabyte.yw.commissioner.SetUniverseKey; import com.yugabyte.yw.commissioner.PitrConfigPoller; +import com.yugabyte.yw.commissioner.SetUniverseKey; import com.yugabyte.yw.commissioner.SupportBundleCleanup; import com.yugabyte.yw.commissioner.TaskExecutor; import com.yugabyte.yw.commissioner.TaskGarbageCollector; @@ -58,6 +58,7 @@ import com.yugabyte.yw.controllers.MetricGrafanaController; import com.yugabyte.yw.controllers.PlatformHttpActionAdapter; import com.yugabyte.yw.metrics.MetricQueryHelper; +import com.yugabyte.yw.models.helpers.TaskTypesModule; import com.yugabyte.yw.queries.QueryHelper; import com.yugabyte.yw.scheduler.Scheduler; import de.dentrassi.crypto.pem.PemKeyStoreProvider; @@ -99,6 +100,7 @@ public void configure() { } else { log.info("Using Evolutions. Not using flyway migrations."); } + install(new TaskTypesModule()); Security.addProvider(new PemKeyStoreProvider()); Security.addProvider(new BouncyCastleProvider()); diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/Commissioner.java b/managed/src/main/java/com/yugabyte/yw/commissioner/Commissioner.java index df5c2a0a8974b..8532ee19dab3a 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/Commissioner.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/Commissioner.java @@ -85,7 +85,7 @@ public Commissioner( * @return true if abortable. */ public boolean isTaskAbortable(TaskType taskType) { - return TaskExecutor.isTaskAbortable(taskExecutor.getTaskClass(taskType)); + return TaskExecutor.isTaskAbortable(taskType.getTaskClass()); } /** @@ -95,7 +95,7 @@ public boolean isTaskAbortable(TaskType taskType) { * @return true if retryable. */ public boolean isTaskRetryable(TaskType taskType) { - return TaskExecutor.isTaskRetryable(taskExecutor.getTaskClass(taskType)); + return TaskExecutor.isTaskRetryable(taskType.getTaskClass()); } /** diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/TaskExecutor.java b/managed/src/main/java/com/yugabyte/yw/commissioner/TaskExecutor.java index 10ba0d77d6426..c708056abf1a8 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/TaskExecutor.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/TaskExecutor.java @@ -9,11 +9,9 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.api.client.util.Throwables; -import com.google.inject.Provider; import com.google.common.annotations.VisibleForTesting; -import com.google.common.collect.BiMap; -import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.Sets; +import com.google.inject.Provider; import com.yugabyte.yw.commissioner.ITask.Abortable; import com.yugabyte.yw.commissioner.ITask.Retryable; import com.yugabyte.yw.commissioner.UserTaskDetails.SubTaskGroupType; @@ -35,7 +33,6 @@ import java.time.Duration; import java.time.Instant; import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,8 +58,6 @@ import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import play.Application; -import play.api.Play; /** * TaskExecutor is the executor service for tasks and their subtasks. It is very similar to the @@ -122,7 +117,7 @@ public class TaskExecutor { // This is a map from the task types to the classes. - private final BiMap> taskTypeClassBiMap; + private final Map> taskTypeMap; // Task futures are waited for this long before checking abort status. private static final long TASK_SPIN_WAIT_INTERVAL_MS = 2000; @@ -142,8 +137,7 @@ public class TaskExecutor { // A utility for Platform HA. private final PlatformReplicationManager replicationManager; - - private final Provider application; + private final Map, TaskType> inverseTaskTypeMap; private final AtomicBoolean isShutdown = new AtomicBoolean(); @@ -171,27 +165,6 @@ public class TaskExecutor { KnownAlertLabels.TASK_TYPE.labelName(), KnownAlertLabels.RESULT.labelName()); - private Map> buildTaskTypesMap() { - // Initialize the map which holds the task types to their task class. - Map> typeMap = new HashMap<>(); - - for (TaskType taskType : TaskType.filteredValues()) { - // TODO: switch to guice map binder instead of this reflection usage. - String className = "com.yugabyte.yw.commissioner.tasks." + taskType.toString(); - Class taskClass; - try { - taskClass = Class.forName(className).asSubclass(ITask.class); - typeMap.put(taskType, taskClass); - log.debug("Found task: {}", className); - } catch (ClassNotFoundException e) { - log.error("Could not find task for task type " + taskType, e); - throw new RuntimeException(e); - } - } - log.debug("Done loading tasks."); - return typeMap; - } - private static Summary buildSummary(String name, String description, String... labelNames) { return Summary.build(name, description) .quantile(0.5, 0.05) @@ -217,11 +190,6 @@ private static void writeTaskStateMetric( .observe(getDurationSeconds(startTime, endTime)); } - Class getTaskClass(TaskType taskType) { - checkNotNull(taskType, "Task type must be non-null"); - return taskTypeClassBiMap.get(taskType); - } - // It looks for the annotation starting from the current class to its super classes until it // finds. If it is not found, it returns false, else the value of enabled is returned. It is // possible to override an annotation already defined in the superclass. @@ -248,27 +216,26 @@ static boolean isTaskRetryable(Class taskClass) { */ public TaskType getTaskType(Class taskClass) { checkNotNull(taskClass, "Task class must be non-null"); - return taskTypeClassBiMap.inverse().get(taskClass); + return inverseTaskTypeMap.get(taskClass); } @Inject public TaskExecutor( - Provider application, ShutdownHookHandler shutdownHookHandler, ExecutorServiceProvider executorServiceProvider, - PlatformReplicationManager replicationManager) { - this.application = application; + PlatformReplicationManager replicationManager, + Map> taskTypeMap, + Map, TaskType> inverseTaskTypeMap) { this.executorServiceProvider = executorServiceProvider; this.replicationManager = replicationManager; this.taskOwner = Util.getHostname(); this.skipSubTaskAbortableCheck = true; shutdownHookHandler.addShutdownHook( TaskExecutor.this, - (taskExecutor) -> { - taskExecutor.shutdown(Duration.ofMinutes(5)); - }, + (taskExecutor) -> taskExecutor.shutdown(Duration.ofMinutes(5)), 100 /* weight */); - taskTypeClassBiMap = ImmutableBiMap.copyOf(buildTaskTypesMap()); + this.taskTypeMap = taskTypeMap; + this.inverseTaskTypeMap = inverseTaskTypeMap; } // Shuts down the task executor. @@ -314,7 +281,7 @@ private void checkTaskExecutorState() { public RunnableTask createRunnableTask(TaskType taskType, ITaskParams taskParams) { checkNotNull(taskType, "Task type must be set"); checkNotNull(taskParams, "Task params must be set"); - ITask task = this.application.get().injector().instanceOf(taskTypeClassBiMap.get(taskType)); + ITask task = taskTypeMap.get(taskType).get(); task.initialize(taskParams); return createRunnableTask(task); } @@ -470,7 +437,7 @@ public SubTaskGroup createSubTaskGroup( @VisibleForTesting TaskInfo createTaskInfo(ITask task) { - TaskType taskType = TaskType.valueOf(task.getClass().getSimpleName()); + TaskType taskType = getTaskType(task.getClass()); // Create a new task info object. TaskInfo taskInfo = new TaskInfo(taskType); // Set the task details. @@ -970,7 +937,7 @@ public class RunnableTask extends AbstractRunnableTask { private final TaskCache taskCache = new TaskCache(); // Current execution position of subtasks. private int subTaskPosition = 0; - private AtomicReference taskExecutionListenerRef = + private final AtomicReference taskExecutionListenerRef = new AtomicReference<>(); // Time when the abort is set. private volatile Instant abortTime; diff --git a/managed/src/main/java/com/yugabyte/yw/models/helpers/TaskType.java b/managed/src/main/java/com/yugabyte/yw/models/helpers/TaskType.java index 2bcaa7f8ab19d..f133d8b19c3ba 100644 --- a/managed/src/main/java/com/yugabyte/yw/models/helpers/TaskType.java +++ b/managed/src/main/java/com/yugabyte/yw/models/helpers/TaskType.java @@ -1,5 +1,6 @@ package com.yugabyte.yw.models.helpers; +import com.yugabyte.yw.commissioner.ITask; import java.lang.reflect.Field; import java.util.Arrays; import java.util.List; @@ -9,420 +10,459 @@ public enum TaskType { // Tasks that are CustomerTasks - CloudBootstrap("CloudBootstrap"), + CloudBootstrap(com.yugabyte.yw.commissioner.tasks.CloudBootstrap.class), - CloudCleanup("CloudCleanup"), + CloudCleanup(com.yugabyte.yw.commissioner.tasks.CloudCleanup.class), - CreateCassandraTable("CreateCassandraTable"), + CreateCassandraTable(com.yugabyte.yw.commissioner.tasks.CreateCassandraTable.class), - CreateUniverse("CreateUniverse"), + CreateUniverse(com.yugabyte.yw.commissioner.tasks.CreateUniverse.class), - ReadOnlyClusterCreate("ReadOnlyClusterCreate"), + ReadOnlyClusterCreate(com.yugabyte.yw.commissioner.tasks.ReadOnlyClusterCreate.class), - ReadOnlyKubernetesClusterDelete("ReadOnlyKubernetesClusterDelete"), + ReadOnlyKubernetesClusterDelete( + com.yugabyte.yw.commissioner.tasks.ReadOnlyKubernetesClusterDelete.class), - ReadOnlyClusterDelete("ReadOnlyClusterDelete"), + ReadOnlyClusterDelete(com.yugabyte.yw.commissioner.tasks.ReadOnlyClusterDelete.class), - CreateKubernetesUniverse("CreateKubernetesUniverse"), + CreateKubernetesUniverse(com.yugabyte.yw.commissioner.tasks.CreateKubernetesUniverse.class), - ReadOnlyKubernetesClusterCreate("ReadOnlyKubernetesClusterCreate"), + ReadOnlyKubernetesClusterCreate( + com.yugabyte.yw.commissioner.tasks.ReadOnlyKubernetesClusterCreate.class), - DestroyUniverse("DestroyUniverse"), + DestroyUniverse(com.yugabyte.yw.commissioner.tasks.DestroyUniverse.class), - PauseUniverse("PauseUniverse"), + PauseUniverse(com.yugabyte.yw.commissioner.tasks.PauseUniverse.class), - ResumeUniverse("ResumeUniverse"), + ResumeUniverse(com.yugabyte.yw.commissioner.tasks.ResumeUniverse.class), - DestroyKubernetesUniverse("DestroyKubernetesUniverse"), + DestroyKubernetesUniverse(com.yugabyte.yw.commissioner.tasks.DestroyKubernetesUniverse.class), - DeleteTable("DeleteTable"), + DeleteTable(com.yugabyte.yw.commissioner.tasks.DeleteTable.class), - BackupUniverse("BackupUniverse"), + BackupUniverse(com.yugabyte.yw.commissioner.tasks.BackupUniverse.class), - RestoreBackup("RestoreBackup"), + RestoreBackup(com.yugabyte.yw.commissioner.tasks.RestoreBackup.class), - MultiTableBackup("MultiTableBackup"), + MultiTableBackup(com.yugabyte.yw.commissioner.tasks.MultiTableBackup.class), - CreateBackup("CreateBackup"), + CreateBackup(com.yugabyte.yw.commissioner.tasks.CreateBackup.class), - CreatePitrConfig("CreatePitrConfig"), + CreatePitrConfig(com.yugabyte.yw.commissioner.tasks.CreatePitrConfig.class), - RestoreSnapshotSchedule("RestoreSnapshotSchedule"), + RestoreSnapshotSchedule(com.yugabyte.yw.commissioner.tasks.RestoreSnapshotSchedule.class), - EditUniverse("EditUniverse"), + EditUniverse(com.yugabyte.yw.commissioner.tasks.EditUniverse.class), - EditKubernetesUniverse("EditKubernetesUniverse"), + EditKubernetesUniverse(com.yugabyte.yw.commissioner.tasks.EditKubernetesUniverse.class), - ExternalScript("ExternalScript"), + ExternalScript(com.yugabyte.yw.commissioner.tasks.ExternalScript.class), @Deprecated - KubernetesProvision("KubernetesProvision"), + KubernetesProvision(com.yugabyte.yw.commissioner.tasks.KubernetesProvision.class), - ImportIntoTable("ImportIntoTable"), + ImportIntoTable(com.yugabyte.yw.commissioner.tasks.ImportIntoTable.class), - RunApiTriggeredHooks("RunApiTriggeredHooks"), + RunApiTriggeredHooks(com.yugabyte.yw.commissioner.tasks.RunApiTriggeredHooks.class), - AddOnClusterCreate("AddOnClusterCreate"), - AddOnClusterDelete("AddOnClusterDelete"), + AddOnClusterCreate(com.yugabyte.yw.commissioner.tasks.AddOnClusterCreate.class), + AddOnClusterDelete(com.yugabyte.yw.commissioner.tasks.AddOnClusterDelete.class), // TODO: Mark it as deprecated once UpgradeUniverse related APIs are removed - UpgradeUniverse("UpgradeUniverse"), + UpgradeUniverse(com.yugabyte.yw.commissioner.tasks.UpgradeUniverse.class), - RestartUniverse("upgrade.RestartUniverse"), + RestartUniverse(com.yugabyte.yw.commissioner.tasks.upgrade.RestartUniverse.class), - RestartUniverseKubernetesUpgrade("upgrade.RestartUniverseKubernetesUpgrade"), + RestartUniverseKubernetesUpgrade( + com.yugabyte.yw.commissioner.tasks.upgrade.RestartUniverseKubernetesUpgrade.class), - SoftwareUpgrade("upgrade.SoftwareUpgrade"), + SoftwareUpgrade(com.yugabyte.yw.commissioner.tasks.upgrade.SoftwareUpgrade.class), - SoftwareKubernetesUpgrade("upgrade.SoftwareKubernetesUpgrade"), + SoftwareKubernetesUpgrade( + com.yugabyte.yw.commissioner.tasks.upgrade.SoftwareKubernetesUpgrade.class), - KubernetesOverridesUpgrade("upgrade.KubernetesOverridesUpgrade"), + KubernetesOverridesUpgrade( + com.yugabyte.yw.commissioner.tasks.upgrade.KubernetesOverridesUpgrade.class), - GFlagsUpgrade("upgrade.GFlagsUpgrade"), + GFlagsUpgrade(com.yugabyte.yw.commissioner.tasks.upgrade.GFlagsUpgrade.class), - GFlagsKubernetesUpgrade("upgrade.GFlagsKubernetesUpgrade"), + GFlagsKubernetesUpgrade(com.yugabyte.yw.commissioner.tasks.upgrade.GFlagsKubernetesUpgrade.class), - CertsRotate("upgrade.CertsRotate"), + CertsRotate(com.yugabyte.yw.commissioner.tasks.upgrade.CertsRotate.class), - CertsRotateKubernetesUpgrade("upgrade.CertsRotateKubernetesUpgrade"), + CertsRotateKubernetesUpgrade( + com.yugabyte.yw.commissioner.tasks.upgrade.CertsRotateKubernetesUpgrade.class), - TlsToggle("upgrade.TlsToggle"), + TlsToggle(com.yugabyte.yw.commissioner.tasks.upgrade.TlsToggle.class), - NodeCertReloadTask("subtasks.NodeCertReloadTask"), + NodeCertReloadTask(com.yugabyte.yw.commissioner.tasks.subtasks.NodeCertReloadTask.class), - VMImageUpgrade("upgrade.VMImageUpgrade"), + VMImageUpgrade(com.yugabyte.yw.commissioner.tasks.upgrade.VMImageUpgrade.class), - SystemdUpgrade("upgrade.SystemdUpgrade"), + SystemdUpgrade(com.yugabyte.yw.commissioner.tasks.upgrade.SystemdUpgrade.class), - RebootUniverse("upgrade.RebootUniverse"), + RebootUniverse(com.yugabyte.yw.commissioner.tasks.upgrade.RebootUniverse.class), - CreateRootVolumes("subtasks.CreateRootVolumes"), + CreateRootVolumes(com.yugabyte.yw.commissioner.tasks.subtasks.CreateRootVolumes.class), - ReplaceRootVolume("subtasks.ReplaceRootVolume"), + ReplaceRootVolume(com.yugabyte.yw.commissioner.tasks.subtasks.ReplaceRootVolume.class), - ChangeInstanceType("subtasks.ChangeInstanceType"), + ChangeInstanceType(com.yugabyte.yw.commissioner.tasks.subtasks.ChangeInstanceType.class), - PersistResizeNode("subtasks.PersistResizeNode"), + PersistResizeNode(com.yugabyte.yw.commissioner.tasks.subtasks.PersistResizeNode.class), - PersistSystemdUpgrade("subtasks.PersistSystemdUpgrade"), + PersistSystemdUpgrade(com.yugabyte.yw.commissioner.tasks.subtasks.PersistSystemdUpgrade.class), - UpdateNodeDetails("subtasks.UpdateNodeDetails"), + UpdateNodeDetails(com.yugabyte.yw.commissioner.tasks.subtasks.UpdateNodeDetails.class), - UpgradeKubernetesUniverse("UpgradeKubernetesUniverse"), + UpgradeKubernetesUniverse(com.yugabyte.yw.commissioner.tasks.UpgradeKubernetesUniverse.class), - DeleteNodeFromUniverse("DeleteNodeFromUniverse"), + DeleteNodeFromUniverse(com.yugabyte.yw.commissioner.tasks.DeleteNodeFromUniverse.class), - StopNodeInUniverse("StopNodeInUniverse"), + StopNodeInUniverse(com.yugabyte.yw.commissioner.tasks.StopNodeInUniverse.class), - StartNodeInUniverse("StartNodeInUniverse"), + StartNodeInUniverse(com.yugabyte.yw.commissioner.tasks.StartNodeInUniverse.class), - AddNodeToUniverse("AddNodeToUniverse"), + AddNodeToUniverse(com.yugabyte.yw.commissioner.tasks.AddNodeToUniverse.class), - RemoveNodeFromUniverse("RemoveNodeFromUniverse"), + RemoveNodeFromUniverse(com.yugabyte.yw.commissioner.tasks.RemoveNodeFromUniverse.class), - RebootNodeInUniverse("RebootNodeInUniverse"), + RebootNodeInUniverse(com.yugabyte.yw.commissioner.tasks.RebootNodeInUniverse.class), - ReleaseInstanceFromUniverse("ReleaseInstanceFromUniverse"), + ReleaseInstanceFromUniverse(com.yugabyte.yw.commissioner.tasks.ReleaseInstanceFromUniverse.class), - RotateAccessKey("RotateAccessKey"), + RotateAccessKey(com.yugabyte.yw.commissioner.tasks.RotateAccessKey.class), - SetUniverseKey("SetUniverseKey"), + SetUniverseKey(com.yugabyte.yw.commissioner.tasks.SetUniverseKey.class), - CreateAndRotateAccessKey("CreateAndRotateAccessKey"), + CreateAndRotateAccessKey(com.yugabyte.yw.commissioner.tasks.CreateAndRotateAccessKey.class), @Deprecated - SetKubernetesUniverseKey("SetKubernetesUniverseKey"), + SetKubernetesUniverseKey(null), - CreateKMSConfig("CreateKMSConfig"), + CreateKMSConfig(com.yugabyte.yw.commissioner.tasks.CreateKMSConfig.class), - EditKMSConfig("EditKMSConfig"), + EditKMSConfig(com.yugabyte.yw.commissioner.tasks.EditKMSConfig.class), - DeleteKMSConfig("DeleteKMSConfig"), + DeleteKMSConfig(com.yugabyte.yw.commissioner.tasks.DeleteKMSConfig.class), - UpdateDiskSize("UpdateDiskSize"), + UpdateDiskSize(com.yugabyte.yw.commissioner.tasks.UpdateDiskSize.class), - UpdateKubernetesDiskSize("UpdateKubernetesDiskSize"), + UpdateKubernetesDiskSize(com.yugabyte.yw.commissioner.tasks.UpdateKubernetesDiskSize.class), - KubernetesCheckStorageClass("subtasks.KubernetesCheckStorageClass"), + KubernetesCheckStorageClass( + com.yugabyte.yw.commissioner.tasks.subtasks.KubernetesCheckStorageClass.class), - StartMasterOnNode("StartMasterOnNode"), - DeleteXClusterConfig("DeleteXClusterConfig"), + StartMasterOnNode(com.yugabyte.yw.commissioner.tasks.StartMasterOnNode.class), - SyncXClusterConfig("SyncXClusterConfig"), + DeleteXClusterConfig(com.yugabyte.yw.commissioner.tasks.DeleteXClusterConfig.class), - CreateSupportBundle("CreateSupportBundle"), + SyncXClusterConfig(com.yugabyte.yw.commissioner.tasks.SyncXClusterConfig.class), - CreateXClusterConfig("CreateXClusterConfig"), + CreateSupportBundle(com.yugabyte.yw.commissioner.tasks.CreateSupportBundle.class), - EditXClusterConfig("EditXClusterConfig"), + CreateXClusterConfig(com.yugabyte.yw.commissioner.tasks.CreateXClusterConfig.class), - RestartXClusterConfig("RestartXClusterConfig"), + EditXClusterConfig(com.yugabyte.yw.commissioner.tasks.EditXClusterConfig.class), + + RestartXClusterConfig(com.yugabyte.yw.commissioner.tasks.RestartXClusterConfig.class), // Tasks belonging to subtasks classpath - AddAuthorizedKey("subtasks.AddAuthorizedKey"), + AddAuthorizedKey(com.yugabyte.yw.commissioner.tasks.subtasks.AddAuthorizedKey.class), - AnsibleClusterServerCtl("subtasks.AnsibleClusterServerCtl"), + AnsibleClusterServerCtl( + com.yugabyte.yw.commissioner.tasks.subtasks.AnsibleClusterServerCtl.class), - AnsibleConfigureServers("subtasks.AnsibleConfigureServers"), + AnsibleConfigureServers( + com.yugabyte.yw.commissioner.tasks.subtasks.AnsibleConfigureServers.class), - AnsibleDestroyServer("subtasks.AnsibleDestroyServer"), + AnsibleDestroyServer(com.yugabyte.yw.commissioner.tasks.subtasks.AnsibleDestroyServer.class), - PauseServer("subtasks.PauseServer"), + PauseServer(com.yugabyte.yw.commissioner.tasks.subtasks.PauseServer.class), - ResumeServer("subtasks.ResumeServer"), + ResumeServer(com.yugabyte.yw.commissioner.tasks.subtasks.ResumeServer.class), - AnsibleSetupServer("subtasks.AnsibleSetupServer"), + AnsibleSetupServer(com.yugabyte.yw.commissioner.tasks.subtasks.AnsibleSetupServer.class), - AnsibleCreateServer("subtasks.AnsibleCreateServer"), + AnsibleCreateServer(com.yugabyte.yw.commissioner.tasks.subtasks.AnsibleCreateServer.class), - PrecheckNode("subtasks.PrecheckNode"), + PrecheckNode(com.yugabyte.yw.commissioner.tasks.subtasks.PrecheckNode.class), - PrecheckNodeDetached("subtasks.PrecheckNodeDetached"), + PrecheckNodeDetached(com.yugabyte.yw.commissioner.tasks.subtasks.PrecheckNodeDetached.class), - AnsibleUpdateNodeInfo("subtasks.AnsibleUpdateNodeInfo"), + AnsibleUpdateNodeInfo(com.yugabyte.yw.commissioner.tasks.subtasks.AnsibleUpdateNodeInfo.class), - BulkImport("subtasks.BulkImport"), + BulkImport(com.yugabyte.yw.commissioner.tasks.subtasks.BulkImport.class), - ChangeMasterConfig("subtasks.ChangeMasterConfig"), + ChangeMasterConfig(com.yugabyte.yw.commissioner.tasks.subtasks.ChangeMasterConfig.class), - ChangeAdminPassword("subtasks.ChangeAdminPassword"), + ChangeAdminPassword(com.yugabyte.yw.commissioner.tasks.subtasks.ChangeAdminPassword.class), - CreateTable("subtasks.CreateTable"), + CreateTable(com.yugabyte.yw.commissioner.tasks.subtasks.CreateTable.class), - DeleteNode("subtasks.DeleteNode"), + DeleteNode(com.yugabyte.yw.commissioner.tasks.subtasks.DeleteNode.class), - DeleteBackup("subtasks.DeleteBackup"), + DeleteBackup(com.yugabyte.yw.commissioner.tasks.subtasks.DeleteBackup.class), - DeleteBackupYb("subtasks.DeleteBackupYb"), + DeleteBackupYb(com.yugabyte.yw.commissioner.tasks.subtasks.DeleteBackupYb.class), - DeleteCustomerConfig("DeleteCustomerConfig"), + DeleteCustomerConfig(com.yugabyte.yw.commissioner.tasks.DeleteCustomerConfig.class), - DeleteCustomerStorageConfig("DeleteCustomerStorageConfig"), + DeleteCustomerStorageConfig(com.yugabyte.yw.commissioner.tasks.DeleteCustomerStorageConfig.class), - UpdateNodeProcess("subtasks.nodes.UpdateNodeProcess"), + UpdateNodeProcess(com.yugabyte.yw.commissioner.tasks.subtasks.nodes.UpdateNodeProcess.class), - DeleteTableFromUniverse("subtasks.DeleteTableFromUniverse"), + DeleteTableFromUniverse( + com.yugabyte.yw.commissioner.tasks.subtasks.DeleteTableFromUniverse.class), - DeleteTablesFromUniverse("subtasks.DeleteTablesFromUniverse"), + DeleteTablesFromUniverse( + com.yugabyte.yw.commissioner.tasks.subtasks.DeleteTablesFromUniverse.class), - LoadBalancerStateChange("subtasks.LoadBalancerStateChange"), + LoadBalancerStateChange( + com.yugabyte.yw.commissioner.tasks.subtasks.LoadBalancerStateChange.class), - ModifyBlackList("subtasks.ModifyBlackList"), + ModifyBlackList(com.yugabyte.yw.commissioner.tasks.subtasks.ModifyBlackList.class), - ManipulateDnsRecordTask("subtasks.ManipulateDnsRecordTask"), + ManipulateDnsRecordTask( + com.yugabyte.yw.commissioner.tasks.subtasks.ManipulateDnsRecordTask.class), - RemoveUniverseEntry("subtasks.RemoveUniverseEntry"), + RemoveUniverseEntry(com.yugabyte.yw.commissioner.tasks.subtasks.RemoveUniverseEntry.class), - SetFlagInMemory("subtasks.SetFlagInMemory"), + SetFlagInMemory(com.yugabyte.yw.commissioner.tasks.subtasks.SetFlagInMemory.class), - SetNodeState("subtasks.SetNodeState"), + SetNodeState(com.yugabyte.yw.commissioner.tasks.subtasks.SetNodeState.class), - SwamperTargetsFileUpdate("subtasks.SwamperTargetsFileUpdate"), + SwamperTargetsFileUpdate( + com.yugabyte.yw.commissioner.tasks.subtasks.SwamperTargetsFileUpdate.class), - UniverseUpdateSucceeded("subtasks.UniverseUpdateSucceeded"), + UniverseUpdateSucceeded( + com.yugabyte.yw.commissioner.tasks.subtasks.UniverseUpdateSucceeded.class), - UpdateAndPersistGFlags("subtasks.UpdateAndPersistGFlags"), + UpdateAndPersistGFlags(com.yugabyte.yw.commissioner.tasks.subtasks.UpdateAndPersistGFlags.class), - UpdateAndPersistKubernetesOverrides("subtasks.UpdateAndPersistKubernetesOverrides"), + UpdateAndPersistKubernetesOverrides( + com.yugabyte.yw.commissioner.tasks.subtasks.UpdateAndPersistKubernetesOverrides.class), - UpdatePlacementInfo("subtasks.UpdatePlacementInfo"), + UpdatePlacementInfo(com.yugabyte.yw.commissioner.tasks.subtasks.UpdatePlacementInfo.class), - UpdateSoftwareVersion("subtasks.UpdateSoftwareVersion"), + UpdateSoftwareVersion(com.yugabyte.yw.commissioner.tasks.subtasks.UpdateSoftwareVersion.class), - UpdateUniverseYbcDetails("subtasks.UpdateUniverseYbcDetails"), + UpdateUniverseYbcDetails( + com.yugabyte.yw.commissioner.tasks.subtasks.UpdateUniverseYbcDetails.class), - VerifyNodeSSHAccess("subtasks.VerifyNodeSSHAccess"), + VerifyNodeSSHAccess(com.yugabyte.yw.commissioner.tasks.subtasks.VerifyNodeSSHAccess.class), - WaitForDataMove("subtasks.WaitForDataMove"), + WaitForDataMove(com.yugabyte.yw.commissioner.tasks.subtasks.WaitForDataMove.class), - WaitForLeaderBlacklistCompletion("subtasks.WaitForLeaderBlacklistCompletion"), + WaitForLeaderBlacklistCompletion( + com.yugabyte.yw.commissioner.tasks.subtasks.WaitForLeaderBlacklistCompletion.class), - WaitForFollowerLag("subtasks.WaitForFollowerLag"), + WaitForFollowerLag(com.yugabyte.yw.commissioner.tasks.subtasks.WaitForFollowerLag.class), - WaitForLoadBalance("subtasks.WaitForLoadBalance"), + WaitForLoadBalance(com.yugabyte.yw.commissioner.tasks.subtasks.WaitForLoadBalance.class), - WaitForMasterLeader("subtasks.WaitForMasterLeader"), + WaitForMasterLeader(com.yugabyte.yw.commissioner.tasks.subtasks.WaitForMasterLeader.class), - WaitForServer("subtasks.WaitForServer"), + WaitForServer(com.yugabyte.yw.commissioner.tasks.subtasks.WaitForServer.class), - WaitForYbcServer("subtasks.WaitForYbcServer"), + WaitForYbcServer(com.yugabyte.yw.commissioner.tasks.subtasks.WaitForYbcServer.class), - WaitForTServerHeartBeats("subtasks.WaitForTServerHeartBeats"), + WaitForTServerHeartBeats( + com.yugabyte.yw.commissioner.tasks.subtasks.WaitForTServerHeartBeats.class), - DeleteClusterFromUniverse("subtasks.DeleteClusterFromUniverse"), + DeleteClusterFromUniverse( + com.yugabyte.yw.commissioner.tasks.subtasks.DeleteClusterFromUniverse.class), - InstanceActions("subtasks.InstanceActions"), + InstanceActions(com.yugabyte.yw.commissioner.tasks.subtasks.InstanceActions.class), - WaitForServerReady("subtasks.WaitForServerReady"), + WaitForServerReady(com.yugabyte.yw.commissioner.tasks.subtasks.WaitForServerReady.class), - RunExternalScript("subtasks.RunExternalScript"), + RunExternalScript(com.yugabyte.yw.commissioner.tasks.subtasks.RunExternalScript.class), - RemoveAuthorizedKey("subtasks.RemoveAuthorizedKey"), + RemoveAuthorizedKey(com.yugabyte.yw.commissioner.tasks.subtasks.RemoveAuthorizedKey.class), - UpdateUniverseAccessKey("subtasks.UpdateUniverseAccessKey"), + UpdateUniverseAccessKey( + com.yugabyte.yw.commissioner.tasks.subtasks.UpdateUniverseAccessKey.class), // Tasks belonging to subtasks.xcluster classpath - BootstrapProducer("subtasks.xcluster.BootstrapProducer"), + BootstrapProducer(com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.BootstrapProducer.class), - CheckBootstrapRequired("subtasks.xcluster.CheckBootstrapRequired"), + CheckBootstrapRequired( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.CheckBootstrapRequired.class), - DeleteBootstrapIds("subtasks.xcluster.DeleteBootstrapIds"), + DeleteBootstrapIds(com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.DeleteBootstrapIds.class), - DeleteReplication("subtasks.xcluster.DeleteReplication"), + DeleteReplication(com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.DeleteReplication.class), - DeleteXClusterConfigEntry("subtasks.xcluster.DeleteXClusterConfigEntry"), + DeleteXClusterConfigEntry( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.DeleteXClusterConfigEntry.class), - ResetXClusterConfigEntry("subtasks.xcluster.ResetXClusterConfigEntry"), + ResetXClusterConfigEntry( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.ResetXClusterConfigEntry.class), - SetReplicationPaused("subtasks.xcluster.SetReplicationPaused"), + SetReplicationPaused( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.SetReplicationPaused.class), - SetRestoreTime("subtasks.xcluster.SetRestoreTime"), + SetRestoreTime(com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.SetRestoreTime.class), - XClusterConfigSetup("subtasks.xcluster.XClusterConfigSetup"), + XClusterConfigSetup( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.XClusterConfigSetup.class), - XClusterConfigSetStatus("subtasks.xcluster.XClusterConfigSetStatus"), + XClusterConfigSetStatus( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.XClusterConfigSetStatus.class), - XClusterConfigSetStatusForTables("subtasks.xcluster.XClusterConfigSetStatusForTables"), + XClusterConfigSetStatusForTables( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.XClusterConfigSetStatusForTables.class), - XClusterConfigModifyTables("subtasks.xcluster.XClusterConfigModifyTables"), + XClusterConfigModifyTables( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.XClusterConfigModifyTables.class), - XClusterConfigRename("subtasks.xcluster.XClusterConfigRename"), + XClusterConfigRename( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.XClusterConfigRename.class), - XClusterConfigSync("subtasks.xcluster.XClusterConfigSync"), + XClusterConfigSync(com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.XClusterConfigSync.class), - XClusterConfigUpdateMasterAddresses("subtasks.xcluster.XClusterConfigUpdateMasterAddresses"), + XClusterConfigUpdateMasterAddresses( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.XClusterConfigUpdateMasterAddresses + .class), - XClusterInfoPersist("subtasks.xcluster.XClusterInfoPersist"), + XClusterInfoPersist( + com.yugabyte.yw.commissioner.tasks.subtasks.xcluster.XClusterInfoPersist.class), // Tasks belonging to subtasks.cloud classpath - CloudAccessKeyCleanup("subtasks.cloud.CloudAccessKeyCleanup"), + CloudAccessKeyCleanup( + com.yugabyte.yw.commissioner.tasks.subtasks.cloud.CloudAccessKeyCleanup.class), - CloudAccessKeySetup("subtasks.cloud.CloudAccessKeySetup"), + CloudAccessKeySetup(com.yugabyte.yw.commissioner.tasks.subtasks.cloud.CloudAccessKeySetup.class), - CloudInitializer("subtasks.cloud.CloudInitializer"), + CloudInitializer(com.yugabyte.yw.commissioner.tasks.subtasks.cloud.CloudInitializer.class), - CloudProviderCleanup("subtasks.cloud.CloudProviderCleanup"), + CloudProviderCleanup( + com.yugabyte.yw.commissioner.tasks.subtasks.cloud.CloudProviderCleanup.class), - CloudRegionCleanup("subtasks.cloud.CloudRegionCleanup"), + CloudRegionCleanup(com.yugabyte.yw.commissioner.tasks.subtasks.cloud.CloudRegionCleanup.class), - CloudRegionSetup("subtasks.cloud.CloudRegionSetup"), + CloudRegionSetup(com.yugabyte.yw.commissioner.tasks.subtasks.cloud.CloudRegionSetup.class), - CloudSetup("subtasks.cloud.CloudSetup"), + CloudSetup(com.yugabyte.yw.commissioner.tasks.subtasks.cloud.CloudSetup.class), - BackupTable("subtasks.BackupTable"), + BackupTable(com.yugabyte.yw.commissioner.tasks.subtasks.BackupTable.class), - BackupTableYb("subtasks.BackupTableYb"), + BackupTableYb(com.yugabyte.yw.commissioner.tasks.subtasks.BackupTableYb.class), - BackupTableYbc("subtasks.BackupTableYbc"), + BackupTableYbc(com.yugabyte.yw.commissioner.tasks.subtasks.BackupTableYbc.class), - BackupUniverseKeys("subtasks.BackupUniverseKeys"), + BackupUniverseKeys(com.yugabyte.yw.commissioner.tasks.subtasks.BackupUniverseKeys.class), - RestoreBackupYb("subtasks.RestoreBackupYb"), + RestoreBackupYb(com.yugabyte.yw.commissioner.tasks.subtasks.RestoreBackupYb.class), - RestoreBackupYbc("subtasks.RestoreBackupYbc"), + RestoreBackupYbc(com.yugabyte.yw.commissioner.tasks.subtasks.RestoreBackupYbc.class), - RestoreUniverseKeys("subtasks.RestoreUniverseKeys"), + RestoreUniverseKeys(com.yugabyte.yw.commissioner.tasks.subtasks.RestoreUniverseKeys.class), - RestoreUniverseKeysYb("subtasks.RestoreUniverseKeysYb"), + RestoreUniverseKeysYb(com.yugabyte.yw.commissioner.tasks.subtasks.RestoreUniverseKeysYb.class), - RestoreUniverseKeysYbc("subtasks.RestoreUniverseKeysYbc"), + RestoreUniverseKeysYbc(com.yugabyte.yw.commissioner.tasks.subtasks.RestoreUniverseKeysYbc.class), - WaitForLeadersOnPreferredOnly("subtasks.WaitForLeadersOnPreferredOnly"), + WaitForLeadersOnPreferredOnly( + com.yugabyte.yw.commissioner.tasks.subtasks.WaitForLeadersOnPreferredOnly.class), - EnableEncryptionAtRest("subtasks.EnableEncryptionAtRest"), + EnableEncryptionAtRest(com.yugabyte.yw.commissioner.tasks.subtasks.EnableEncryptionAtRest.class), - DisableEncryptionAtRest("subtasks.DisableEncryptionAtRest"), + DisableEncryptionAtRest( + com.yugabyte.yw.commissioner.tasks.subtasks.DisableEncryptionAtRest.class), - DestroyEncryptionAtRest("subtasks.DestroyEncryptionAtRest"), + DestroyEncryptionAtRest( + com.yugabyte.yw.commissioner.tasks.subtasks.DestroyEncryptionAtRest.class), - KubernetesCommandExecutor("subtasks.KubernetesCommandExecutor"), + KubernetesCommandExecutor( + com.yugabyte.yw.commissioner.tasks.subtasks.KubernetesCommandExecutor.class), - KubernetesWaitForPod("subtasks.KubernetesWaitForPod"), + KubernetesWaitForPod(com.yugabyte.yw.commissioner.tasks.subtasks.KubernetesWaitForPod.class), - KubernetesCheckNumPod("subtasks.KubernetesCheckNumPod"), + KubernetesCheckNumPod(com.yugabyte.yw.commissioner.tasks.subtasks.KubernetesCheckNumPod.class), - SetActiveUniverseKeys("subtasks.SetActiveUniverseKeys"), + SetActiveUniverseKeys(com.yugabyte.yw.commissioner.tasks.subtasks.SetActiveUniverseKeys.class), @Deprecated - CopyEncryptionKeyFile("subtasks.CopyEncryptionKeyFile"), - - WaitForEncryptionKeyInMemory("subtasks.WaitForEncryptionKeyInMemory"), + CopyEncryptionKeyFile(null), - UnivSetCertificate("subtasks.UnivSetCertificate"), + WaitForEncryptionKeyInMemory( + com.yugabyte.yw.commissioner.tasks.subtasks.WaitForEncryptionKeyInMemory.class), - CreateAlertDefinitions("subtasks.CreateAlertDefinitions"), + UnivSetCertificate(com.yugabyte.yw.commissioner.tasks.subtasks.UnivSetCertificate.class), - ManageAlertDefinitions("subtasks.ManageAlertDefinitions"), + CreateAlertDefinitions(com.yugabyte.yw.commissioner.tasks.subtasks.CreateAlertDefinitions.class), - UniverseSetTlsParams("subtasks.UniverseSetTlsParams"), + ManageAlertDefinitions(com.yugabyte.yw.commissioner.tasks.subtasks.ManageAlertDefinitions.class), - UniverseUpdateRootCert("subtasks.UniverseUpdateRootCert"), + UniverseSetTlsParams(com.yugabyte.yw.commissioner.tasks.subtasks.UniverseSetTlsParams.class), - ResetUniverseVersion("subtasks.ResetUniverseVersion"), + UniverseUpdateRootCert(com.yugabyte.yw.commissioner.tasks.subtasks.UniverseUpdateRootCert.class), - DeleteCertificate("subtasks.DeleteCertificate"), + ResetUniverseVersion(com.yugabyte.yw.commissioner.tasks.subtasks.ResetUniverseVersion.class), - SetNodeStatus("subtasks.SetNodeStatus"), + DeleteCertificate(com.yugabyte.yw.commissioner.tasks.subtasks.DeleteCertificate.class), - CheckMasterLeader("subtasks.check.CheckMasterLeader"), + SetNodeStatus(com.yugabyte.yw.commissioner.tasks.subtasks.SetNodeStatus.class), - CheckMasters("subtasks.check.CheckMasters"), + CheckMasterLeader(com.yugabyte.yw.commissioner.tasks.subtasks.check.CheckMasterLeader.class), - CheckTServers("subtasks.check.CheckTServers"), + CheckMasters(com.yugabyte.yw.commissioner.tasks.subtasks.check.CheckMasters.class), - WaitForTServerHBs("subtasks.check.WaitForTServerHBs"), + CheckTServers(com.yugabyte.yw.commissioner.tasks.subtasks.check.CheckTServers.class), - CreatePrometheusSwamperConfig("subtasks.CreatePrometheusSwamperConfig"), + WaitForTServerHBs(com.yugabyte.yw.commissioner.tasks.subtasks.check.WaitForTServerHBs.class), - PreflightNodeCheck("subtasks.PreflightNodeCheck"), + CreatePrometheusSwamperConfig( + com.yugabyte.yw.commissioner.tasks.subtasks.CreatePrometheusSwamperConfig.class), - RunYsqlUpgrade("subtasks.RunYsqlUpgrade"), + PreflightNodeCheck(com.yugabyte.yw.commissioner.tasks.subtasks.PreflightNodeCheck.class), - ResizeNode("upgrade.ResizeNode"), + RunYsqlUpgrade(com.yugabyte.yw.commissioner.tasks.subtasks.RunYsqlUpgrade.class), - CheckMemory("subtasks.check.CheckMemory"), + ResizeNode(com.yugabyte.yw.commissioner.tasks.upgrade.ResizeNode.class), - UpdateMountedDisks("subtasks.UpdateMountedDisks"), + CheckMemory(com.yugabyte.yw.commissioner.tasks.subtasks.check.CheckMemory.class), - TransferXClusterCerts("subtasks.TransferXClusterCerts"), + UpdateMountedDisks(com.yugabyte.yw.commissioner.tasks.subtasks.UpdateMountedDisks.class), - CreateTableSpacesInUniverse("CreateTableSpacesInUniverse"), + TransferXClusterCerts(com.yugabyte.yw.commissioner.tasks.subtasks.TransferXClusterCerts.class), - CreateTableSpaces("subtasks.CreateTableSpaces"), + CreateTableSpacesInUniverse(com.yugabyte.yw.commissioner.tasks.CreateTableSpacesInUniverse.class), - ThirdpartySoftwareUpgrade("upgrade.ThirdpartySoftwareUpgrade"), + CreateTableSpaces(com.yugabyte.yw.commissioner.tasks.subtasks.CreateTableSpaces.class), - MarkUniverseForHealthScriptReUpload("subtasks.MarkUniverseForHealthScriptReUpload"), + ThirdpartySoftwareUpgrade( + com.yugabyte.yw.commissioner.tasks.upgrade.ThirdpartySoftwareUpgrade.class), - RebootServer("subtasks.RebootServer"), + MarkUniverseForHealthScriptReUpload( + com.yugabyte.yw.commissioner.tasks.subtasks.MarkUniverseForHealthScriptReUpload.class), - HardRebootServer("subtasks.HardRebootServer"), + RebootServer(com.yugabyte.yw.commissioner.tasks.subtasks.RebootServer.class), - RunHooks("subtasks.RunHooks"), + HardRebootServer(com.yugabyte.yw.commissioner.tasks.subtasks.HardRebootServer.class), - UpdateUniverseTags("subtasks.UpdateUniverseTags"), + RunHooks(com.yugabyte.yw.commissioner.tasks.subtasks.RunHooks.class), - UpgradeYbc("subtasks.UpgradeYbc"), + UpdateUniverseTags(com.yugabyte.yw.commissioner.tasks.subtasks.UpdateUniverseTags.class), - InstallYbcSoftware("InstallYbcSoftware"), + UpgradeYbc(com.yugabyte.yw.commissioner.tasks.subtasks.UpgradeYbc.class), - UpgradeUniverseYbc("UpgradeUniverseYbc"), + InstallYbcSoftware(com.yugabyte.yw.commissioner.tasks.InstallYbcSoftware.class), - DisableYbc("DisableYbc"), + UpgradeUniverseYbc(com.yugabyte.yw.commissioner.tasks.UpgradeUniverseYbc.class), - InstanceExistCheck("subtasks.InstanceExistCheck"), + DisableYbc(com.yugabyte.yw.commissioner.tasks.DisableYbc.class), - AddGFlagMetadata("AddGFlagMetadata"); + InstanceExistCheck(com.yugabyte.yw.commissioner.tasks.subtasks.InstanceExistCheck.class), - private String relativeClassPath; + AddGFlagMetadata(com.yugabyte.yw.commissioner.tasks.AddGFlagMetadata.class); - TaskType(String relativeClassPath) { - this.relativeClassPath = relativeClassPath; - } + private final Class taskClass; - @Override - public String toString() { - return this.relativeClassPath; + TaskType(Class taskClass) { + this.taskClass = taskClass; } public static List filteredValues() { @@ -438,4 +478,8 @@ public static List filteredValues() { }) .collect(Collectors.toList()); } + + public Class getTaskClass() { + return taskClass; + } } diff --git a/managed/src/main/java/com/yugabyte/yw/models/helpers/TaskTypesModule.java b/managed/src/main/java/com/yugabyte/yw/models/helpers/TaskTypesModule.java new file mode 100644 index 0000000000000..344a0dedf944c --- /dev/null +++ b/managed/src/main/java/com/yugabyte/yw/models/helpers/TaskTypesModule.java @@ -0,0 +1,37 @@ +/* + * Copyright 2022 YugaByte, Inc. and Contributors + * + * Licensed under the Polyform Free Trial License 1.0.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://github.com/YugaByte/yugabyte-db/blob/master/licenses/POLYFORM-FREE-TRIAL-LICENSE-1.0.0.txt + */ + +package com.yugabyte.yw.models.helpers; + +import com.google.inject.AbstractModule; +import com.google.inject.Provides; +import com.google.inject.multibindings.MapBinder; +import com.yugabyte.yw.commissioner.ITask; +import java.util.HashMap; +import java.util.Map; + +public class TaskTypesModule extends AbstractModule { + + @Override + protected void configure() { + MapBinder taskMapBinder = + MapBinder.newMapBinder(binder(), TaskType.class, ITask.class); + TaskType.filteredValues() + .forEach(taskType -> taskMapBinder.addBinding(taskType).to(taskType.getTaskClass())); + } + + @Provides + Map, TaskType> inverseTaskMap() { + final HashMap, TaskType> inverseMap = new HashMap<>(); + TaskType.filteredValues() + .forEach(taskType -> inverseMap.put(taskType.getTaskClass(), taskType)); + return inverseMap; + } +} diff --git a/managed/src/test/java/com/yugabyte/yw/commissioner/TaskExecutorTest.java b/managed/src/test/java/com/yugabyte/yw/commissioner/TaskExecutorTest.java index 1da293e16e03f..79489f56f13da 100644 --- a/managed/src/test/java/com/yugabyte/yw/commissioner/TaskExecutorTest.java +++ b/managed/src/test/java/com/yugabyte/yw/commissioner/TaskExecutorTest.java @@ -547,7 +547,7 @@ public void testRetryableAnnotation() { Set retryableTaskTypes = TaskType.filteredValues() .stream() - .filter(taskType -> TaskExecutor.isTaskRetryable(taskExecutor.getTaskClass(taskType))) + .filter(taskType -> TaskExecutor.isTaskRetryable(taskType.getTaskClass())) .collect(Collectors.toSet()); assertEquals(RETRYABLE_TASKS, retryableTaskTypes); } diff --git a/managed/src/test/java/com/yugabyte/yw/common/PlatformGuiceApplicationBaseTest.java b/managed/src/test/java/com/yugabyte/yw/common/PlatformGuiceApplicationBaseTest.java index 239ebea8e44ba..4715f26011686 100644 --- a/managed/src/test/java/com/yugabyte/yw/common/PlatformGuiceApplicationBaseTest.java +++ b/managed/src/test/java/com/yugabyte/yw/common/PlatformGuiceApplicationBaseTest.java @@ -10,6 +10,8 @@ import com.yugabyte.yw.common.alerts.AlertsGarbageCollector; import com.yugabyte.yw.common.alerts.QueryAlerts; import org.junit.After; +import org.junit.BeforeClass; +import org.mockito.Mockito; import play.inject.guice.GuiceApplicationBuilder; import play.test.WithApplication; @@ -36,4 +38,9 @@ protected GuiceApplicationBuilder configureApplication(GuiceApplicationBuilder b public void baseTearDown() { TestHelper.shutdownDatabase(); } + + @BeforeClass + public static void clearMocks() { + Mockito.framework().clearInlineMocks(); + } }