IGNITE-8898 Renamed command argument '--force' to '--yes' for control.sh Signed-off-by: Andrey Gura <ag...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/413b4a8a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/413b4a8a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/413b4a8a Branch: refs/heads/ignite-8446 Commit: 413b4a8a1f905e31e3a8770d2c78ca953d39a60f Parents: 0011cc5 Author: vd-pyatkov <vpyat...@gridgain.com> Authored: Mon Jul 9 20:15:49 2018 +0300 Committer: Andrey Gura <ag...@apache.org> Committed: Mon Jul 9 20:15:49 2018 +0300 ---------------------------------------------------------------------- .../ignite/internal/commandline/Arguments.java | 14 ++--- .../internal/commandline/CommandHandler.java | 35 +++++------ .../commandline/CommandHandlerParsingTest.java | 61 ++++++++++++++++++++ .../ignite/util/GridCommandHandlerTest.java | 9 ++- 4 files changed, 90 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/413b4a8a/modules/core/src/main/java/org/apache/ignite/internal/commandline/Arguments.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/commandline/Arguments.java b/modules/core/src/main/java/org/apache/ignite/internal/commandline/Arguments.java index 0d4b38e..5b8a0dc 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/commandline/Arguments.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/commandline/Arguments.java @@ -41,7 +41,7 @@ public class Arguments { private String pwd; /** Force option is used for auto confirmation. */ - private boolean force; + private boolean autoConfirmation; /** * Action for baseline command. @@ -91,11 +91,11 @@ public class Arguments { * @param walArgs WAL args. * @param pingTimeout Ping timeout. See {@link GridClientConfiguration#pingTimeout}. * @param pingInterval Ping interval. See {@link GridClientConfiguration#pingInterval}. - * @param force Force flag. + * @param autoConfirmation Auto confirmation flag. */ public Arguments(Command cmd, String host, String port, String user, String pwd, String baselineAct, String baselineArgs, VisorTxTaskArg txArg, CacheArguments cacheArgs, String walAct, String walArgs, - Long pingTimeout, Long pingInterval, boolean force) { + Long pingTimeout, Long pingInterval, boolean autoConfirmation) { this.cmd = cmd; this.host = host; this.port = port; @@ -109,7 +109,7 @@ public class Arguments { this.walArgs = walArgs; this.pingTimeout = pingTimeout; this.pingInterval = pingInterval; - this.force = force; + this.autoConfirmation = autoConfirmation; } /** @@ -208,9 +208,9 @@ public class Arguments { } /** - * @return Force option. + * @return Auto confirmation option. */ - public boolean force() { - return force; + public boolean autoConfirmation() { + return autoConfirmation; } } http://git-wip-us.apache.org/repos/asf/ignite/blob/413b4a8a/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java index 6b506d3..ca14e08 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java @@ -145,8 +145,8 @@ public class CommandHandler { /** */ private static final String CMD_USER = "--user"; - /** Force option is used for auto confirmation. */ - private static final String CMD_FORCE = "--force"; + /** Option is used for auto confirmation. */ + private static final String CMD_AUTO_CONFIRMATION = "--yes"; /** */ protected static final String CMD_PING_INTERVAL = "--ping-interval"; @@ -162,7 +162,7 @@ public class CommandHandler { AUX_COMMANDS.add(CMD_PORT); AUX_COMMANDS.add(CMD_PASSWORD); AUX_COMMANDS.add(CMD_USER); - AUX_COMMANDS.add(CMD_FORCE); + AUX_COMMANDS.add(CMD_AUTO_CONFIRMATION); AUX_COMMANDS.add(CMD_PING_INTERVAL); AUX_COMMANDS.add(CMD_PING_TIMEOUT); } @@ -353,9 +353,6 @@ public class CommandHandler { * @return Prompt text if confirmation needed, otherwise {@code null}. */ private String confirmationPrompt(Arguments args) { - if (args.force()) - return null; - String str = null; switch (args.command()) { @@ -1352,7 +1349,7 @@ public class CommandHandler { String walArgs = ""; - boolean force = false; + boolean autoConfirmation = false; CacheArguments cacheArgs = null; @@ -1474,8 +1471,8 @@ public class CommandHandler { break; - case CMD_FORCE: - force = true; + case CMD_AUTO_CONFIRMATION: + autoConfirmation = true; break; @@ -1502,7 +1499,7 @@ public class CommandHandler { throw new IllegalArgumentException("Both user and password should be specified"); return new Arguments(cmd, host, port, user, pwd, baselineAct, baselineArgs, txArgs, cacheArgs, walAct, walArgs, - pingTimeout, pingInterval, force); + pingTimeout, pingInterval, autoConfirmation); } /** @@ -1835,22 +1832,22 @@ public class CommandHandler { log("This utility can do the following commands:"); usage(" Activate cluster:", ACTIVATE); - usage(" Deactivate cluster:", DEACTIVATE, " [--force]"); + usage(" Deactivate cluster:", DEACTIVATE, " [" + CMD_AUTO_CONFIRMATION + "]"); usage(" Print current cluster state:", STATE); usage(" Print cluster baseline topology:", BASELINE); - usage(" Add nodes into baseline topology:", BASELINE, " add consistentId1[,consistentId2,....,consistentIdN] [--force]"); - usage(" Remove nodes from baseline topology:", BASELINE, " remove consistentId1[,consistentId2,....,consistentIdN] [--force]"); - usage(" Set baseline topology:", BASELINE, " set consistentId1[,consistentId2,....,consistentIdN] [--force]"); - usage(" Set baseline topology based on version:", BASELINE, " version topologyVersion [--force]"); + usage(" Add nodes into baseline topology:", BASELINE, " add consistentId1[,consistentId2,....,consistentIdN] [" + CMD_AUTO_CONFIRMATION + "]"); + usage(" Remove nodes from baseline topology:", BASELINE, " remove consistentId1[,consistentId2,....,consistentIdN] [" + CMD_AUTO_CONFIRMATION + "]"); + usage(" Set baseline topology:", BASELINE, " set consistentId1[,consistentId2,....,consistentIdN] [" + CMD_AUTO_CONFIRMATION + "]"); + usage(" Set baseline topology based on version:", BASELINE, " version topologyVersion [" + CMD_AUTO_CONFIRMATION + "]"); usage(" List or kill transactions:", TX, " [xid XID] [minDuration SECONDS] " + "[minSize SIZE] [label PATTERN_REGEX] [servers|clients] " + - "[nodes consistentId1[,consistentId2,....,consistentIdN] [limit NUMBER] [order DURATION|SIZE|", CMD_TX_ORDER_START_TIME, "] [kill] [--force]"); + "[nodes consistentId1[,consistentId2,....,consistentIdN] [limit NUMBER] [order DURATION|SIZE|", CMD_TX_ORDER_START_TIME, "] [kill] [" + CMD_AUTO_CONFIRMATION + "]"); if(enableExperimental) { usage(" Print absolute paths of unused archived wal segments on each node:", WAL, " print [consistentId1,consistentId2,....,consistentIdN]"); usage(" Delete unused archived wal segments on each node:", WAL, - " delete [consistentId1,consistentId2,....,consistentIdN] [--force]"); + " delete [consistentId1,consistentId2,....,consistentIdN] [" + CMD_AUTO_CONFIRMATION + "]"); } log(" View caches information in a cluster. For more details type:"); @@ -1858,7 +1855,7 @@ public class CommandHandler { nl(); log("By default commands affecting the cluster require interactive confirmation."); - log("Use --force option to disable it."); + log("Use " + CMD_AUTO_CONFIRMATION + " option to disable it."); nl(); log("Default values:"); @@ -1880,7 +1877,7 @@ public class CommandHandler { Arguments args = parseAndValidate(rawArgs); - if (!confirm(args)) { + if (!args.autoConfirmation() && !confirm(args)) { log("Operation cancelled."); return EXIT_CODE_OK; http://git-wip-us.apache.org/repos/asf/ignite/blob/413b4a8a/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java index 737c0c7..0ac5d1a 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/commandline/CommandHandlerParsingTest.java @@ -23,6 +23,7 @@ import java.util.UUID; import junit.framework.TestCase; import org.apache.ignite.internal.commandline.cache.CacheArguments; import org.apache.ignite.internal.commandline.cache.CacheCommand; +import org.apache.ignite.internal.visor.tx.VisorTxOperation; import org.apache.ignite.internal.visor.tx.VisorTxProjection; import org.apache.ignite.internal.visor.tx.VisorTxSortOrder; import org.apache.ignite.internal.visor.tx.VisorTxTaskArg; @@ -259,6 +260,66 @@ public class CommandHandlerParsingTest extends TestCase { } /** + * Tests that the auto confirmation flag was correctly parsed. + */ + public void testParseAutoConfirmationFlag() { + CommandHandler hnd = new CommandHandler(); + + for (Command cmd : Command.values()) { + if (cmd != Command.DEACTIVATE + && cmd != Command.BASELINE + && cmd != Command.TX) + continue; + + Arguments args = hnd.parseAndValidate(asList(cmd.text())); + + assertEquals(cmd, args.command()); + assertEquals(DFLT_HOST, args.host()); + assertEquals(DFLT_PORT, args.port()); + assertEquals(false, args.autoConfirmation()); + + switch (cmd) { + case DEACTIVATE: { + args = hnd.parseAndValidate(asList(cmd.text(), "--yes")); + + assertEquals(cmd, args.command()); + assertEquals(DFLT_HOST, args.host()); + assertEquals(DFLT_PORT, args.port()); + assertEquals(true, args.autoConfirmation()); + + break; + } + case BASELINE: { + for (String baselineAct : asList("add", "remove", "set")) { + args = hnd.parseAndValidate(asList(cmd.text(), baselineAct, "c_id1,c_id2", "--yes")); + + assertEquals(cmd, args.command()); + assertEquals(DFLT_HOST, args.host()); + assertEquals(DFLT_PORT, args.port()); + assertEquals(baselineAct, args.baselineAction()); + assertEquals("c_id1,c_id2", args.baselineArguments()); + assertEquals(true, args.autoConfirmation()); + } + + break; + } + case TX: { + args = hnd.parseAndValidate(asList(cmd.text(), "xid", "xid1", "minDuration", "10", "kill", "--yes")); + + assertEquals(cmd, args.command()); + assertEquals(DFLT_HOST, args.host()); + assertEquals(DFLT_PORT, args.port()); + assertEquals(true, args.autoConfirmation()); + + assertEquals("xid1", args.transactionArguments().getXid()); + assertEquals(10_000, args.transactionArguments().getMinDuration().longValue()); + assertEquals(VisorTxOperation.KILL, args.transactionArguments().getOperation()); + } + } + } + } + + /** * Tests host and port arguments. * Tests connection settings arguments. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/413b4a8a/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java b/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java index 5dd9b2b..c37b17c 100644 --- a/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java +++ b/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java @@ -109,6 +109,9 @@ public class GridCommandHandlerTest extends GridCommonAbstractTest { /** Test out - can be injected via {@link #injectTestSystemOut()} instead of System.out and analyzed in test. */ protected ByteArrayOutputStream testOut; + /** Option is used for auto confirmation. */ + private static final String CMD_AUTO_CONFIRMATION = "--yes"; + /** * @return Folder in work directory. * @throws IgniteCheckedException If failed to resolve folder name. @@ -209,7 +212,7 @@ public class GridCommandHandlerTest extends GridCommonAbstractTest { */ protected int execute(ArrayList<String> args) { // Add force to avoid interactive confirmation - args.add("--force"); + args.add(CMD_AUTO_CONFIRMATION); return new CommandHandler().execute(args); } @@ -221,7 +224,7 @@ public class GridCommandHandlerTest extends GridCommonAbstractTest { */ protected int execute(CommandHandler hnd, ArrayList<String> args) { // Add force to avoid interactive confirmation - args.add("--force"); + args.add(CMD_AUTO_CONFIRMATION); return hnd.execute(args); } @@ -235,7 +238,7 @@ public class GridCommandHandlerTest extends GridCommonAbstractTest { ArrayList<String> args0 = new ArrayList<>(Arrays.asList(args)); // Add force to avoid interactive confirmation - args0.add("--force"); + args0.add(CMD_AUTO_CONFIRMATION); return hnd.execute(args0); }