This is an automated email from the ASF dual-hosted git repository.

shishkovilja pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new b75b2aebd07 IGNITE-28616 Remove duplicated --rolling-upgrade commands 
from control.sh (#13122)
b75b2aebd07 is described below

commit b75b2aebd0736d06083eb4f9aeed3021326b5dca
Author: Aleksandr Chesnokov <[email protected]>
AuthorDate: Mon May 25 10:24:16 2026 +0300

    IGNITE-28616 Remove duplicated --rolling-upgrade commands from control.sh 
(#13122)
---
 .../commandline/CommandHandlerParsingTest.java     |   5 -
 .../SecurityCommandHandlerPermissionsTest.java     |  37 ---
 .../testsuites/IgniteControlUtilityTestSuite2.java |   2 -
 .../ignite/util/RollingUpgradeCommandTest.java     | 298 ---------------------
 .../internal/management/IgniteCommandRegistry.java |   2 -
 .../rollingupgrade/RollingUpgradeCommand.java      |  32 ---
 .../RollingUpgradeDisableCommand.java              |  67 -----
 .../rollingupgrade/RollingUpgradeDisableTask.java  |  84 ------
 .../RollingUpgradeEnableCommand.java               |  74 -----
 .../RollingUpgradeEnableCommandArg.java            |  62 -----
 .../rollingupgrade/RollingUpgradeEnableTask.java   |  87 ------
 .../RollingUpgradeStatusCommand.java               |  87 ------
 .../rollingupgrade/RollingUpgradeStatusNode.java   | 102 -------
 .../rollingupgrade/RollingUpgradeStatusTask.java   |  72 -----
 .../rollingupgrade/RollingUpgradeTaskResult.java   | 114 --------
 ...ridCommandHandlerClusterByClassTest_help.output |  16 --
 ...andHandlerClusterByClassWithSSLTest_help.output |  16 --
 17 files changed, 1157 deletions(-)

diff --git 
a/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java
 
b/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java
index a238e5862a9..4976c53d377 100644
--- 
a/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java
+++ 
b/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java
@@ -77,8 +77,6 @@ import 
org.apache.ignite.internal.management.meta.MetaUpdateCommand;
 import org.apache.ignite.internal.management.metric.MetricCommand;
 import 
org.apache.ignite.internal.management.performancestatistics.PerformanceStatisticsCommand;
 import org.apache.ignite.internal.management.property.PropertyCommand;
-import 
org.apache.ignite.internal.management.rollingupgrade.RollingUpgradeCommand;
-import 
org.apache.ignite.internal.management.rollingupgrade.RollingUpgradeEnableCommand;
 import org.apache.ignite.internal.management.snapshot.SnapshotCommand;
 import org.apache.ignite.internal.management.snapshot.SnapshotRestoreCommand;
 import org.apache.ignite.internal.management.tx.TxCommand;
@@ -519,8 +517,6 @@ public class CommandHandlerParsingTest {
             cmdText = F.concat(cmdText, "masterKeyName1");
         else if (cmd.getClass() == EncryptionChangeCacheKeyCommand.class)
             cmdText = F.concat(cmdText, "cacheGroup1");
-        else if (cmd.getClass() == RollingUpgradeEnableCommand.class)
-            cmdText = F.concat(cmdText, "2.18.0");
         else if (cmd.getClass() == SnapshotRestoreCommand.class)
             cmdText = F.concat(cmdText, "snp1");
         else if (cmd.getClass() == MetaUpdateCommand.class)
@@ -1396,7 +1392,6 @@ public class CommandHandlerParsingTest {
             cmd == MetaCommand.class ||
             cmd == WarmUpCommand.class ||
             cmd == PropertyCommand.class ||
-            cmd == RollingUpgradeCommand.class ||
             cmd == SystemViewCommand.class ||
             cmd == MetricCommand.class ||
             cmd == DefragmentationCommand.class ||
diff --git 
a/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/SecurityCommandHandlerPermissionsTest.java
 
b/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/SecurityCommandHandlerPermissionsTest.java
index d10e6635a84..902bc9797d7 100644
--- 
a/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/SecurityCommandHandlerPermissionsTest.java
+++ 
b/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/SecurityCommandHandlerPermissionsTest.java
@@ -46,7 +46,6 @@ import 
org.apache.ignite.internal.processors.security.impl.TestSecurityPluginPro
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.lang.IgniteFutureCancelledException;
-import org.apache.ignite.lang.IgniteProductVersion;
 import org.apache.ignite.plugin.security.SecurityPermission;
 import org.apache.ignite.plugin.security.SecurityPermissionSet;
 import org.apache.ignite.plugin.security.SecurityPermissionSetBuilder;
@@ -61,7 +60,6 @@ import org.junit.runners.Parameterized;
 
 import static java.util.Arrays.asList;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_BUILD_VER;
 import static 
org.apache.ignite.internal.commandline.ArgumentParser.CMD_PASSWORD;
 import static org.apache.ignite.internal.commandline.ArgumentParser.CMD_USER;
 import static 
org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_OK;
@@ -69,7 +67,6 @@ import static 
org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_UN
 import static 
org.apache.ignite.internal.processors.job.GridJobProcessor.JOBS_VIEW;
 import static 
org.apache.ignite.internal.processors.task.GridTaskProcessor.TASKS_VIEW;
 import static org.apache.ignite.internal.util.IgniteUtils.resolveIgnitePath;
-import static 
org.apache.ignite.plugin.security.SecurityPermission.ADMIN_ROLLING_UPGRADE;
 import static 
org.apache.ignite.plugin.security.SecurityPermission.CACHE_CREATE;
 import static 
org.apache.ignite.plugin.security.SecurityPermission.CACHE_DESTROY;
 import static org.apache.ignite.plugin.security.SecurityPermission.CACHE_READ;
@@ -166,40 +163,6 @@ public class SecurityCommandHandlerPermissionsTest extends 
GridCommandHandlerAbs
         );
     }
 
-    /** */
-    @Test
-    public void testRollingUpgrade() throws Exception {
-        IgniteEx ign = startGrid(
-            0,
-            userData(TEST_NO_PERMISSIONS_LOGIN, NO_PERMISSIONS),
-            userData(TEST_LOGIN, systemPermissions(ADMIN_ROLLING_UPGRADE))
-        );
-
-        IgniteProductVersion curVer = 
IgniteProductVersion.fromString(ign.localNode().attribute(ATTR_BUILD_VER));
-        String targetVerStr = curVer.major() + "." + (curVer.minor() + 1) + 
".0";
-
-        List<String> cmdArgs = asList("--rolling-upgrade", "enable", 
targetVerStr);
-
-        assertEquals(EXIT_CODE_UNEXPECTED_ERROR, executeOnBehalf(cmdArgs, 
TEST_NO_PERMISSIONS_LOGIN));
-
-        assertFalse(ign.context().rollingUpgrade().enabled());
-
-        assertEquals(EXIT_CODE_OK, executeOnBehalf(cmdArgs, TEST_LOGIN));
-
-        assertTrue(ign.context().rollingUpgrade().enabled());
-        assertEquals(IgniteProductVersion.fromString(targetVerStr), 
ign.context().rollingUpgrade().versions().get2());
-
-        cmdArgs = asList("--rolling-upgrade", "disable");
-
-        assertEquals(EXIT_CODE_UNEXPECTED_ERROR, executeOnBehalf(cmdArgs, 
TEST_NO_PERMISSIONS_LOGIN));
-
-        assertTrue(ign.context().rollingUpgrade().enabled());
-
-        assertEquals(EXIT_CODE_OK, executeOnBehalf(cmdArgs, TEST_LOGIN));
-
-        assertFalse(ign.context().rollingUpgrade().enabled());
-    }
-
     /** */
     @Test
     public void testServiceCancel() throws Exception {
diff --git 
a/modules/control-utility/src/test/java/org/apache/ignite/testsuites/IgniteControlUtilityTestSuite2.java
 
b/modules/control-utility/src/test/java/org/apache/ignite/testsuites/IgniteControlUtilityTestSuite2.java
index c0adb33e5b2..eae0f1e86dc 100644
--- 
a/modules/control-utility/src/test/java/org/apache/ignite/testsuites/IgniteControlUtilityTestSuite2.java
+++ 
b/modules/control-utility/src/test/java/org/apache/ignite/testsuites/IgniteControlUtilityTestSuite2.java
@@ -36,7 +36,6 @@ import 
org.apache.ignite.util.GridCommandHandlerTracingConfigurationTest;
 import org.apache.ignite.util.IdleVerifyDumpTest;
 import org.apache.ignite.util.MetricCommandTest;
 import org.apache.ignite.util.PerformanceStatisticsCommandTest;
-import org.apache.ignite.util.RollingUpgradeCommandTest;
 import org.apache.ignite.util.SystemViewCommandTest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
@@ -63,7 +62,6 @@ import org.junit.runners.Suite;
 
     GridCommandHandlerEventTest.class,
 
-    RollingUpgradeCommandTest.class,
     SystemViewCommandTest.class,
     MetricCommandTest.class,
     PerformanceStatisticsCommandTest.class,
diff --git 
a/modules/control-utility/src/test/java/org/apache/ignite/util/RollingUpgradeCommandTest.java
 
b/modules/control-utility/src/test/java/org/apache/ignite/util/RollingUpgradeCommandTest.java
deleted file mode 100644
index 4d7b52dc7b9..00000000000
--- 
a/modules/control-utility/src/test/java/org/apache/ignite/util/RollingUpgradeCommandTest.java
+++ /dev/null
@@ -1,298 +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.ignite.util;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Consumer;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.IgniteEx;
-import 
org.apache.ignite.internal.management.rollingupgrade.RollingUpgradeCommand;
-import 
org.apache.ignite.internal.management.rollingupgrade.RollingUpgradeStatusCommand;
-import 
org.apache.ignite.internal.management.rollingupgrade.RollingUpgradeStatusNode;
-import 
org.apache.ignite.internal.management.rollingupgrade.RollingUpgradeTaskResult;
-import org.apache.ignite.lang.IgniteProductVersion;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.junit.Test;
-
-import static java.util.stream.Collectors.toList;
-import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_BUILD_VER;
-import static 
org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_OK;
-
-/** Tests {@link RollingUpgradeCommand} command. */
-public class RollingUpgradeCommandTest extends 
GridCommandHandlerClusterByClassAbstractTest {
-    /** */
-    public static final String ENABLE = "enable";
-
-    /** */
-    public static final String DISABLE = "disable";
-
-    /** */
-    public static final String FORCE = "--force";
-
-    /** */
-    public static final String ROLLING_UPGRADE = "--rolling-upgrade";
-
-    /** */
-    public static final String STATUS = "status";
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTestsStarted() throws Exception {
-        super.beforeTestsStarted();
-
-        autoConfirmation = true;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        super.afterTest();
-
-        if (crd.context().rollingUpgrade().enabled())
-            crd.context().rollingUpgrade().disable();
-    }
-
-    /** */
-    @Test
-    public void testEnableAndDisable() {
-        IgniteProductVersion curVer = 
IgniteProductVersion.fromString(crd.localNode().attribute(ATTR_BUILD_VER));
-
-        String targetVerStr = curVer.major() + "." + (curVer.minor() + 1) + 
".0";
-        IgniteProductVersion targetVer = 
IgniteProductVersion.fromString(targetVerStr);
-
-        int res = execute(ROLLING_UPGRADE, ENABLE, targetVerStr);
-
-        assertEquals(EXIT_CODE_OK, res);
-
-        RollingUpgradeTaskResult taskRes = 
(RollingUpgradeTaskResult)lastOperationResult;
-
-        assertNull(taskRes.errorMessage());
-        assertEquals(curVer, taskRes.currentVersion());
-        assertEquals(targetVer, taskRes.targetVersion());
-
-        assertTrue(crd.context().rollingUpgrade().enabled());
-
-        res = execute(ROLLING_UPGRADE, DISABLE);
-
-        assertEquals(EXIT_CODE_OK, res);
-
-        taskRes = (RollingUpgradeTaskResult)lastOperationResult;
-
-        assertNull(taskRes.errorMessage());
-        assertEquals(curVer, taskRes.currentVersion());
-        assertNull(taskRes.targetVersion());
-
-        assertFalse(crd.context().rollingUpgrade().enabled());
-    }
-
-    /** */
-    @Test
-    public void testDoubleDisable() {
-        IgniteProductVersion curVer = 
IgniteProductVersion.fromString(crd.localNode().attribute(ATTR_BUILD_VER));
-
-        int res = execute(ROLLING_UPGRADE, DISABLE);
-
-        assertEquals(EXIT_CODE_OK, res);
-        RollingUpgradeTaskResult taskRes = 
(RollingUpgradeTaskResult)lastOperationResult;
-
-        assertEquals(curVer, taskRes.currentVersion());
-        assertNull(taskRes.targetVersion());
-        assertNull(taskRes.errorMessage());
-
-        res = execute(ROLLING_UPGRADE, DISABLE);
-
-        assertEquals(EXIT_CODE_OK, res);
-        taskRes = (RollingUpgradeTaskResult)lastOperationResult;
-
-        assertNull(taskRes.errorMessage());
-        assertEquals(curVer, taskRes.currentVersion());
-        assertNull(taskRes.targetVersion());
-
-        assertFalse(crd.context().rollingUpgrade().enabled());
-    }
-
-    /** */
-    @Test
-    public void testEnableWithDifferentTargetVersions() {
-        IgniteProductVersion curVer = 
IgniteProductVersion.fromString(crd.localNode().attribute(ATTR_BUILD_VER));
-
-        String targetVerStr = curVer.major() + "." + (curVer.minor() + 1) + 
".0";
-        IgniteProductVersion targetVer = 
IgniteProductVersion.fromString(targetVerStr);
-
-        execute(ROLLING_UPGRADE, ENABLE, targetVerStr);
-
-        String anotherTargetVerStr = curVer.major() + "." + curVer.minor() + 
"." + (curVer.maintenance() + 1);
-
-        int res = execute(ROLLING_UPGRADE, ENABLE, anotherTargetVerStr);
-
-        assertEquals(EXIT_CODE_OK, res);
-        RollingUpgradeTaskResult taskRes = 
(RollingUpgradeTaskResult)lastOperationResult;
-
-        assertNotNull(taskRes.errorMessage());
-        assertTrue(taskRes.errorMessage().contains("Rolling upgrade is already 
enabled with a different current and target version"));
-
-        assertEquals(curVer, taskRes.currentVersion());
-        assertEquals(targetVer, taskRes.targetVersion());
-
-        assertTrue(crd.context().rollingUpgrade().enabled());
-    }
-
-    /** */
-    @Test
-    public void testForceEnable() {
-        IgniteProductVersion curVer = 
IgniteProductVersion.fromString(crd.localNode().attribute(ATTR_BUILD_VER));
-
-        String targetVerStr = curVer.major() + "." + (curVer.minor() + 1) + 
"." + (curVer.maintenance() + 1);
-        IgniteProductVersion targetVer = 
IgniteProductVersion.fromString(targetVerStr);
-
-        int res = execute(ROLLING_UPGRADE, ENABLE, targetVerStr);
-
-        assertEquals(EXIT_CODE_OK, res);
-
-        RollingUpgradeTaskResult taskRes = 
(RollingUpgradeTaskResult)lastOperationResult;
-
-        assertNotNull(taskRes.errorMessage());
-        assertTrue(taskRes.errorMessage().contains("Minor version can only be 
incremented by 1"));
-        assertNull(taskRes.targetVersion());
-
-        String anotherTargetVerStr = curVer.major() + "." + curVer.minor() + 
"." + (curVer.maintenance() + 1);
-
-        execute(ROLLING_UPGRADE, ENABLE, targetVerStr, FORCE);
-
-        taskRes = (RollingUpgradeTaskResult)lastOperationResult;
-        assertNull(taskRes.errorMessage());
-
-        res = execute(ROLLING_UPGRADE, ENABLE, anotherTargetVerStr, FORCE);
-
-        assertEquals(EXIT_CODE_OK, res);
-        taskRes = (RollingUpgradeTaskResult)lastOperationResult;
-
-        assertNotNull(taskRes.errorMessage());
-        assertTrue(taskRes.errorMessage().contains("Rolling upgrade is already 
enabled with a different current and target version"));
-
-        assertEquals(curVer, taskRes.currentVersion());
-        assertEquals(targetVer, taskRes.targetVersion());
-
-        assertTrue(crd.context().rollingUpgrade().enabled());
-    }
-
-    /** */
-    @Test
-    public void testStatusWhenDisabled() {
-        int res = execute(ROLLING_UPGRADE, STATUS);
-
-        assertEquals(EXIT_CODE_OK, res);
-
-        RollingUpgradeTaskResult taskRes = 
(RollingUpgradeTaskResult)lastOperationResult;
-
-        assertNull(taskRes.errorMessage());
-        assertNull(taskRes.currentVersion());
-        assertNull(taskRes.targetVersion());
-
-        assertNull(taskRes.nodes());
-
-        RollingUpgradeStatusCommand statusCmd = new 
RollingUpgradeStatusCommand();
-
-        List<String> lines = new ArrayList<>();
-
-        statusCmd.printResult(null, taskRes, lines::add);
-
-        List<String> expectedLines = new ArrayList<>();
-
-        expectedLines.add("Rolling upgrade status: disabled");
-
-        assertEquals(expectedLines, lines);
-    }
-
-    /** */
-    @Test
-    public void testStatusWhenEnabled() throws Exception {
-        IgniteProductVersion curVer = 
IgniteProductVersion.fromString(crd.localNode().attribute(ATTR_BUILD_VER));
-
-        String targetVerStr = curVer.major() + "." + (curVer.minor() + 1) + 
"." + curVer.maintenance();
-        IgniteProductVersion targetVer = 
IgniteProductVersion.fromString(targetVerStr);
-
-        execute(ROLLING_UPGRADE, ENABLE, targetVerStr);
-
-        Consumer<IgniteConfiguration> cfgC = cfg -> {
-            TcpDiscoverySpi discoSpi = new TcpDiscoverySpi() {
-                @Override public void setNodeAttributes(Map<String, Object> 
attrs, IgniteProductVersion ver) {
-                    super.setNodeAttributes(attrs, ver);
-                    attrs.put(ATTR_BUILD_VER, targetVerStr);
-                }
-            };
-
-            
discoSpi.setIpFinder(((TcpDiscoverySpi)cfg.getDiscoverySpi()).getIpFinder());
-            cfg.setDiscoverySpi(discoSpi);
-        };
-
-        try (IgniteEx ignored = startGrid(SERVER_NODE_CNT + 1, cfgC)) {
-            int res = execute(ROLLING_UPGRADE, STATUS);
-
-            assertEquals(EXIT_CODE_OK, res);
-        }
-
-        RollingUpgradeTaskResult taskRes = 
(RollingUpgradeTaskResult)lastOperationResult;
-
-        assertNull(taskRes.errorMessage());
-        assertEquals(curVer, taskRes.currentVersion());
-        assertEquals(targetVer, taskRes.targetVersion());
-
-        List<RollingUpgradeStatusNode> nodes = taskRes.nodes();
-
-        assertNotNull(nodes);
-        assertEquals(SERVER_NODE_CNT + 2, nodes.size());
-
-        List<RollingUpgradeStatusNode> oldNodes = nodes.stream().filter(node 
-> node.version().equals(curVer)).collect(toList());
-
-        List<RollingUpgradeStatusNode> newNodes = nodes.stream().filter(node 
-> node.version().equals(targetVer)).collect(toList());
-
-        assertEquals(SERVER_NODE_CNT + 1, oldNodes.size());
-        assertEquals(1, newNodes.size());
-
-        RollingUpgradeStatusCommand statusCmd = new 
RollingUpgradeStatusCommand();
-
-        List<String> lines = new ArrayList<>();
-
-        statusCmd.printResult(null, taskRes, lines::add);
-
-        List<String> expectedLines = new ArrayList<>();
-
-        expectedLines.add("Rolling upgrade status: enabled");
-        expectedLines.add("Current version: " + curVer);
-        expectedLines.add("Target version: " + targetVer);
-
-        expectedLines.add("Version " + curVer + ":");
-        oldNodes.forEach(node -> expectedLines.add("    Node[id=" + 
node.uuid() +
-            ", consistentId=" + node.consistentId() +
-            ", addrs=" + node.addresses() +
-            ", order=" + node.order() +
-            ", isClient=" + node.client() +
-            "]"));
-
-        expectedLines.add("Version " + targetVer + ":");
-        newNodes.forEach(node -> expectedLines.add("    Node[id=" + 
node.uuid() +
-            ", consistentId=" + node.consistentId() +
-            ", addrs=" + node.addresses() +
-            ", order=" + node.order() +
-            ", isClient=" + node.client() +
-            "]"));
-
-        assertEquals(expectedLines, lines);
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/IgniteCommandRegistry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/IgniteCommandRegistry.java
index 9e6b2194ded..f7c9ea9c57f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/IgniteCommandRegistry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/management/IgniteCommandRegistry.java
@@ -36,7 +36,6 @@ import 
org.apache.ignite.internal.management.metric.MetricCommand;
 import 
org.apache.ignite.internal.management.performancestatistics.PerformanceStatisticsCommand;
 import org.apache.ignite.internal.management.persistence.PersistenceCommand;
 import org.apache.ignite.internal.management.property.PropertyCommand;
-import 
org.apache.ignite.internal.management.rollingupgrade.RollingUpgradeCommand;
 import org.apache.ignite.internal.management.snapshot.SnapshotCommand;
 import 
org.apache.ignite.internal.management.tracing.TracingConfigurationCommand;
 import org.apache.ignite.internal.management.tx.TxCommand;
@@ -71,7 +70,6 @@ public class IgniteCommandRegistry extends 
CommandRegistryImpl<NoArg, Void> {
             new TracingConfigurationCommand(),
             new WarmUpCommand(),
             new PropertyCommand(),
-            new RollingUpgradeCommand(),
             new SystemViewCommand(),
             new MetricCommand(),
             new PersistenceCommand(),
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeCommand.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeCommand.java
deleted file mode 100644
index 9ac1b41822c..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeCommand.java
+++ /dev/null
@@ -1,32 +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.ignite.internal.management.rollingupgrade;
-
-import org.apache.ignite.internal.management.api.CommandRegistryImpl;
-
-/** Rolling upgrade commands. */
-public class RollingUpgradeCommand extends CommandRegistryImpl {
-    /** */
-    public RollingUpgradeCommand() {
-        super(
-            new RollingUpgradeEnableCommand(),
-            new RollingUpgradeDisableCommand(),
-            new RollingUpgradeStatusCommand()
-        );
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeDisableCommand.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeDisableCommand.java
deleted file mode 100644
index 8bf3b948f07..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeDisableCommand.java
+++ /dev/null
@@ -1,67 +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.ignite.internal.management.rollingupgrade;
-
-import java.util.Collection;
-import java.util.function.Consumer;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.management.api.ComputeCommand;
-import org.apache.ignite.internal.management.api.NoArg;
-import org.apache.ignite.lang.IgniteExperimental;
-
-import static 
org.apache.ignite.internal.management.api.CommandUtils.coordinatorOrNull;
-
-/** Command to disable rolling upgrade mode. */
-@IgniteExperimental
-public class RollingUpgradeDisableCommand implements ComputeCommand<NoArg, 
RollingUpgradeTaskResult> {
-    /** {@inheritDoc} */
-    @Override public String description() {
-        return "Disable rolling upgrade mode. All nodes in the cluster must be 
running the same version";
-    }
-
-    /** {@inheritDoc} */
-    @Override public Class<NoArg> argClass() {
-        return NoArg.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Class<RollingUpgradeDisableTask> taskClass() {
-        return RollingUpgradeDisableTask.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void printResult(NoArg arg, RollingUpgradeTaskResult res, 
Consumer<String> printer) {
-        if (res.errorMessage() != null) {
-            printer.accept("Failed to disable rolling upgrade: " + 
res.errorMessage());
-            return;
-        }
-
-        printer.accept("Rolling upgrade disabled [currentVersion=" + 
res.currentVersion() + ']');
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<ClusterNode> nodes(Collection<ClusterNode> 
nodes, NoArg arg) {
-        Collection<ClusterNode> coordinator = coordinatorOrNull(nodes);
-
-        if (coordinator == null)
-            throw new IgniteException("Could not find coordinator among nodes: 
" + nodes);
-
-        return coordinator;
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeDisableTask.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeDisableTask.java
deleted file mode 100644
index 948e8b0161d..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeDisableTask.java
+++ /dev/null
@@ -1,84 +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.ignite.internal.management.rollingupgrade;
-
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.internal.management.api.NoArg;
-import 
org.apache.ignite.internal.processors.rollingupgrade.RollingUpgradeProcessor;
-import org.apache.ignite.internal.processors.task.GridInternal;
-import org.apache.ignite.internal.util.lang.IgnitePair;
-import org.apache.ignite.internal.visor.VisorJob;
-import org.apache.ignite.internal.visor.VisorOneNodeTask;
-import org.apache.ignite.lang.IgniteProductVersion;
-import org.apache.ignite.plugin.security.SecurityPermissionSet;
-
-import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_BUILD_VER;
-import static 
org.apache.ignite.plugin.security.SecurityPermissionSetBuilder.NO_PERMISSIONS;
-
-/** Task to disable rolling upgrade. */
-@GridInternal
-public class RollingUpgradeDisableTask extends VisorOneNodeTask<NoArg, 
RollingUpgradeTaskResult> {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** {@inheritDoc} */
-    @Override protected VisorJob<NoArg, RollingUpgradeTaskResult> job(NoArg 
arg) {
-        return new RollingUpgradeDisableJob(arg, debug);
-    }
-
-    /** */
-    private static class RollingUpgradeDisableJob extends VisorJob<NoArg, 
RollingUpgradeTaskResult> {
-        /** */
-        private static final long serialVersionUID = 0L;
-
-        /** */
-        protected RollingUpgradeDisableJob(NoArg arg, boolean debug) {
-            super(arg, debug);
-        }
-
-        /** {@inheritDoc} */
-        @Override public SecurityPermissionSet requiredPermissions() {
-            // This task does nothing but delegate a call to the Ignite 
Rolling Upgrade processor, which performs user
-            // permissions checks on its own. Therefore, it is safe to execute 
task without any additional permissions check.
-            return NO_PERMISSIONS;
-        }
-
-        /** {@inheritDoc} */
-        @Override protected RollingUpgradeTaskResult run(NoArg arg) throws 
IgniteException {
-            RollingUpgradeProcessor proc = ignite.context().rollingUpgrade();
-
-            try {
-                proc.disable();
-
-                String buildVer = ignite.localNode().attribute(ATTR_BUILD_VER);
-
-                return new 
RollingUpgradeTaskResult(IgniteProductVersion.fromString(buildVer), null, null);
-            }
-            catch (IgniteCheckedException e) {
-                IgnitePair<IgniteProductVersion> rollUpVers = proc.versions();
-
-                return new RollingUpgradeTaskResult(
-                    rollUpVers == null ? null : rollUpVers.get1(),
-                    rollUpVers == null ? null : rollUpVers.get2(),
-                    e.getMessage()
-                );
-            }
-        }
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeEnableCommand.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeEnableCommand.java
deleted file mode 100644
index 94cfd7be2ab..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeEnableCommand.java
+++ /dev/null
@@ -1,74 +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.ignite.internal.management.rollingupgrade;
-
-import java.util.Collection;
-import java.util.function.Consumer;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.management.api.ComputeCommand;
-import org.apache.ignite.lang.IgniteExperimental;
-
-import static 
org.apache.ignite.internal.management.api.CommandUtils.coordinatorOrNull;
-
-/** Command to enable rolling upgrade mode. */
-@IgniteExperimental
-public class RollingUpgradeEnableCommand implements 
ComputeCommand<RollingUpgradeEnableCommandArg, RollingUpgradeTaskResult> {
-    /** {@inheritDoc} */
-    @Override public String description() {
-        return "Enable rolling upgrade mode. It allows cluster with 
mixed-version nodes";
-    }
-
-    /** {@inheritDoc} */
-    @Override public String confirmationPrompt(RollingUpgradeEnableCommandArg 
arg) {
-        return "Warning: the command will enable rolling upgrade mode. "
-            + "It allows cluster with mixed-version nodes. You are responsible 
for upgrading nodes manually. "
-            + "This mode can be disabled only when all nodes (including client 
nodes) run the same version.";
-    }
-
-    /** {@inheritDoc} */
-    @Override public Class<RollingUpgradeEnableCommandArg> argClass() {
-        return RollingUpgradeEnableCommandArg.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Class<RollingUpgradeEnableTask> taskClass() {
-        return RollingUpgradeEnableTask.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void printResult(RollingUpgradeEnableCommandArg arg, 
RollingUpgradeTaskResult res, Consumer<String> printer) {
-        if (res.errorMessage() != null) {
-            printer.accept("Failed to enable rolling upgrade: " + 
res.errorMessage());
-            return;
-        }
-
-        printer.accept("Rolling upgrade enabled "
-                + "[currentVersion=" + res.currentVersion() + ", 
targetVersion=" + res.targetVersion() + ']');
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<ClusterNode> nodes(Collection<ClusterNode> 
nodes, RollingUpgradeEnableCommandArg arg) {
-        Collection<ClusterNode> coordinator = coordinatorOrNull(nodes);
-
-        if (coordinator == null)
-            throw new IgniteException("Could not find coordinator among nodes: 
" + nodes);
-
-        return coordinator;
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeEnableCommandArg.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeEnableCommandArg.java
deleted file mode 100644
index 2dbf87e3189..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeEnableCommandArg.java
+++ /dev/null
@@ -1,62 +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.ignite.internal.management.rollingupgrade;
-
-import org.apache.ignite.internal.Order;
-import org.apache.ignite.internal.dto.IgniteDataTransferObject;
-import org.apache.ignite.internal.management.api.Argument;
-import org.apache.ignite.internal.management.api.Positional;
-
-/** Rolling upgrade enable command argument. */
-public class RollingUpgradeEnableCommandArg extends IgniteDataTransferObject {
-    /** */
-    private static final long serialVersionUID = 0;
-
-    /** Target version. */
-    @Order(0)
-    @Positional
-    @Argument(description = "Target Ignite version. The target version can be 
one minor higher if its maintenance version is zero, "
-        + "or one maintenance version higher (e.g. 2.18.0 -> 2.18.1 or 2.18.1 
-> 2.19.0)")
-    String targetVersion;
-
-    /** Force flag. */
-    @Order(1)
-    @Argument(description = "Enable rolling upgrade without target version 
checks."
-        + " Use only when required, if the upgrade cannot proceed otherwise", 
optional = true)
-    boolean force;
-
-    /** */
-    public String targetVersion() {
-        return targetVersion;
-    }
-
-    /** */
-    public void targetVersion(String targetVersion) {
-        this.targetVersion = targetVersion;
-    }
-
-    /** */
-    public boolean force() {
-        return force;
-    }
-
-    /** */
-    public void force(boolean force) {
-        this.force = force;
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeEnableTask.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeEnableTask.java
deleted file mode 100644
index 7f97f69be97..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeEnableTask.java
+++ /dev/null
@@ -1,87 +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.ignite.internal.management.rollingupgrade;
-
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.IgniteException;
-import 
org.apache.ignite.internal.processors.rollingupgrade.RollingUpgradeProcessor;
-import org.apache.ignite.internal.processors.task.GridInternal;
-import org.apache.ignite.internal.util.lang.IgnitePair;
-import org.apache.ignite.internal.visor.VisorJob;
-import org.apache.ignite.internal.visor.VisorOneNodeTask;
-import org.apache.ignite.lang.IgniteProductVersion;
-import org.apache.ignite.plugin.security.SecurityPermissionSet;
-
-import static 
org.apache.ignite.plugin.security.SecurityPermissionSetBuilder.NO_PERMISSIONS;
-
-/** Task to enable rolling upgrade. */
-@GridInternal
-public class RollingUpgradeEnableTask extends 
VisorOneNodeTask<RollingUpgradeEnableCommandArg, RollingUpgradeTaskResult> {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** {@inheritDoc} */
-    @Override protected VisorJob<RollingUpgradeEnableCommandArg, 
RollingUpgradeTaskResult> job(RollingUpgradeEnableCommandArg arg) {
-        return new RollingUpgradeEnableJob(arg, debug);
-    }
-
-    /** */
-    private static class RollingUpgradeEnableJob extends 
VisorJob<RollingUpgradeEnableCommandArg, RollingUpgradeTaskResult> {
-        /** */
-        private static final long serialVersionUID = 0L;
-
-        /** */
-        protected RollingUpgradeEnableJob(RollingUpgradeEnableCommandArg arg, 
boolean debug) {
-            super(arg, debug);
-        }
-
-        /** {@inheritDoc} */
-        @Override public SecurityPermissionSet requiredPermissions() {
-            // This task does nothing but delegate a call to the Ignite 
Rolling Upgrade processor, which performs user
-            // permissions checks on its own. Therefore, it is safe to execute 
task without any additional permissions check.
-            return NO_PERMISSIONS;
-        }
-
-        /** {@inheritDoc} */
-        @Override protected RollingUpgradeTaskResult 
run(RollingUpgradeEnableCommandArg arg) throws IgniteException {
-            RollingUpgradeProcessor proc = ignite.context().rollingUpgrade();
-
-            try {
-                
proc.enable(IgniteProductVersion.fromString(arg.targetVersion()), arg.force());
-
-                IgnitePair<IgniteProductVersion> rollUpVers = proc.versions();
-
-                return new RollingUpgradeTaskResult(
-                    rollUpVers == null ? null : rollUpVers.get1(),
-                    rollUpVers == null ? null : rollUpVers.get2(),
-                    null
-                );
-            }
-            catch (IgniteCheckedException e) {
-                IgnitePair<IgniteProductVersion> rollUpVers = proc.versions();
-
-                return new RollingUpgradeTaskResult(
-                    rollUpVers == null ? null : rollUpVers.get1(),
-                    rollUpVers == null ? null : rollUpVers.get2(),
-                    e.getMessage()
-                );
-            }
-        }
-
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeStatusCommand.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeStatusCommand.java
deleted file mode 100644
index a46d63b6ec5..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeStatusCommand.java
+++ /dev/null
@@ -1,87 +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.ignite.internal.management.rollingupgrade;
-
-import java.util.Collection;
-import java.util.TreeMap;
-import java.util.function.Consumer;
-import java.util.stream.Collectors;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.management.api.ComputeCommand;
-import org.apache.ignite.internal.management.api.NoArg;
-import org.apache.ignite.lang.IgniteExperimental;
-
-import static 
org.apache.ignite.internal.management.api.CommandUtils.coordinatorOrNull;
-
-/** Command to get status of rolling upgrade mode. */
-@IgniteExperimental
-public class RollingUpgradeStatusCommand implements ComputeCommand<NoArg, 
RollingUpgradeTaskResult> {
-    /** {@inheritDoc} */
-    @Override public String description() {
-        return "Get status of rolling upgrade mode";
-    }
-
-    /** {@inheritDoc} */
-    @Override public Class<NoArg> argClass() {
-        return NoArg.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override public Class<RollingUpgradeStatusTask> taskClass() {
-        return RollingUpgradeStatusTask.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void printResult(NoArg arg, RollingUpgradeTaskResult res, 
Consumer<String> printer) {
-        printer.accept("Rolling upgrade status: " + (res.targetVersion() != 
null ? "enabled" : "disabled"));
-
-        if (res.targetVersion() == null)
-            return;
-
-        printer.accept("Current version: " + res.currentVersion());
-        printer.accept("Target version: " + res.targetVersion());
-
-        if (res.nodes() == null || res.nodes().isEmpty()) {
-            printer.accept("No nodes information available");
-            return;
-        }
-
-        res.nodes().stream()
-            .collect(Collectors.groupingBy(RollingUpgradeStatusNode::version, 
TreeMap::new, Collectors.toList()))
-            .forEach((ver, nodes) -> {
-                printer.accept("Version " + ver + ":");
-                nodes.forEach(node -> printer.accept("    Node[id=" + 
node.uuid() +
-                    ", consistentId=" + node.consistentId() +
-                    ", addrs=" + node.addresses() +
-                    ", order=" + node.order() +
-                    ", isClient=" + node.client() +
-                    "]"));
-            });
-    }
-
-    /** {@inheritDoc} */
-    @Override public Collection<ClusterNode> nodes(Collection<ClusterNode> 
nodes, NoArg arg) {
-        Collection<ClusterNode> coordinator = coordinatorOrNull(nodes);
-
-        if (coordinator == null)
-            throw new IgniteException("Could not find coordinator among nodes: 
" + nodes);
-
-        return coordinator;
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeStatusNode.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeStatusNode.java
deleted file mode 100644
index 40d6e81e0a3..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeStatusNode.java
+++ /dev/null
@@ -1,102 +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.ignite.internal.management.rollingupgrade;
-
-import java.util.Collection;
-import java.util.UUID;
-import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.internal.Order;
-import org.apache.ignite.internal.dto.IgniteDataTransferObject;
-import org.apache.ignite.lang.IgniteProductVersion;
-
-import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_BUILD_VER;
-
-/** Node status information for rolling upgrade. */
-public class RollingUpgradeStatusNode extends IgniteDataTransferObject {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    @Order(0)
-    UUID uuid;
-
-    /** */
-    @Order(1)
-    Object consistentId;
-
-    /** */
-    @Order(2)
-    Collection<String> addresses;
-
-    /** */
-    @Order(3)
-    IgniteProductVersion ver;
-
-    /** */
-    @Order(4)
-    long order;
-
-    /** */
-    @Order(5)
-    boolean client;
-
-    /** */
-    public RollingUpgradeStatusNode() {
-        // No-op.
-    }
-
-    /** */
-    public RollingUpgradeStatusNode(ClusterNode node) {
-        ver = IgniteProductVersion.fromString(node.attribute(ATTR_BUILD_VER));
-        uuid = node.id();
-        consistentId = node.consistentId();
-        addresses = node.addresses();
-        order = node.order();
-        client = node.isClient();
-    }
-
-    /** */
-    public IgniteProductVersion version() {
-        return ver;
-    }
-
-    /** */
-    public Collection<String> addresses() {
-        return addresses;
-    }
-
-    /** */
-    public UUID uuid() {
-        return uuid;
-    }
-
-    /** */
-    public Object consistentId() {
-        return consistentId;
-    }
-
-    /** */
-    public long order() {
-        return order;
-    }
-
-    /** */
-    public boolean client() {
-        return client;
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeStatusTask.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeStatusTask.java
deleted file mode 100644
index af5084748f8..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeStatusTask.java
+++ /dev/null
@@ -1,72 +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.ignite.internal.management.rollingupgrade;
-
-import java.util.List;
-import java.util.stream.Collectors;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.internal.management.api.NoArg;
-import org.apache.ignite.internal.processors.task.GridInternal;
-import org.apache.ignite.internal.util.lang.IgnitePair;
-import org.apache.ignite.internal.visor.VisorJob;
-import org.apache.ignite.internal.visor.VisorOneNodeTask;
-import org.apache.ignite.lang.IgniteProductVersion;
-
-/** Task to obtain rolling upgrade status. */
-@GridInternal
-public class RollingUpgradeStatusTask extends VisorOneNodeTask<NoArg, 
RollingUpgradeTaskResult> {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** {@inheritDoc} */
-    @Override protected VisorJob<NoArg, RollingUpgradeTaskResult> job(NoArg 
arg) {
-        return new RollingUpgradeStatusJob(arg, debug);
-    }
-
-    /** */
-    private static class RollingUpgradeStatusJob extends VisorJob<NoArg, 
RollingUpgradeTaskResult> {
-        /** */
-        private static final long serialVersionUID = 0L;
-
-        /** */
-        protected RollingUpgradeStatusJob(NoArg arg, boolean debug) {
-            super(arg, debug);
-        }
-
-        /** {@inheritDoc} */
-        @Override protected RollingUpgradeTaskResult run(NoArg arg) throws 
IgniteException {
-            IgnitePair<IgniteProductVersion> vers = 
ignite.context().rollingUpgrade().versions();
-
-            List<RollingUpgradeStatusNode> nodes = null;
-
-            if (vers != null && vers.get2() != null)
-                nodes = ignite.context().discovery().allNodes().stream()
-                    .map(node -> new RollingUpgradeStatusNode(node))
-                    .collect(Collectors.toList());
-
-            RollingUpgradeTaskResult res = new RollingUpgradeTaskResult(
-                vers == null ? null : vers.get1(),
-                vers == null ? null : vers.get2(),
-                null,
-                nodes
-            );
-
-            return res;
-        }
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeTaskResult.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeTaskResult.java
deleted file mode 100644
index bd08c25ad4f..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/management/rollingupgrade/RollingUpgradeTaskResult.java
+++ /dev/null
@@ -1,114 +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.ignite.internal.management.rollingupgrade;
-
-import java.util.List;
-import org.apache.ignite.internal.Order;
-import org.apache.ignite.internal.dto.IgniteDataTransferObject;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.lang.IgniteProductVersion;
-
-/** */
-public class RollingUpgradeTaskResult extends IgniteDataTransferObject {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    @Order(0)
-    IgniteProductVersion curVer;
-
-    /** */
-    @Order(1)
-    IgniteProductVersion targetVer;
-
-    /** */
-    @Order(2)
-    String errMsg;
-
-    /** */
-    @Order(3)
-    List<RollingUpgradeStatusNode> nodes;
-
-    /** */
-    public RollingUpgradeTaskResult(IgniteProductVersion curVer, 
IgniteProductVersion targetVer, String errMsg) {
-        this(curVer, targetVer, errMsg, null);
-    }
-
-    /** */
-    public RollingUpgradeTaskResult(
-        IgniteProductVersion curVer,
-        IgniteProductVersion targetVer,
-        String errMsg,
-        List<RollingUpgradeStatusNode> nodes
-    ) {
-        this.curVer = curVer;
-        this.targetVer = targetVer;
-        this.errMsg = errMsg;
-        this.nodes = nodes;
-    }
-
-    /** */
-    public RollingUpgradeTaskResult() {
-        // No-op.
-    }
-
-    /** */
-    public IgniteProductVersion currentVersion() {
-        return curVer;
-    }
-
-    /** */
-    public void currentVersion(IgniteProductVersion curVer) {
-        this.curVer = curVer;
-    }
-
-    /** */
-    public IgniteProductVersion targetVersion() {
-        return targetVer;
-    }
-
-    /** */
-    public void targetVersion(IgniteProductVersion targetVer) {
-        this.targetVer = targetVer;
-    }
-
-    /** */
-    public String errorMessage() {
-        return errMsg;
-    }
-
-    /** */
-    public void errorMessage(String errMsg) {
-        this.errMsg = errMsg;
-    }
-
-    /** */
-    public List<RollingUpgradeStatusNode> nodes() {
-        return nodes;
-    }
-
-    /** */
-    public void nodes(List<RollingUpgradeStatusNode> nodes) {
-        this.nodes = nodes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(RollingUpgradeTaskResult.class, this);
-    }
-}
diff --git 
a/modules/core/src/test/resources/org.apache.ignite.util/GridCommandHandlerClusterByClassTest_help.output
 
b/modules/core/src/test/resources/org.apache.ignite.util/GridCommandHandlerClusterByClassTest_help.output
index 6e4cfb5e299..93f39543202 100644
--- 
a/modules/core/src/test/resources/org.apache.ignite.util/GridCommandHandlerClusterByClassTest_help.output
+++ 
b/modules/core/src/test/resources/org.apache.ignite.util/GridCommandHandlerClusterByClassTest_help.output
@@ -368,22 +368,6 @@ If the file name isn't specified the output file name is: 
'<typeId>.bin':
   Set the property value:
     control.(sh|bat) --property set --name <property_name> --val 
<property_value>
 
-  [EXPERIMENTAL]
-  Enable rolling upgrade mode. It allows cluster with mixed-version nodes:
-      control.(sh|bat) --rolling-upgrade enable target_version [--force]
-
-      Parameters:
-        target_version  - Target Ignite version. The target version can be one 
minor higher if its maintenance version is zero, or one maintenance version 
higher (e.g. 2.18.0 -> 2.18.1 or 2.18.1 -> 2.19.0).
-        --force         - Enable rolling upgrade without target version 
checks. Use only when required, if the upgrade cannot proceed otherwise.
-
-  [EXPERIMENTAL]
-  Disable rolling upgrade mode. All nodes in the cluster must be running the 
same version:
-    control.(sh|bat) --rolling-upgrade disable
-
-  [EXPERIMENTAL]
-    Get status of rolling upgrade mode:
-      control.(sh|bat) --rolling-upgrade status
-
   Print system view content:
     control.(sh|bat) --system-view system_view_name [--node-id 
node_id|--node-ids nodeId1,nodeId2,..|--all-nodes]
 
diff --git 
a/modules/core/src/test/resources/org.apache.ignite.util/GridCommandHandlerClusterByClassWithSSLTest_help.output
 
b/modules/core/src/test/resources/org.apache.ignite.util/GridCommandHandlerClusterByClassWithSSLTest_help.output
index b1d62c5834a..c7e6fb3bd77 100644
--- 
a/modules/core/src/test/resources/org.apache.ignite.util/GridCommandHandlerClusterByClassWithSSLTest_help.output
+++ 
b/modules/core/src/test/resources/org.apache.ignite.util/GridCommandHandlerClusterByClassWithSSLTest_help.output
@@ -368,22 +368,6 @@ If the file name isn't specified the output file name is: 
'<typeId>.bin':
   Set the property value:
     control.(sh|bat) --property set --name <property_name> --val 
<property_value>
 
-  [EXPERIMENTAL]
-  Enable rolling upgrade mode. It allows cluster with mixed-version nodes:
-      control.(sh|bat) --rolling-upgrade enable target_version [--force]
-
-      Parameters:
-        target_version  - Target Ignite version. The target version can be one 
minor higher if its maintenance version is zero, or one maintenance version 
higher (e.g. 2.18.0 -> 2.18.1 or 2.18.1 -> 2.19.0).
-        --force         - Enable rolling upgrade without target version 
checks. Use only when required, if the upgrade cannot proceed otherwise.
-
-  [EXPERIMENTAL]
-  Disable rolling upgrade mode. All nodes in the cluster must be running the 
same version:
-    control.(sh|bat) --rolling-upgrade disable
-
-  [EXPERIMENTAL]
-    Get status of rolling upgrade mode:
-      control.(sh|bat) --rolling-upgrade status
-
   Print system view content:
     control.(sh|bat) --system-view system_view_name [--node-id 
node_id|--node-ids nodeId1,nodeId2,..|--all-nodes]
 

Reply via email to