You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by am...@apache.org on 2023/07/31 08:19:45 UTC
[knox] branch master updated: KNOX-2940 - knoxcli create-alias/create-aliases command doesn't support values starting with dash (#778)
This is an automated email from the ASF dual-hosted git repository.
amagyar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git
The following commit(s) were added to refs/heads/master by this push:
new 6eac567fa KNOX-2940 - knoxcli create-alias/create-aliases command doesn't support values starting with dash (#778)
6eac567fa is described below
commit 6eac567fafd01da0e7fd1e10b60b5f052c8837c6
Author: Attila Magyar <m....@gmail.com>
AuthorDate: Mon Jul 31 10:19:40 2023 +0200
KNOX-2940 - knoxcli create-alias/create-aliases command doesn't support values starting with dash (#778)
---
.../java/org/apache/knox/gateway/util/KnoxCLI.java | 9 +++-
.../org/apache/knox/gateway/util/KnoxCLITest.java | 61 ++++++++++++++++++++++
2 files changed, 68 insertions(+), 2 deletions(-)
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java b/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
index bdeb8ad22..d2412fb8c 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
@@ -292,7 +292,10 @@ public class KnoxCLI extends Configured implements Tool {
} else if (args[i].equals("list-alias")) {
command = new AliasListCommand();
} else if (args[i].equals("--value")) {
- if (i + 1 >= args.length || args[i + 1].startsWith("-")) {
+ if (i + 1 >= args.length
+ || "--generate".equals(args[i + 1]) // missing value
+ || "--cluster".equals(args[i + 1])
+ || "--master".equals(args[i + 1])) {
printKnoxShellUsage();
return -1;
}
@@ -415,7 +418,9 @@ public class KnoxCLI extends Configured implements Tool {
this.discoveryType = args[++i];
} else if (args[i].equals("--master")) {
// For testing only
- if( i+1 >= args.length || args[i+1].startsWith( "-" ) ) {
+ if( i+1 >= args.length
+ || "--generate".equals(args[i + 1]) // missing value
+ || "--force".equals(args[i + 1])) {
printKnoxShellUsage();
return -1;
}
diff --git a/gateway-server/src/test/java/org/apache/knox/gateway/util/KnoxCLITest.java b/gateway-server/src/test/java/org/apache/knox/gateway/util/KnoxCLITest.java
index ca58161a1..ca577fac6 100644
--- a/gateway-server/src/test/java/org/apache/knox/gateway/util/KnoxCLITest.java
+++ b/gateway-server/src/test/java/org/apache/knox/gateway/util/KnoxCLITest.java
@@ -482,6 +482,67 @@ public class KnoxCLITest {
assertFalse(outContent.toString(StandardCharsets.UTF_8.name()), outContent.toString(StandardCharsets.UTF_8.name()).contains("alias1"));
}
+ @Test
+ public void testMissingAliasValue() throws Exception {
+ outContent.reset();
+ String[] args1 = {"create-alias", "alias1", "--value"};
+ int rc;
+ KnoxCLI cli = new KnoxCLI();
+ cli.setConf(new GatewayConfigImpl());
+ rc = cli.run(args1);
+ assertEquals(-1, rc);
+ assertTrue(outContent.toString(StandardCharsets.UTF_8.name()), outContent.toString(StandardCharsets.UTF_8.name()).contains(KnoxCLI.AliasCreateCommand.USAGE));
+ }
+
+ @Test
+ public void testIncorrectCombinationOfValueAndGenerate() throws Exception {
+ outContent.reset();
+ String[] args1 = {"create-alias", "alias1", "--value", "--generate"};
+ int rc;
+ KnoxCLI cli = new KnoxCLI();
+ cli.setConf(new GatewayConfigImpl());
+ rc = cli.run(args1);
+ assertEquals(-1, rc);
+ assertTrue(outContent.toString(StandardCharsets.UTF_8.name()), outContent.toString(StandardCharsets.UTF_8.name()).contains(KnoxCLI.AliasCreateCommand.USAGE));
+ }
+
+ @Test
+ public void testGeneratingAliasWithLeadingDash() throws Exception {
+ outContent.reset();
+ String[] args1 = {"create-alias", "alias1", "--value", "---testvalue1---", "--master", "master"};
+ int rc;
+ KnoxCLI cli = new KnoxCLI();
+ cli.setConf(new GatewayConfigImpl());
+ rc = cli.run(args1);
+ assertEquals(0, rc);
+ assertTrue(outContent.toString(StandardCharsets.UTF_8.name()), outContent.toString(StandardCharsets.UTF_8.name()).contains("alias1 has been successfully " +
+ "created."));
+ }
+
+ @Test
+ public void testIncorrectCombinationOfValuesAndGenerate() throws Exception {
+ outContent.reset();
+ String[] args1 = {"create-aliases", "--alias", "alias1", "--value", "--cluster"};
+ int rc;
+ KnoxCLI cli = new KnoxCLI();
+ cli.setConf(new GatewayConfigImpl());
+ rc = cli.run(args1);
+ assertEquals(-1, rc);
+ assertTrue(outContent.toString(StandardCharsets.UTF_8.name()), outContent.toString(StandardCharsets.UTF_8.name()).contains(KnoxCLI.AliasCreateCommand.USAGE));
+ }
+
+ @Test
+ public void testMissingValueForBatchAliasCreation() throws Exception {
+ outContent.reset();
+ String[] args1 = {"create-aliases", "--alias", "alias1", "--value", "--alias", "alias2", "--value", "value1"};
+ int rc;
+ KnoxCLI cli = new KnoxCLI();
+ cli.setConf(new GatewayConfigImpl());
+ rc = cli.run(args1);
+ assertEquals(-1, rc);
+ assertTrue(outContent.toString(StandardCharsets.UTF_8.name()), outContent.toString(StandardCharsets.UTF_8.name()).contains(KnoxCLI.AliasCreateCommand.USAGE));
+ }
+
@Test
public void testListAndDeleteOfAliasForInvalidClusterName() throws Exception {
outContent.reset();