diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/UpgradeTaskBase.java b/managed/src/main/java/com/yugabyte/yw/commissioner/UpgradeTaskBase.java index 158f1963881..af92d0fc784 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/UpgradeTaskBase.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/UpgradeTaskBase.java @@ -239,6 +239,13 @@ public void runUpgrade(Runnable upgradeLambda) { } public void runUpgrade(Runnable upgradeLambda, @Nullable Consumer firstRunTxnCallback) { + runUpgrade(upgradeLambda, firstRunTxnCallback, null /* onFailureTask */); + } + + public void runUpgrade( + Runnable upgradeLambda, + @Nullable Consumer firstRunTxnCallback, + Runnable onFailureTask) { if (maybeRunOnlyPrechecks()) { return; } @@ -264,6 +271,11 @@ public void runUpgrade(Runnable upgradeLambda, @Nullable Consumer firs getRunnableTask().runSubTasks(); } catch (Throwable t) { log.error("Error executing task {} with error: ", getName(), t); + if (onFailureTask != null) { + log.info("Running on failure upgrade task"); + onFailureTask.run(); + log.info("Finished on failure upgrade task"); + } if (taskParams().getUniverseSoftwareUpgradeStateOnFailure() != null) { Universe universe = getUniverse(); diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UniverseTaskBase.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UniverseTaskBase.java index 9f0743ec8a0..ce2ce458f70 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UniverseTaskBase.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/UniverseTaskBase.java @@ -66,6 +66,7 @@ import com.yugabyte.yw.commissioner.tasks.subtasks.KubernetesCommandExecutor; import com.yugabyte.yw.commissioner.tasks.subtasks.LoadBalancerStateChange; import com.yugabyte.yw.commissioner.tasks.subtasks.ManageAlertDefinitions; +import com.yugabyte.yw.commissioner.tasks.subtasks.ManageCatalogUpgradeSuperUser; import com.yugabyte.yw.commissioner.tasks.subtasks.ManageLoadBalancerGroup; import com.yugabyte.yw.commissioner.tasks.subtasks.ManipulateDnsRecordTask; import com.yugabyte.yw.commissioner.tasks.subtasks.MarkSourceMetric; @@ -1718,6 +1719,20 @@ public SubTaskGroup createPGUpgradeTServerCheckTask(String ybSoftwareVersion) { return subTaskGroup; } + public SubTaskGroup createManageCatalogUpgradeSuperUserTask( + ManageCatalogUpgradeSuperUser.Action action) { + SubTaskGroup subTaskGroup = + createSubTaskGroup("ManageCatalogUpgradeSuperUser", SubTaskGroupType.ConfigureUniverse); + ManageCatalogUpgradeSuperUser task = createTask(ManageCatalogUpgradeSuperUser.class); + ManageCatalogUpgradeSuperUser.Params params = new ManageCatalogUpgradeSuperUser.Params(); + params.setUniverseUUID(taskParams().getUniverseUUID()); + params.action = action; + task.initialize(params); + subTaskGroup.addSubTask(task); + getRunnableTask().addSubTaskGroup(subTaskGroup); + return subTaskGroup; + } + public SubTaskGroup createRunYsqlMajorVersionCatalogUpgradeTask() { SubTaskGroup subTaskGroup = createSubTaskGroup("RunYsqlMajorVersionCatalogUpgrade", SubTaskGroupType.UpgradingSoftware); @@ -6347,12 +6362,6 @@ protected void createFinalizeUpgradeTasks( } } - if (ysqlUpgradeFinalizeTask != null) { - // Run YSQL upgrade finalize task on the universe. - // This is a temp step as we need to remove flags set during upgrade. - ysqlUpgradeFinalizeTask.run(); - } - // Promote all auto flags upto class External. createPromoteAutoFlagTask( universe.getUniverseUUID(), @@ -6364,6 +6373,12 @@ protected void createFinalizeUpgradeTasks( createRunYsqlUpgradeTask(version); } + if (ysqlUpgradeFinalizeTask != null) { + // Run YSQL upgrade finalize task on the universe. + // This is a temp step as we need to remove flags set during upgrade. + ysqlUpgradeFinalizeTask.run(); + } + createUpdateUniverseSoftwareUpgradeStateTask( UniverseDefinitionTaskParams.SoftwareUpgradeState.Ready, false /* isSoftwareRollbackAllowed */); diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/subtasks/AnsibleConfigureServers.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/subtasks/AnsibleConfigureServers.java index 239d2da71b7..f936cd224c4 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/subtasks/AnsibleConfigureServers.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/subtasks/AnsibleConfigureServers.java @@ -148,20 +148,6 @@ && taskParams().isMasterInShellMode } } - if (universe.getUniverseDetails().isSoftwareRollbackAllowed - && universe.getUniverseDetails().prevYBSoftwareConfig != null) { - String currentVersion = - universe.getUniverseDetails().getPrimaryCluster().userIntent.ybSoftwareVersion; - String oldVersion = universe.getUniverseDetails().prevYBSoftwareConfig.getSoftwareVersion(); - if (gFlagsValidation.ysqlMajorVersionUpgrade(oldVersion, currentVersion) - && taskParams().ysqlMajorVersionUpgradeState == null) { - log.debug( - "Setting ysqlMajorVersionUpgradeState to Pre_finalize for universe {}", - universe.getUniverseUUID()); - taskParams().ysqlMajorVersionUpgradeState = YsqlMajorVersionUpgradeState.PRE_FINALIZE; - } - } - log.debug( "Reset master state is now {} for universe {}. It was {}", resetMasterState, diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/subtasks/ManageCatalogUpgradeSuperUser.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/subtasks/ManageCatalogUpgradeSuperUser.java new file mode 100644 index 00000000000..91b7aa108c2 --- /dev/null +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/subtasks/ManageCatalogUpgradeSuperUser.java @@ -0,0 +1,125 @@ +// Copyright (c) YugaByte, Inc. + +package com.yugabyte.yw.commissioner.tasks.subtasks; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.inject.Inject; +import com.yugabyte.yw.commissioner.BaseTaskDependencies; +import com.yugabyte.yw.commissioner.tasks.UniverseTaskBase; +import com.yugabyte.yw.common.NodeUniverseManager; +import com.yugabyte.yw.common.ShellProcessContext; +import com.yugabyte.yw.common.Util; +import com.yugabyte.yw.common.YsqlQueryExecutor; +import com.yugabyte.yw.forms.UniverseTaskParams; +import com.yugabyte.yw.models.Universe; +import com.yugabyte.yw.models.helpers.NodeDetails; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.RandomStringUtils; + +@Slf4j +public class ManageCatalogUpgradeSuperUser extends UniverseTaskBase { + + private final NodeUniverseManager nodeUniverseManager; + private final YsqlQueryExecutor ysqlQueryExecutor; + + private static final String UPGRADE_SUPERUSER = "yugabyte_upgrade"; + + @Inject + protected ManageCatalogUpgradeSuperUser( + BaseTaskDependencies baseTaskDependencies, + NodeUniverseManager nodeUniverseManager, + YsqlQueryExecutor ysqlQueryExecutor) { + super(baseTaskDependencies); + this.nodeUniverseManager = nodeUniverseManager; + this.ysqlQueryExecutor = ysqlQueryExecutor; + } + + public enum Action { + CREATE_USER, + DELETE_USER, + DELETE_PG_PASS_FILE + } + + public static class Params extends UniverseTaskParams { + public Action action; + } + + public Params taskParams() { + return (Params) taskParams; + } + + @Override + public void run() { + Universe universe = getUniverse(); + NodeDetails masterLeaderNode = universe.getMasterLeaderNode(); + String pgPassFilePath = + Util.getNodeHomeDir(universe.getUniverseUUID(), universe.getMasterLeaderNode()) + + "/.pgpass"; + if (taskParams().action == Action.CREATE_USER) { + dropUser(universe, masterLeaderNode, pgPassFilePath); + deletePGPassFile(universe, masterLeaderNode, pgPassFilePath); + createUser(universe, masterLeaderNode, pgPassFilePath); + } else if (taskParams().action == Action.DELETE_USER) { + dropUser(universe, masterLeaderNode, pgPassFilePath); + deletePGPassFile(universe, masterLeaderNode, pgPassFilePath); + } else if (taskParams().action == Action.DELETE_PG_PASS_FILE) { + deletePGPassFile(universe, masterLeaderNode, pgPassFilePath); + } + } + + private void dropUser(Universe universe, NodeDetails node, String pgPassFilePath) { + ysqlQueryExecutor.runUserDbCommands( + "DROP USER IF EXISTS " + UPGRADE_SUPERUSER, "template1", universe); + } + + private void deletePGPassFile(Universe universe, NodeDetails node, String pgPassFilePath) { + nodeUniverseManager.runCommand(node, universe, ImmutableList.of("rm", "-f", pgPassFilePath)); + } + + private void createUser(Universe universe, NodeDetails node, String pgPassFilePath) { + String allowedCharsInPassword = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + for (String charString : Util.SPECIAL_CHARACTERS_STRING_LIST) { + // Avoid using % in the password. + if (!charString.equals("%")) { + allowedCharsInPassword += charString; + } + } + String password = RandomStringUtils.secureStrong().next(20, allowedCharsInPassword); + String query = + String.format( + """ + DO $$DECLARE time TIMESTAMP := now() + INTERVAL '4 HOURS'; + BEGIN + EXECUTE format('CREATE ROLE %s WITH SUPERUSER LOGIN PASSWORD ''%s'' VALID UNTIL ''%s'';', time); + END$$; + """, + UPGRADE_SUPERUSER, password, "%s"); + ysqlQueryExecutor.runUserDbCommands(query, "template1", universe); + String pgPassFileContent = "*:*:*:" + UPGRADE_SUPERUSER + ":" + password; + ShellProcessContext context = + ShellProcessContext.builder() + .logCmdOutput(false) + .redactedVals( + ImmutableMap.of(pgPassFileContent, "*:*:*:REDACTED_USERNAME:REDACTED_PASSWORD")) + .build(); + nodeUniverseManager.runCommand( + node, + universe, + ImmutableList.of( + "rm", + "-rf", + pgPassFilePath, + ";", + "echo", + pgPassFileContent, + ">>", + pgPassFilePath, + ";", + "chmod", + "600", + pgPassFilePath), + context); + } +} diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/RollbackUpgrade.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/RollbackUpgrade.java index c7c2398a2e2..3690c60d558 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/RollbackUpgrade.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/RollbackUpgrade.java @@ -7,6 +7,7 @@ import com.yugabyte.yw.commissioner.ITask.Abortable; import com.yugabyte.yw.commissioner.ITask.Retryable; import com.yugabyte.yw.commissioner.UserTaskDetails.SubTaskGroupType; +import com.yugabyte.yw.commissioner.tasks.subtasks.ManageCatalogUpgradeSuperUser.Action; import com.yugabyte.yw.common.gflags.GFlagsUtil; import com.yugabyte.yw.forms.RollbackUpgradeParams; import com.yugabyte.yw.forms.UniverseDefinitionTaskParams; @@ -102,11 +103,17 @@ public void run() { createDownloadTasks(toOrderedSet(nodes.asPair()), newVersion); boolean ysqlMajorVersionUpgrade = false; + boolean requireAdditionalSuperUserForCatalogUpgrade = false; if (prevYBSoftwareConfig != null) { ysqlMajorVersionUpgrade = gFlagsValidation.ysqlMajorVersionUpgrade( prevYBSoftwareConfig.getSoftwareVersion(), universe.getUniverseDetails().getPrimaryCluster().userIntent.ybSoftwareVersion); + requireAdditionalSuperUserForCatalogUpgrade = + isSuperUserRequiredForCatalogUpgrade( + universe, + prevYBSoftwareConfig.getSoftwareVersion(), + universe.getUniverseDetails().getPrimaryCluster().userIntent.ybSoftwareVersion); } if (nodes.tserversList.size() > 0) { @@ -150,6 +157,10 @@ public void run() { universe, getNodesToEnableExpressionPushdown(universe), true /* flagValue */); createServerConfUpdateTaskForYsqlMajorUpgrade( universe, universe.getTServers(), YsqlMajorVersionUpgradeState.ROLLBACK_COMPLETE); + + if (requireAdditionalSuperUserForCatalogUpgrade) { + createManageCatalogUpgradeSuperUserTask(Action.DELETE_USER); + } } // Check software version on each node. diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareUpgradeTaskBase.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareUpgradeTaskBase.java index 46db98d2c62..5875971772b 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareUpgradeTaskBase.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareUpgradeTaskBase.java @@ -4,12 +4,13 @@ import com.google.common.collect.ImmutableMap; import com.yugabyte.yw.commissioner.BaseTaskDependencies; +import com.yugabyte.yw.commissioner.Common.CloudType; import com.yugabyte.yw.commissioner.TaskExecutor.SubTaskGroup; import com.yugabyte.yw.commissioner.UpgradeTaskBase; import com.yugabyte.yw.commissioner.UserTaskDetails.SubTaskGroupType; import com.yugabyte.yw.commissioner.tasks.XClusterConfigTaskBase; import com.yugabyte.yw.commissioner.tasks.subtasks.AnsibleConfigureServers; -import com.yugabyte.yw.common.PlatformServiceException; +import com.yugabyte.yw.commissioner.tasks.subtasks.ManageCatalogUpgradeSuperUser.Action; import com.yugabyte.yw.common.Util; import com.yugabyte.yw.common.config.UniverseConfKeys; import com.yugabyte.yw.common.gflags.GFlagsUtil; @@ -37,7 +38,6 @@ import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import org.yb.client.YBClient; -import play.mvc.Http.Status; @Slf4j public abstract class SoftwareUpgradeTaskBase extends UpgradeTaskBase { @@ -346,21 +346,6 @@ protected void createXClusterSourceRootCertDirPathGFlagTasks() { protected void createPrecheckTasks(Universe universe, String newVersion) { super.createPrecheckTasks(universe); - boolean ysqlMajorVersionUpgrade = - gFlagsValidation.ysqlMajorVersionUpgrade( - universe.getUniverseDetails().getPrimaryCluster().userIntent.ybSoftwareVersion, - newVersion) - && universe.getUniverseDetails().getPrimaryCluster().userIntent.enableYSQL; - - if (ysqlMajorVersionUpgrade) { - - // This is a temp check and it will be removed once we have solution from DB team. - if (universe.getUniverseDetails().getPrimaryCluster().userIntent.dedicatedNodes) { - throw new PlatformServiceException( - Status.INTERNAL_SERVER_ERROR, "Dedicated nodes is not supported with PG15 upgrade"); - } - } - MastersAndTservers nodes = fetchNodes(taskParams().upgradeOption); Set allNodes = toOrderedSet(nodes.asPair()); @@ -548,10 +533,35 @@ protected Cluster findCluster(Universe universe, UUID placementUuid) { .orElse(null); } + protected boolean isYsqlMajorVersionUpgrade( + Universe universe, String currentVersion, String newVersion) { + return gFlagsValidation.ysqlMajorVersionUpgrade(currentVersion, newVersion) + && universe.getUniverseDetails().getPrimaryCluster().userIntent.enableYSQL; + } + + protected boolean isSuperUserRequiredForCatalogUpgrade( + Universe universe, String currentVersion, String newVersion) { + UniverseDefinitionTaskParams.Cluster primaryCluster = + universe.getUniverseDetails().getPrimaryCluster(); + return isYsqlMajorVersionUpgrade(universe, currentVersion, newVersion) + && primaryCluster.userIntent.enableYSQLAuth + && (primaryCluster.userIntent.dedicatedNodes + || primaryCluster.userIntent.providerType.equals(CloudType.kubernetes)); + } + protected Runnable getFinalizeYSQLMajorUpgradeTask(Universe universe) { return () -> { createGFlagsUpgradeTaskForYSQLMajorUpgrade( universe, YsqlMajorVersionUpgradeState.FINALIZE_IN_PROGRESS); + + if (universe.getUniverseDetails().prevYBSoftwareConfig != null) { + String currentVersion = + universe.getUniverseDetails().getPrimaryCluster().userIntent.ybSoftwareVersion; + String oldVersion = universe.getUniverseDetails().prevYBSoftwareConfig.getSoftwareVersion(); + if (isSuperUserRequiredForCatalogUpgrade(universe, oldVersion, currentVersion)) { + createManageCatalogUpgradeSuperUserTask(Action.DELETE_USER); + } + } }; } } diff --git a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareUpgradeYB.java b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareUpgradeYB.java index fa7f8ba0bd5..449fbba1ad6 100644 --- a/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareUpgradeYB.java +++ b/managed/src/main/java/com/yugabyte/yw/commissioner/tasks/upgrade/SoftwareUpgradeYB.java @@ -5,6 +5,7 @@ import com.yugabyte.yw.commissioner.BaseTaskDependencies; import com.yugabyte.yw.commissioner.ITask.Abortable; import com.yugabyte.yw.commissioner.ITask.Retryable; +import com.yugabyte.yw.commissioner.tasks.subtasks.ManageCatalogUpgradeSuperUser.Action; import com.yugabyte.yw.common.PlatformServiceException; import com.yugabyte.yw.common.Util; import com.yugabyte.yw.common.gflags.AutoFlagUtil; @@ -73,17 +74,18 @@ protected String getTargetSoftwareVersion() { @Override public void run() { + Universe universe = getUniverse(); + String newVersion = taskParams().ybSoftwareVersion; + String currentVersion = + getUniverse().getUniverseDetails().getPrimaryCluster().userIntent.ybSoftwareVersion; runUpgrade( () -> { MastersAndTservers nodesToApply = getNodesToBeRestarted(); Set allNodes = toOrderedSet(fetchNodes(taskParams().upgradeOption).asPair()); - Universe universe = getUniverse(); - String newVersion = taskParams().ybSoftwareVersion; - String currentVersion = - universe.getUniverseDetails().getPrimaryCluster().userIntent.ybSoftwareVersion; boolean requireYsqlMajorVersionUpgrade = - gFlagsValidation.ysqlMajorVersionUpgrade(currentVersion, newVersion) - && universe.getUniverseDetails().getPrimaryCluster().userIntent.enableYSQL; + isYsqlMajorVersionUpgrade(universe, currentVersion, newVersion); + boolean requireAdditionalSuperUserForCatalogUpgrade = + isSuperUserRequiredForCatalogUpgrade(universe, currentVersion, newVersion); createUpdateUniverseSoftwareUpgradeStateTask( UniverseDefinitionTaskParams.SoftwareUpgradeState.Upgrading, @@ -102,14 +104,20 @@ public void run() { // If any master has been updated to new version, then this step would have been // completed and we don't need to do it again. - if (requireYsqlMajorVersionUpgrade - && nodesToApply.mastersList.size() == universe.getMasters().size()) { - // Set ysql_yb_enable_expression_pushdown to false for tservers for ysql major upgrade. - createGFlagsUpgradeTaskForYSQLMajorUpgrade( - universe, YsqlMajorVersionUpgradeState.IN_PROGRESS); - - // Run this pre-check after downloading software as it require pg_upgrade binary. - createPGUpgradeTServerCheckTask(newVersion); + if (requireYsqlMajorVersionUpgrade) { + if (nodesToApply.mastersList.size() == universe.getMasters().size()) { + // Set ysql_yb_enable_expression_pushdown to false for tservers for ysql major + // upgrade. + createGFlagsUpgradeTaskForYSQLMajorUpgrade( + universe, YsqlMajorVersionUpgradeState.IN_PROGRESS); + // Run this pre-check after downloading software as it require pg_upgrade binary. + createPGUpgradeTServerCheckTask(newVersion); + } + + if (requireAdditionalSuperUserForCatalogUpgrade) { + // Create a superuser for ysql catalog upgrade. + createManageCatalogUpgradeSuperUserTask(Action.CREATE_USER); + } } if (nodesToApply.mastersList.size() > 0) { @@ -130,15 +138,22 @@ public void run() { true /* activeRole */); } - if (nodesToApply.tserversList.size() > 0) { + if (nodesToApply.tserversList.size() == universe.getTServers().size()) { // If any tservers is upgraded, then we can assume pg upgrade is completed. if (requireYsqlMajorVersionUpgrade && nodesToApply.tserversList.size() == universe.getTServers().size()) { createPGUpgradeTServerCheckTask(newVersion); createRunYsqlMajorVersionCatalogUpgradeTask(); + + if (requireAdditionalSuperUserForCatalogUpgrade) { + // Delete the pg_pass file after catalog upgrade. + createManageCatalogUpgradeSuperUserTask(Action.DELETE_PG_PASS_FILE); + } } + } + if (nodesToApply.tserversList.size() > 0) { createTServerUpgradeFlowTasks( universe, nodesToApply.tserversList, @@ -194,6 +209,12 @@ public void run() { true /* isSoftwareRollbackAllowed */); } } + }, + null /* firstRunTxnCallback */, + () -> { + if (isSuperUserRequiredForCatalogUpgrade(universe, currentVersion, newVersion)) { + createManageCatalogUpgradeSuperUserTask(Action.DELETE_PG_PASS_FILE); + } }); } diff --git a/managed/src/main/java/com/yugabyte/yw/common/Util.java b/managed/src/main/java/com/yugabyte/yw/common/Util.java index 2bb4bf64cca..035e718329c 100644 --- a/managed/src/main/java/com/yugabyte/yw/common/Util.java +++ b/managed/src/main/java/com/yugabyte/yw/common/Util.java @@ -172,7 +172,7 @@ public class Util { public static final String YBA_VERSION_REGEX = "^(\\d+.\\d+.\\d+.\\d+)(-(b(\\d+)|(\\w+)))?$"; - private static final List specialCharacters = + public static final List SPECIAL_CHARACTERS_STRING_LIST = ImmutableList.of("!", "@", "#", "$", "%", "^", "&", "*"); private static final Map GO_DURATION_UNITS_TO_NANOS = @@ -1240,7 +1240,8 @@ public static String getRandomPassword() { String lowercaseLetter = String.valueOf((char) (randomInt + 'a')); String uppercaseLetter = lowercaseLetter.toUpperCase(); generatedPassword += - (specialCharacters.get(new Random().nextInt(specialCharacters.size())) + (SPECIAL_CHARACTERS_STRING_LIST.get( + new Random().nextInt(SPECIAL_CHARACTERS_STRING_LIST.size())) + lowercaseLetter + uppercaseLetter + String.valueOf(randomInt)); 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 5a98b0bbb49..11901c393dd 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 @@ -989,6 +989,9 @@ public enum TaskType { ManageAlertDefinitions(com.yugabyte.yw.commissioner.tasks.subtasks.ManageAlertDefinitions.class), + ManageCatalogUpgradeSuperUser( + com.yugabyte.yw.commissioner.tasks.subtasks.ManageCatalogUpgradeSuperUser.class), + MarkSourceMetric(com.yugabyte.yw.commissioner.tasks.subtasks.MarkSourceMetric.class), UniverseSetTlsParams(com.yugabyte.yw.commissioner.tasks.subtasks.UniverseSetTlsParams.class), diff --git a/managed/src/main/resources/swagger-strict.json b/managed/src/main/resources/swagger-strict.json index e665c96865d..76b69649baa 100644 --- a/managed/src/main/resources/swagger-strict.json +++ b/managed/src/main/resources/swagger-strict.json @@ -2755,6 +2755,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -5352,6 +5353,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -8265,6 +8267,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -9025,6 +9028,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -10388,6 +10392,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -14466,6 +14471,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -15433,6 +15439,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -16224,6 +16231,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -17705,6 +17713,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -18229,6 +18238,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -18594,6 +18604,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -19374,6 +19385,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -20417,6 +20429,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -21671,6 +21684,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -22305,6 +22319,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -23194,6 +23209,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -23792,6 +23808,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -24390,6 +24407,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -25390,6 +25408,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -26496,6 +26515,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", diff --git a/managed/src/main/resources/swagger.json b/managed/src/main/resources/swagger.json index 42cc7b23863..41945306fa6 100644 --- a/managed/src/main/resources/swagger.json +++ b/managed/src/main/resources/swagger.json @@ -2770,6 +2770,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -5390,6 +5391,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -8303,6 +8305,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -9067,6 +9070,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -10434,6 +10438,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -14565,6 +14570,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -15545,6 +15551,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -16336,6 +16343,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -17825,6 +17833,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -18349,6 +18358,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -18714,6 +18724,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -19494,6 +19505,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -20537,6 +20549,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -21791,6 +21804,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -22425,6 +22439,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -23314,6 +23329,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -23912,6 +23928,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -24510,6 +24527,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -25510,6 +25528,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert", @@ -26663,6 +26682,7 @@ "UnivSetCertificate", "CreateAlertDefinitions", "ManageAlertDefinitions", + "ManageCatalogUpgradeSuperUser", "MarkSourceMetric", "UniverseSetTlsParams", "UniverseUpdateRootCert",