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 c24f1d60e9 [#6417] improve(CLI): Add model command context CLI (#6430)
c24f1d60e9 is described below
commit c24f1d60e9842ab8f2c744d60b729621cb850b0e
Author: Lord of Abyss <[email protected]>
AuthorDate: Tue Feb 11 08:24:49 2025 +0800
[#6417] improve(CLI): Add model command context CLI (#6430)
### What changes were proposed in this pull request?
Add model command context CLI
### Why are the changes needed?
Fix: #6417
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
local test
---
.../apache/gravitino/cli/GravitinoCommandLine.java | 2 +-
.../apache/gravitino/cli/ModelCommandHandler.java | 37 +++++-------
.../apache/gravitino/cli/TestableCommandLine.java | 32 ++++-------
.../apache/gravitino/cli/commands/DeleteModel.java | 21 +++----
.../apache/gravitino/cli/commands/LinkModel.java | 11 ++--
.../apache/gravitino/cli/commands/ListModel.java | 11 ++--
.../apache/gravitino/cli/commands/ModelAudit.java | 21 +++----
.../gravitino/cli/commands/ModelDetails.java | 15 ++---
.../gravitino/cli/commands/RegisterModel.java | 15 ++---
.../apache/gravitino/cli/TestModelCommands.java | 65 +++++++++++-----------
10 files changed, 95 insertions(+), 135 deletions(-)
diff --git
a/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
index c3404334be..3106c3ea50 100644
---
a/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
+++
b/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
@@ -138,7 +138,7 @@ public class GravitinoCommandLine extends
TestableCommandLine {
} else if (entity.equals(CommandEntities.ROLE)) {
new RoleCommandHandler(this, line, command, ignore).handle();
} else if (entity.equals(CommandEntities.MODEL)) {
- new ModelCommandHandler(this, line, command, ignore).handle();
+ new ModelCommandHandler(this, line, command, context).handle();
}
}
diff --git
a/clients/cli/src/main/java/org/apache/gravitino/cli/ModelCommandHandler.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/ModelCommandHandler.java
index 9e3c385757..0a0c8e8885 100644
---
a/clients/cli/src/main/java/org/apache/gravitino/cli/ModelCommandHandler.java
+++
b/clients/cli/src/main/java/org/apache/gravitino/cli/ModelCommandHandler.java
@@ -30,8 +30,7 @@ public class ModelCommandHandler extends CommandHandler {
private final GravitinoCommandLine gravitinoCommandLine;
private final CommandLine line;
private final String command;
- private final boolean ignore;
- private final String url;
+ private final CommandContext context;
private final FullName name;
private final String metalake;
private final String catalog;
@@ -44,16 +43,19 @@ public class ModelCommandHandler extends CommandHandler {
* @param gravitinoCommandLine The Gravitino command line instance.
* @param line The command line arguments.
* @param command The command to execute.
- * @param ignore Ignore server version mismatch.
+ * @param context The command context.
*/
public ModelCommandHandler(
- GravitinoCommandLine gravitinoCommandLine, CommandLine line, String
command, boolean ignore) {
+ GravitinoCommandLine gravitinoCommandLine,
+ CommandLine line,
+ String command,
+ CommandContext context) {
this.gravitinoCommandLine = gravitinoCommandLine;
this.line = line;
this.command = command;
- this.ignore = ignore;
- this.url = getUrl(line);
+ this.context = context;
+ this.context.setUrl(getUrl(line));
this.name = new FullName(line);
this.metalake = name.getMetalakeName();
this.catalog = name.getCatalogName();
@@ -119,12 +121,12 @@ public class ModelCommandHandler extends CommandHandler {
private void handleDetailsCommand() {
if (line.hasOption(GravitinoOptions.AUDIT)) {
gravitinoCommandLine
- .newModelAudit(url, ignore, metalake, catalog, schema, model)
+ .newModelAudit(context, metalake, catalog, schema, model)
.validate()
.handle();
} else {
gravitinoCommandLine
- .newModelDetails(url, ignore, metalake, catalog, schema, model)
+ .newModelDetails(context, metalake, catalog, schema, model)
.validate()
.handle();
}
@@ -136,17 +138,15 @@ public class ModelCommandHandler extends CommandHandler {
String[] createProperties =
line.getOptionValues(GravitinoOptions.PROPERTIES);
Map<String, String> createPropertyMap = new
Properties().parse(createProperties);
gravitinoCommandLine
- .newCreateModel(
- url, ignore, metalake, catalog, schema, model, createComment,
createPropertyMap)
+ .newCreateModel(context, metalake, catalog, schema, model,
createComment, createPropertyMap)
.validate()
.handle();
}
/** Handles the "DELETE" command. */
private void handleDeleteCommand() {
- boolean force = line.hasOption(GravitinoOptions.FORCE);
gravitinoCommandLine
- .newDeleteModel(url, ignore, force, metalake, catalog, schema, model)
+ .newDeleteModel(context, metalake, catalog, schema, model)
.validate()
.handle();
}
@@ -160,22 +160,13 @@ public class ModelCommandHandler extends CommandHandler {
Map<String, String> linkPropertityMap = new
Properties().parse(linkProperties);
gravitinoCommandLine
.newLinkModel(
- url,
- ignore,
- metalake,
- catalog,
- schema,
- model,
- uri,
- alias,
- linkComment,
- linkPropertityMap)
+ context, metalake, catalog, schema, model, uri, alias,
linkComment, linkPropertityMap)
.validate()
.handle();
}
/** Handles the "LIST" command. */
private void handleListCommand() {
- gravitinoCommandLine.newListModel(url, ignore, metalake, catalog,
schema).validate().handle();
+ gravitinoCommandLine.newListModel(context, metalake, catalog,
schema).validate().handle();
}
}
diff --git
a/clients/cli/src/main/java/org/apache/gravitino/cli/TestableCommandLine.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/TestableCommandLine.java
index 3c6193f9d8..58dc0ac9e8 100644
---
a/clients/cli/src/main/java/org/apache/gravitino/cli/TestableCommandLine.java
+++
b/clients/cli/src/main/java/org/apache/gravitino/cli/TestableCommandLine.java
@@ -903,46 +903,38 @@ public class TestableCommandLine {
}
protected ListModel newListModel(
- String url, boolean ignore, String metalake, String catalog, String
schema) {
- return new ListModel(url, ignore, metalake, catalog, schema);
+ CommandContext context, String metalake, String catalog, String schema) {
+ return new ListModel(context, metalake, catalog, schema);
}
protected ModelAudit newModelAudit(
- String url, boolean ignore, String metalake, String catalog, String
schema, String model) {
- return new ModelAudit(url, ignore, metalake, catalog, schema, model);
+ CommandContext context, String metalake, String catalog, String schema,
String model) {
+ return new ModelAudit(context, metalake, catalog, schema, model);
}
protected ModelDetails newModelDetails(
- String url, boolean ignore, String metalake, String catalog, String
schema, String model) {
- return new ModelDetails(url, ignore, metalake, catalog, schema, model);
+ CommandContext context, String metalake, String catalog, String schema,
String model) {
+ return new ModelDetails(context, metalake, catalog, schema, model);
}
protected RegisterModel newCreateModel(
- String url,
- boolean ignore,
+ CommandContext context,
String metalake,
String catalog,
String schema,
String model,
String comment,
Map<String, String> properties) {
- return new RegisterModel(url, ignore, metalake, catalog, schema, model,
comment, properties);
+ return new RegisterModel(context, metalake, catalog, schema, model,
comment, properties);
}
protected DeleteModel newDeleteModel(
- String url,
- boolean ignore,
- boolean force,
- String metalake,
- String catalog,
- String schema,
- String model) {
- return new DeleteModel(url, ignore, force, metalake, catalog, schema,
model);
+ CommandContext context, String metalake, String catalog, String schema,
String model) {
+ return new DeleteModel(context, metalake, catalog, schema, model);
}
protected LinkModel newLinkModel(
- String url,
- boolean ignore,
+ CommandContext context,
String metalake,
String catalog,
String schema,
@@ -952,6 +944,6 @@ public class TestableCommandLine {
String comment,
Map<String, String> properties) {
return new LinkModel(
- url, ignore, metalake, catalog, schema, model, uri, alias, comment,
properties);
+ context, metalake, catalog, schema, model, uri, alias, comment,
properties);
}
}
diff --git
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteModel.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteModel.java
index f44814ce68..8dc283ee4d 100644
---
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteModel.java
+++
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteModel.java
@@ -21,6 +21,7 @@ package org.apache.gravitino.cli.commands;
import org.apache.gravitino.NameIdentifier;
import org.apache.gravitino.cli.AreYouSure;
+import org.apache.gravitino.cli.CommandContext;
import org.apache.gravitino.cli.ErrorMessages;
import org.apache.gravitino.client.GravitinoClient;
import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -40,24 +41,16 @@ public class DeleteModel extends Command {
/**
* Deletes an existing model.
*
- * @param url The URL of the Gravitino server.
- * @param ignoreVersions If true don't check the client/server versions
match.
- * @param force Force operation.
+ * @param context The command context.
* @param metalake The name of the metalake.
* @param catalog The name of the catalog.
* @param schema The name of the schema.
* @param model The name of the model.
*/
public DeleteModel(
- String url,
- boolean ignoreVersions,
- boolean force,
- String metalake,
- String catalog,
- String schema,
- String model) {
- super(url, ignoreVersions);
- this.force = force;
+ CommandContext context, String metalake, String catalog, String schema,
String model) {
+ super(context);
+ this.force = context.force();
this.metalake = metalake;
this.catalog = catalog;
this.schema = schema;
@@ -88,9 +81,9 @@ public class DeleteModel extends Command {
}
if (deleted) {
- System.out.println(model + " deleted.");
+ printInformation(model + " deleted.");
} else {
- System.out.println(model + " not deleted.");
+ printInformation(model + " not deleted.");
}
}
}
diff --git
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/LinkModel.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/LinkModel.java
index cf34eae882..94a5f99a5b 100644
--- a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/LinkModel.java
+++ b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/LinkModel.java
@@ -22,6 +22,7 @@ package org.apache.gravitino.cli.commands;
import java.util.Arrays;
import java.util.Map;
import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
import org.apache.gravitino.cli.ErrorMessages;
import org.apache.gravitino.client.GravitinoClient;
import
org.apache.gravitino.exceptions.ModelVersionAliasesAlreadyExistException;
@@ -44,8 +45,7 @@ public class LinkModel extends Command {
/**
* Link a new model version to the registered model.
*
- * @param url The URL of the Gravitino server.
- * @param ignoreVersions If true don't check the client/server versions
match.
+ * @param context The command context.
* @param metalake The name of the metalake.
* @param catalog The name of the catalog.
* @param schema The name of schema.
@@ -56,8 +56,7 @@ public class LinkModel extends Command {
* @param properties The properties of the model version.
*/
public LinkModel(
- String url,
- boolean ignoreVersions,
+ CommandContext context,
String metalake,
String catalog,
String schema,
@@ -66,7 +65,7 @@ public class LinkModel extends Command {
String[] alias,
String comment,
Map<String, String> properties) {
- super(url, ignoreVersions);
+ super(context);
this.metalake = metalake;
this.catalog = catalog;
this.schema = schema;
@@ -100,7 +99,7 @@ public class LinkModel extends Command {
exitWithError(err.getMessage());
}
- System.out.println(
+ printResults(
"Linked model " + model + " to " + uri + " with aliases " +
Arrays.toString(alias));
}
diff --git
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListModel.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListModel.java
index 1528e954b1..fb39e08a93 100644
--- a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListModel.java
+++ b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListModel.java
@@ -22,6 +22,7 @@ import com.google.common.base.Joiner;
import java.util.Arrays;
import org.apache.gravitino.NameIdentifier;
import org.apache.gravitino.Namespace;
+import org.apache.gravitino.cli.CommandContext;
import org.apache.gravitino.cli.ErrorMessages;
import org.apache.gravitino.client.GravitinoClient;
import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -37,15 +38,13 @@ public class ListModel extends Command {
/**
* List the names of all models in a schema.
*
- * @param url The URL of the Gravitino server.
- * @param ignoreVersions If true don't check the client/server versions
match.
+ * @param context The command context.
* @param metalake The name of the metalake.
* @param catalog The name of the catalog.
* @param schema The name of schema.
*/
- public ListModel(
- String url, boolean ignoreVersions, String metalake, String catalog,
String schema) {
- super(url, ignoreVersions);
+ public ListModel(CommandContext context, String metalake, String catalog,
String schema) {
+ super(context);
this.metalake = metalake;
this.catalog = catalog;
this.schema = schema;
@@ -75,6 +74,6 @@ public class ListModel extends Command {
? "No models exist."
: Joiner.on(",").join(Arrays.stream(models).map(model ->
model.name()).iterator());
- System.out.println(output);
+ printResults(output);
}
}
diff --git
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ModelAudit.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ModelAudit.java
index 841afd2de9..b6127937f9 100644
---
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ModelAudit.java
+++
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ModelAudit.java
@@ -20,6 +20,7 @@
package org.apache.gravitino.cli.commands;
import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
import org.apache.gravitino.cli.ErrorMessages;
import org.apache.gravitino.client.GravitinoClient;
import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -39,21 +40,15 @@ public class ModelAudit extends AuditCommand {
/**
* Displays the audit information of a model.
*
- * @param url The URL of the Gravitino server.
- * @param ignoreVersions If true don't check the client/server versions
match.
+ * @param context The command context.
* @param metalake The name of the metalake.
* @param catalog The name of the catalog.
* @param schema The name of the schema.
* @param model The name of the model.
*/
public ModelAudit(
- String url,
- boolean ignoreVersions,
- String metalake,
- String catalog,
- String schema,
- String model) {
- super(url, ignoreVersions);
+ CommandContext context, String metalake, String catalog, String schema,
String model) {
+ super(context);
this.metalake = metalake;
this.catalog = catalog;
this.schema = schema;
@@ -70,16 +65,16 @@ public class ModelAudit extends AuditCommand {
ModelCatalog modelCatalog = client.loadCatalog(catalog).asModelCatalog();
result = modelCatalog.getModel(name);
} catch (NoSuchMetalakeException err) {
- System.err.println(ErrorMessages.UNKNOWN_METALAKE);
+ exitWithError(ErrorMessages.UNKNOWN_METALAKE);
return;
} catch (NoSuchCatalogException err) {
- System.err.println(ErrorMessages.UNKNOWN_CATALOG);
+ exitWithError(ErrorMessages.UNKNOWN_CATALOG);
return;
} catch (NoSuchModelException err) {
- System.err.println(ErrorMessages.UNKNOWN_MODEL);
+ exitWithError(ErrorMessages.UNKNOWN_MODEL);
return;
} catch (Exception exp) {
- System.err.println(exp.getMessage());
+ exitWithError(exp.getMessage());
return;
}
diff --git
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ModelDetails.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ModelDetails.java
index 6c3aec08fa..4c5f1a57d4 100644
---
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ModelDetails.java
+++
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ModelDetails.java
@@ -21,6 +21,7 @@ package org.apache.gravitino.cli.commands;
import java.util.Arrays;
import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
import org.apache.gravitino.cli.ErrorMessages;
import org.apache.gravitino.client.GravitinoClient;
import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -40,21 +41,15 @@ public class ModelDetails extends Command {
/**
* Displays the details of a model.
*
- * @param url The URL of the Gravitino server.
- * @param ignoreVersions If true don't check the client/server versions
match.
+ * @param context The command context.
* @param metalake The name of the metalake.
* @param catalog The name of the catalog.
* @param schema The name of schema.
* @param model The name of model.
*/
public ModelDetails(
- String url,
- boolean ignoreVersions,
- String metalake,
- String catalog,
- String schema,
- String model) {
- super(url, ignoreVersions);
+ CommandContext context, String metalake, String catalog, String schema,
String model) {
+ super(context);
this.metalake = metalake;
this.catalog = catalog;
this.schema = schema;
@@ -87,6 +82,6 @@ public class ModelDetails extends Command {
String basicInfo =
String.format("Model name %s, latest version: %s%n", gModel.name(),
gModel.latestVersion());
String versionInfo = Arrays.toString(versions);
- System.out.printf(basicInfo + "versions: " + versionInfo);
+ printResults(basicInfo + "versions: " + versionInfo);
}
}
diff --git
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/RegisterModel.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/RegisterModel.java
index 7c8cd120bf..8d86bd32f7 100644
---
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/RegisterModel.java
+++
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/RegisterModel.java
@@ -21,8 +21,8 @@ package org.apache.gravitino.cli.commands;
import java.util.Map;
import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
import org.apache.gravitino.cli.ErrorMessages;
-import org.apache.gravitino.cli.Main;
import org.apache.gravitino.client.GravitinoClient;
import org.apache.gravitino.exceptions.ModelAlreadyExistsException;
import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -44,8 +44,7 @@ public class RegisterModel extends Command {
/**
* Register a model in the catalog
*
- * @param url The URL of the Gravitino server.
- * @param ignoreVersions If true don't check the client/server versions
match.
+ * @param context The command context.
* @param metalake The name of the metalake.
* @param catalog The name of the catalog.
* @param schema The name of schema.
@@ -54,15 +53,14 @@ public class RegisterModel extends Command {
* @param properties The properties of the model version.
*/
public RegisterModel(
- String url,
- boolean ignoreVersions,
+ CommandContext context,
String metalake,
String catalog,
String schema,
String model,
String comment,
Map<String, String> properties) {
- super(url, ignoreVersions);
+ super(context);
this.metalake = metalake;
this.catalog = catalog;
this.schema = schema;
@@ -94,10 +92,9 @@ public class RegisterModel extends Command {
}
if (registeredModel != null) {
- System.out.println("Successful register " + registeredModel.name() +
".");
+ printInformation("Successful register " + registeredModel.name() + ".");
} else {
- System.err.println(ErrorMessages.REGISTER_FAILED + model + ".");
- Main.exit(-1);
+ exitWithError(ErrorMessages.REGISTER_FAILED + model + ".");
}
}
}
diff --git
a/clients/cli/src/test/java/org/apache/gravitino/cli/TestModelCommands.java
b/clients/cli/src/test/java/org/apache/gravitino/cli/TestModelCommands.java
index 4f1507cc70..6f5e607c91 100644
--- a/clients/cli/src/test/java/org/apache/gravitino/cli/TestModelCommands.java
+++ b/clients/cli/src/test/java/org/apache/gravitino/cli/TestModelCommands.java
@@ -21,6 +21,7 @@ package org.apache.gravitino.cli;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isNull;
@@ -88,8 +89,7 @@ public class TestModelCommands {
doReturn(mockList)
.when(commandLine)
- .newListModel(
- GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo",
"catalog", "schema");
+ .newListModel(any(CommandContext.class), eq("metalake_demo"),
eq("catalog"), eq("schema"));
doReturn(mockList).when(mockList).validate();
commandLine.handleCommandLine();
verify(mockList).handle();
@@ -108,7 +108,7 @@ public class TestModelCommands {
assertThrows(RuntimeException.class, commandLine::handleCommandLine);
verify(commandLine, never())
- .newListModel(GravitinoCommandLine.DEFAULT_URL, false,
"metalake_demo", null, null);
+ .newListModel(any(CommandContext.class), eq("metalake_demo"),
isNull(), isNull());
String output = new String(errContent.toByteArray(),
StandardCharsets.UTF_8).trim();
assertEquals(
ErrorMessages.MISSING_NAME
@@ -132,7 +132,7 @@ public class TestModelCommands {
assertThrows(RuntimeException.class, commandLine::handleCommandLine);
verify(commandLine, never())
- .newListModel(GravitinoCommandLine.DEFAULT_URL, false,
"metalake_demo", "catalog", null);
+ .newListModel(any(CommandContext.class), eq("metalake_demo"),
eq("catalog"), isNull());
String output = new String(errContent.toByteArray(),
StandardCharsets.UTF_8).trim();
assertEquals(
ErrorMessages.MALFORMED_NAME
@@ -157,7 +157,11 @@ public class TestModelCommands {
doReturn(mockList)
.when(commandLine)
.newModelDetails(
- GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo",
"catalog", "schema", "model");
+ any(CommandContext.class),
+ eq("metalake_demo"),
+ eq("catalog"),
+ eq("schema"),
+ eq("model"));
doReturn(mockList).when(mockList).validate();
commandLine.handleCommandLine();
verify(mockList).handle();
@@ -178,7 +182,7 @@ public class TestModelCommands {
verify(commandLine, never())
.newModelDetails(
- GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", null,
null, null);
+ any(CommandContext.class), eq("metalake_demo"), isNull(),
isNull(), isNull());
String output = new String(errContent.toByteArray(),
StandardCharsets.UTF_8).trim();
assertEquals(
ErrorMessages.MISSING_NAME
@@ -206,7 +210,7 @@ public class TestModelCommands {
verify(commandLine, never())
.newModelDetails(
- GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo",
"catalog", null, null);
+ any(CommandContext.class), eq("metalake_demo"), eq("catalog"),
isNull(), isNull());
String output = new String(errContent.toByteArray(),
StandardCharsets.UTF_8).trim();
assertEquals(
ErrorMessages.MALFORMED_NAME
@@ -232,7 +236,7 @@ public class TestModelCommands {
verify(commandLine, never())
.newModelDetails(
- GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo",
"catalog", "schema", null);
+ any(CommandContext.class), eq("metalake_demo"), eq("catalog"),
eq("schema"), isNull());
String output = new String(errContent.toByteArray(),
StandardCharsets.UTF_8).trim();
assertEquals(
ErrorMessages.MALFORMED_NAME
@@ -258,7 +262,11 @@ public class TestModelCommands {
doReturn(mockAudit)
.when(commandLine)
.newModelAudit(
- GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo",
"catalog", "schema", "model");
+ any(CommandContext.class),
+ eq("metalake_demo"),
+ eq("catalog"),
+ eq("schema"),
+ eq("model"));
doReturn(mockAudit).when(mockAudit).validate();
commandLine.handleCommandLine();
verify(mockAudit).handle();
@@ -281,8 +289,7 @@ public class TestModelCommands {
doReturn(mockCreate)
.when(commandLine)
.newCreateModel(
- eq(GravitinoCommandLine.DEFAULT_URL),
- eq(false),
+ any(CommandContext.class),
eq("metalake_demo"),
eq("catalog"),
eq("schema"),
@@ -311,8 +318,7 @@ public class TestModelCommands {
doReturn(mockCreate)
.when(commandLine)
.newCreateModel(
- eq(GravitinoCommandLine.DEFAULT_URL),
- eq(false),
+ any(CommandContext.class),
eq("metalake_demo"),
eq("catalog"),
eq("schema"),
@@ -343,8 +349,7 @@ public class TestModelCommands {
doReturn(mockCreate)
.when(commandLine)
.newCreateModel(
- eq(GravitinoCommandLine.DEFAULT_URL),
- eq(false),
+ any(CommandContext.class),
eq("metalake_demo"),
eq("catalog"),
eq("schema"),
@@ -380,8 +385,7 @@ public class TestModelCommands {
doReturn(mockCreate)
.when(commandLine)
.newCreateModel(
- eq(GravitinoCommandLine.DEFAULT_URL),
- eq(false),
+ any(CommandContext.class),
eq("metalake_demo"),
eq("catalog"),
eq("schema"),
@@ -412,13 +416,11 @@ public class TestModelCommands {
doReturn(mockDelete)
.when(commandLine)
.newDeleteModel(
- GravitinoCommandLine.DEFAULT_URL,
- false,
- false,
- "metalake_demo",
- "catalog",
- "schema",
- "model");
+ any(CommandContext.class),
+ eq("metalake_demo"),
+ eq("catalog"),
+ eq("schema"),
+ eq("model"));
doReturn(mockDelete).when(mockDelete).validate();
commandLine.handleCommandLine();
verify(mockDelete).handle();
@@ -442,8 +444,7 @@ public class TestModelCommands {
doReturn(linkModelMock)
.when(commandLine)
.newLinkModel(
- eq(GravitinoCommandLine.DEFAULT_URL),
- eq(false),
+ any(CommandContext.class),
eq("metalake_demo"),
eq("catalog"),
eq("schema"),
@@ -477,8 +478,7 @@ public class TestModelCommands {
doReturn(linkModelMock)
.when(commandLine)
.newLinkModel(
- eq(GravitinoCommandLine.DEFAULT_URL),
- eq(false),
+ any(CommandContext.class),
eq("metalake_demo"),
eq("catalog"),
eq("schema"),
@@ -499,12 +499,12 @@ public class TestModelCommands {
@Test
void testLinkModelCommandWithoutURI() {
Main.useExit = false;
-
+ CommandContext mockContext = mock(CommandContext.class);
+ when(mockContext.url()).thenReturn(GravitinoCommandLine.DEFAULT_URL);
LinkModel spyLinkModel =
spy(
new LinkModel(
- GravitinoCommandLine.DEFAULT_URL,
- false,
+ mockContext,
"metalake_demo",
"catalog",
"schema",
@@ -545,8 +545,7 @@ public class TestModelCommands {
doReturn(linkModelMock)
.when(commandLine)
.newLinkModel(
- eq(GravitinoCommandLine.DEFAULT_URL),
- eq(false),
+ any(CommandContext.class),
eq("metalake_demo"),
eq("catalog"),
eq("schema"),