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 530cd95ea [#5830] fix(client): add error handling for no tag in cli. 
(#5857)
530cd95ea is described below

commit 530cd95eac4d435bb1d5615dcff7b7126b9589ad
Author: Edward Xu <[email protected]>
AuthorDate: Tue Dec 17 09:59:53 2024 +0800

    [#5830] fix(client): add error handling for no tag in cli. (#5857)
    
    ### What changes were proposed in this pull request?
    
    Add error handle with a friendly output for no tags command line.
    
    ### Why are the changes needed?
    
    Now it throws an exception and may make customer confused.
    
    Fix: #5830
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    Unit tests have been attached.
---
 .../org/apache/gravitino/cli/commands/CreateTag.java | 12 ++++++++----
 .../org/apache/gravitino/cli/commands/DeleteTag.java | 13 +++++++++----
 .../test/java/org/apache/gravitino/cli/TestMain.java | 20 ++++++++++++++++++++
 3 files changed, 37 insertions(+), 8 deletions(-)

diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/CreateTag.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/CreateTag.java
index 61406c000..373bf0db7 100644
--- a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/CreateTag.java
+++ b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/CreateTag.java
@@ -52,11 +52,15 @@ public class CreateTag extends Command {
   /** Create tags. */
   @Override
   public void handle() {
-    boolean hasOnlyOneTag = tags.length == 1;
-    if (hasOnlyOneTag) {
-      handleOnlyOneTag();
+    if (tags == null || tags.length == 0) {
+      System.err.println(ErrorMessages.TAG_EMPTY);
     } else {
-      handleMultipleTags();
+      boolean hasOnlyOneTag = tags.length == 1;
+      if (hasOnlyOneTag) {
+        handleOnlyOneTag();
+      } else {
+        handleMultipleTags();
+      }
     }
   }
 
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteTag.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteTag.java
index 2d930560c..5b094fc60 100644
--- a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteTag.java
+++ b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteTag.java
@@ -57,11 +57,16 @@ public class DeleteTag extends Command {
     if (!AreYouSure.really(force)) {
       return;
     }
-    boolean hasOnlyOneTag = tags.length == 1;
-    if (hasOnlyOneTag) {
-      handleOnlyOneTag();
+
+    if (tags == null || tags.length == 0) {
+      System.err.println(ErrorMessages.TAG_EMPTY);
     } else {
-      handleMultipleTags();
+      boolean hasOnlyOneTag = tags.length == 1;
+      if (hasOnlyOneTag) {
+        handleOnlyOneTag();
+      } else {
+        handleMultipleTags();
+      }
     }
   }
 
diff --git a/clients/cli/src/test/java/org/apache/gravitino/cli/TestMain.java 
b/clients/cli/src/test/java/org/apache/gravitino/cli/TestMain.java
index c6d1bacdb..2bc05f7f3 100644
--- a/clients/cli/src/test/java/org/apache/gravitino/cli/TestMain.java
+++ b/clients/cli/src/test/java/org/apache/gravitino/cli/TestMain.java
@@ -143,4 +143,24 @@ public class TestMain {
     String entity = Main.resolveEntity(line);
     assertEquals(CommandEntities.CATALOG, entity);
   }
+
+  @Test
+  @SuppressWarnings("DefaultCharset")
+  public void CreateTagWithNoTag() {
+    String[] args = {"tag", "create", "--metalake", "metalake_test_no_tag"};
+
+    Main.main(args);
+
+    assertTrue(errContent.toString().contains(ErrorMessages.TAG_EMPTY)); // 
Expect error
+  }
+
+  @Test
+  @SuppressWarnings("DefaultCharset")
+  public void DeleteTagWithNoTag() {
+    String[] args = {"tag", "delete", "--metalake", "metalake_test_no_tag", 
"-f"};
+
+    Main.main(args);
+
+    assertTrue(errContent.toString().contains(ErrorMessages.TAG_EMPTY)); // 
Expect error
+  }
 }

Reply via email to