This is an automated email from the ASF dual-hosted git repository. jmclean pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push: new 44f5ab30e [#6027] improvement(CLI): fix Gravitino CLI get wrong catalogName (#6048) 44f5ab30e is described below commit 44f5ab30e95336377e82dd5e971b14586724258e Author: Lord of Abyss <103809695+abyss-l...@users.noreply.github.com> AuthorDate: Wed Jan 1 07:18:36 2025 +0800 [#6027] improvement(CLI): fix Gravitino CLI get wrong catalogName (#6048) ### What changes were proposed in this pull request? Fix Gravitino CLI get wrong catalogName when set metalake name by --name option. A hint is given if the -metalake option is not set. ### Why are the changes needed? Fix: #6027 ### Does this PR introduce _any_ user-facing change? No ### How was this patch tested? local test ```bash gcli table list --name Hive_catalog.default Missing --metalake option. ``` --- .../org/apache/gravitino/cli/ErrorMessages.java | 1 + .../java/org/apache/gravitino/cli/FullName.java | 5 +---- .../org/apache/gravitino/cli/TestFulllName.java | 24 ++++++++++++++++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/clients/cli/src/main/java/org/apache/gravitino/cli/ErrorMessages.java b/clients/cli/src/main/java/org/apache/gravitino/cli/ErrorMessages.java index a52536645..757e7c2cb 100644 --- a/clients/cli/src/main/java/org/apache/gravitino/cli/ErrorMessages.java +++ b/clients/cli/src/main/java/org/apache/gravitino/cli/ErrorMessages.java @@ -30,6 +30,7 @@ public class ErrorMessages { public static final String UNKNOWN_TABLE = "Unknown table name."; public static final String MALFORMED_NAME = "Malformed entity name."; public static final String MISSING_NAME = "Missing --name option."; + public static final String MISSING_METALAKE = "Missing --metalake option."; public static final String MISSING_GROUP = "Missing --group option."; public static final String MISSING_USER = "Missing --user option."; public static final String MISSING_ROLE = "Missing --role option."; diff --git a/clients/cli/src/main/java/org/apache/gravitino/cli/FullName.java b/clients/cli/src/main/java/org/apache/gravitino/cli/FullName.java index f2eef2a5a..8af7322dc 100644 --- a/clients/cli/src/main/java/org/apache/gravitino/cli/FullName.java +++ b/clients/cli/src/main/java/org/apache/gravitino/cli/FullName.java @@ -73,10 +73,7 @@ public class FullName { } } - // Extract the metalake name from the full name option - if (line.hasOption(GravitinoOptions.NAME)) { - return line.getOptionValue(GravitinoOptions.NAME).split("\\.")[0]; - } + System.err.println(ErrorMessages.MISSING_METALAKE); return null; } diff --git a/clients/cli/src/test/java/org/apache/gravitino/cli/TestFulllName.java b/clients/cli/src/test/java/org/apache/gravitino/cli/TestFulllName.java index e5ec92e10..48ee79cfc 100644 --- a/clients/cli/src/test/java/org/apache/gravitino/cli/TestFulllName.java +++ b/clients/cli/src/test/java/org/apache/gravitino/cli/TestFulllName.java @@ -212,4 +212,28 @@ public class TestFulllName { String output = new String(errContent.toByteArray(), StandardCharsets.UTF_8).trim(); assertEquals(output, ErrorMessages.MALFORMED_NAME); } + + @Test + @SuppressWarnings("DefaultCharset") + public void testGetMetalake() throws ParseException { + String[] args = { + "table", "list", "-i", "-m", "demo_metalake", "--name", "Hive_catalog.default" + }; + CommandLine commandLine = new DefaultParser().parse(options, args); + FullName fullName = new FullName(commandLine); + String metalakeName = fullName.getMetalakeName(); + assertEquals(metalakeName, "demo_metalake"); + } + + @Test + @SuppressWarnings("DefaultCharset") + public void testGetMetalakeWithoutMetalakeOption() throws ParseException { + String[] args = {"table", "list", "-i", "--name", "Hive_catalog.default"}; + CommandLine commandLine = new DefaultParser().parse(options, args); + FullName fullName = new FullName(commandLine); + String metalakeName = fullName.getMetalakeName(); + assertNull(metalakeName); + String errOutput = new String(errContent.toByteArray(), StandardCharsets.UTF_8).trim(); + assertEquals(errOutput, ErrorMessages.MISSING_METALAKE); + } }