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 <[email protected]>
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);
+ }
}