From 1a7a92e33420e2435965a61f08d26b197fee6251 Mon Sep 17 00:00:00 2001 From: "helmi.nour" Date: Tue, 20 Sep 2022 04:13:57 +0100 Subject: [PATCH 1/3] move models actions to use v2 protocol --- .../main/java/com/relationalai/Client.java | 40 +++++++++++++------ .../java/com/relationalai/DatabaseTest.java | 8 ++-- .../java/com/relationalai/ModelsTest.java | 8 ++-- 3 files changed, 35 insertions(+), 21 deletions(-) diff --git a/rai-sdk/src/main/java/com/relationalai/Client.java b/rai-sdk/src/main/java/com/relationalai/Client.java index f359d7de..190b599e 100644 --- a/rai-sdk/src/main/java/com/relationalai/Client.java +++ b/rai-sdk/src/main/java/com/relationalai/Client.java @@ -912,26 +912,40 @@ public TransactionResult loadModels( } // Returns the list of names of models installed in the given database. - public String[] listModelNames(String database, String engine) + public List listModelNames(String database, String engine) throws HttpError, InterruptedException, IOException { var models = listModels(database, engine); - String[] result = new String[models.length]; - for (var i = 0; i < models.length; ++i) - result[i] = models[i].name; + List result = new ArrayList(); + for (var model : models) + result.add(model.name); + return result; } // Returns the list of models (including source) installed in the given // database. - public Model[] listModels(String database, String engine) - throws HttpError, InterruptedException, IOException { - var tx = new Transaction(this.region, database, engine, "OPEN", true); - var body = tx.payload(DbAction.makeListModelsAction()); - var rsp = post(PATH_TRANSACTION, tx.queryParams(), body); - var actions = Json.deserialize((String) rsp, ListModelsResponse.class).actions; - if (actions.length == 0) - return new Model[] {}; - return actions[0].result.models; + + public List listModels(String database, String engine) throws HttpError, IOException, InterruptedException { + var models = new ArrayList(); + var resp = execute(database, engine, "def output:__models__ = rel:catalog:model", true); + var index = resp.results.indexOf( + resp.results.stream().filter( + r -> r.relationId.contains("/:output/:__models__") + ).findFirst().orElse(null)); + + for (int i = 0; i < resp.results.get(index).table.size(); i++) { + var name = (org.apache.arrow.vector.util.Text)resp.results.get(index).table.get(i); + var value = (org.apache.arrow.vector.util.Text)resp.results.get(index+1).table.get(i); + + models.add( + new Model( + new String(name.getBytes(), StandardCharsets.UTF_8), + new String(value.getBytes(), StandardCharsets.UTF_8) + ) + ); + } + + return models; } // Data loading diff --git a/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java b/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java index 00b29a24..866f422c 100644 --- a/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java +++ b/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java @@ -79,11 +79,11 @@ void testDatabase() throws HttpError, InterruptedException, IOException { assertNotNull(edb); var modelNames = client.listModelNames(databaseName, engineName); - var name = find(modelNames, item -> item.equals("stdlib")); + var name = modelNames.stream().filter(n -> n.equals("stdlib")).findFirst().orElse(null); assertNotNull(name); var models = client.listModels(databaseName, engineName); - var model = find(models, m -> m.name.equals("stdlib")); + var model = models.stream().filter(m -> m.name.equals("stdlib")).findFirst().orElse(null); assertNotNull(model); model = client.getModel(databaseName, engineName, "stdlib"); @@ -178,11 +178,11 @@ void testDatabase() throws HttpError, InterruptedException, IOException { // Make sure the model was cloned var modelNames = client.listModelNames(databaseName, engineName); - var name = find(modelNames, item -> item.equals("test_model")); + var name = modelNames.stream().filter(n -> n.equals("test_model")).findFirst().orElse(null); assertNotNull(name); var models = client.listModels(databaseName, engineName); - var model = find(models, m -> m.name.equals("test_model")); + var model = models.stream().filter(m -> m.name.equals("test_model")).findFirst().orElse(null); assertNotNull(model); model = client.getModel(databaseName, engineName, "test_model"); diff --git a/rai-sdk/src/test/java/com/relationalai/ModelsTest.java b/rai-sdk/src/test/java/com/relationalai/ModelsTest.java index 86b663b2..6c222269 100644 --- a/rai-sdk/src/test/java/com/relationalai/ModelsTest.java +++ b/rai-sdk/src/test/java/com/relationalai/ModelsTest.java @@ -46,11 +46,11 @@ public class ModelsTest extends UnitTest { assertEquals("test_model", model.name); var modelNames = client.listModelNames(databaseName, engineName); - var modelName = find(modelNames, item -> item.equals("test_model")); + var modelName = modelNames.stream().filter(item -> item.equals("test_model")).findFirst().orElse(null); assertNotNull(modelName); var models = client.listModels(databaseName, engineName); - model = find(models, item -> item.name.equals("test_model")); + model = models.stream().filter(item -> item.name.equals("test_model")).findFirst().orElse(null); assertNotNull(model); var deleteRsp = client.deleteModel(databaseName, engineName, "test_model"); @@ -67,11 +67,11 @@ public class ModelsTest extends UnitTest { assertTrue(error != null && error.statusCode == 404); modelNames = client.listModelNames(databaseName, engineName); - modelName = find(modelNames, item -> item.equals("test_model")); + modelName = modelNames.stream().filter(item -> item.equals("test_model")).findFirst().orElse(null); assertNull(modelName); models = client.listModels(databaseName, engineName); - model = find(models, item -> item.name.equals("test_model")); + model = models.stream().filter(item -> item.name.equals("test_model")).findFirst().orElse(null); assertNull(model); } From f180eef2094e988befba096c44fc76ae6978594c Mon Sep 17 00:00:00 2001 From: "helmi.nour" Date: Thu, 6 Oct 2022 16:58:44 +0100 Subject: [PATCH 2/3] updates --- .../{DeleteModel.java => DeleteModels.java} | 6 +- .../relationalai/examples/ListModelNames.java | 46 ------ .../{LoadModel.java => LoadModels.java} | 14 +- .../main/java/com/relationalai/Client.java | 152 +++++++++--------- .../java/com/relationalai/DatabaseTest.java | 26 ++- .../java/com/relationalai/EngineTest.java | 4 - .../java/com/relationalai/ModelsTest.java | 33 ++-- 7 files changed, 119 insertions(+), 162 deletions(-) rename rai-sdk-examples/src/main/java/com/relationalai/examples/{DeleteModel.java => DeleteModels.java} (90%) delete mode 100644 rai-sdk-examples/src/main/java/com/relationalai/examples/ListModelNames.java rename rai-sdk-examples/src/main/java/com/relationalai/examples/{LoadModel.java => LoadModels.java} (82%) diff --git a/rai-sdk-examples/src/main/java/com/relationalai/examples/DeleteModel.java b/rai-sdk-examples/src/main/java/com/relationalai/examples/DeleteModels.java similarity index 90% rename from rai-sdk-examples/src/main/java/com/relationalai/examples/DeleteModel.java rename to rai-sdk-examples/src/main/java/com/relationalai/examples/DeleteModels.java index e8feaec8..76be80da 100644 --- a/rai-sdk-examples/src/main/java/com/relationalai/examples/DeleteModel.java +++ b/rai-sdk-examples/src/main/java/com/relationalai/examples/DeleteModels.java @@ -22,7 +22,7 @@ import com.relationalai.HttpError; import com.relationalai.Json; -public class DeleteModel implements Runnable { +public class DeleteModels implements Runnable { String database, engine, model, profile; public void parseArgs(String[] args) { @@ -42,7 +42,7 @@ public void run(String[] args) throws HttpError, InterruptedException, IOExcepti parseArgs(args); var cfg = Config.loadConfig("~/.rai/config", this.profile); var client = new Client(cfg); - var rsp = client.deleteModel(database, engine, model); - Json.print(rsp, 4); + var rsp = client.deleteModels(database, engine, new String[] {model}); + System.out.println(rsp); } } diff --git a/rai-sdk-examples/src/main/java/com/relationalai/examples/ListModelNames.java b/rai-sdk-examples/src/main/java/com/relationalai/examples/ListModelNames.java deleted file mode 100644 index 0225e5d1..00000000 --- a/rai-sdk-examples/src/main/java/com/relationalai/examples/ListModelNames.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2022 RelationalAI, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"): you may - * not use this file except in compliance with the License. You may obtain - * a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - */ - -package com.relationalai.examples; - -import java.io.IOException; -import com.relationalai.Client; -import com.relationalai.Config; -import com.relationalai.HttpError; -import com.relationalai.Json; - -public class ListModelNames implements Runnable { - String database, engine, profile; - - public void parseArgs(String[] args) { - var c = Command.create("ListModelNames") - .addArgument("database") - .addArgument("engine") - .addOption("profile", "config profile (default: default)") - .parseArgs(args); - this.database = c.getValue("database"); - this.engine = c.getValue("engine"); - this.profile = c.getValue("profile"); - } - - public void run(String[] args) throws HttpError, InterruptedException, IOException { - parseArgs(args); - var cfg = Config.loadConfig("~/.rai/config", profile); - var client = new Client(cfg); - var rsp = client.listModelNames(database, engine); - Json.print(rsp, 4); - } -} diff --git a/rai-sdk-examples/src/main/java/com/relationalai/examples/LoadModel.java b/rai-sdk-examples/src/main/java/com/relationalai/examples/LoadModels.java similarity index 82% rename from rai-sdk-examples/src/main/java/com/relationalai/examples/LoadModel.java rename to rai-sdk-examples/src/main/java/com/relationalai/examples/LoadModels.java index 3807d08c..19b157b6 100644 --- a/rai-sdk-examples/src/main/java/com/relationalai/examples/LoadModel.java +++ b/rai-sdk-examples/src/main/java/com/relationalai/examples/LoadModels.java @@ -19,12 +19,15 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; + import com.relationalai.Client; import com.relationalai.Config; import com.relationalai.HttpError; import com.relationalai.Json; -public class LoadModel implements Runnable { +public class LoadModels implements Runnable { String database, engine, filename, relation, profile; // Returns the name of the file, without extension. @@ -55,8 +58,11 @@ public void run(String[] args) throws HttpError, InterruptedException, IOExcepti var cfg = Config.loadConfig("~/.rai/config", profile); var client = new Client(cfg); var name = sansext(filename); - var input = new FileInputStream(filename); - var rsp = client.loadModel(database, engine, name, input); - Json.print(rsp, 4); + var input = new String(new FileInputStream(filename).readAllBytes(), StandardCharsets.UTF_8); + var models = new HashMap() {{ + put(name, input); + }}; + var rsp = client.loadModels(database, engine, models); + System.out.println(rsp); } } diff --git a/rai-sdk/src/main/java/com/relationalai/Client.java b/rai-sdk/src/main/java/com/relationalai/Client.java index 190b599e..0ad5aa95 100644 --- a/rai-sdk/src/main/java/com/relationalai/Client.java +++ b/rai-sdk/src/main/java/com/relationalai/Client.java @@ -851,101 +851,109 @@ public Edb[] listEdbs(String database, String engine) // Models - // Delete the named model. - public TransactionResult deleteModel(String database, String engine, String name) + // Delete the list of named models. + public TransactionAsyncResult deleteModels(String database, String engine, String[] names) throws HttpError, InterruptedException, IOException { - var tx = new Transaction(this.region, database, engine, "OPEN"); - var action = DbAction.makeDeleteModelAction(name); - var body = tx.payload(action); - var rsp = post(PATH_TRANSACTION, tx.queryParams(), body); - return Json.deserialize((String) rsp, TransactionResult.class); + var queries = new ArrayList(); + for (var name : names) { + queries.add( + String.format("def delete:rel:catalog:model[\"%s\"] = rel:catalog:model[\"%s\"]", name, name) + ); + } + + return execute(database, engine, String.join("\n", queries), false); } - // Delete the list of named models. - public TransactionResult deleteModel(String database, String engine, String[] names) + public TransactionAsyncResult deleteModelsAsync(String database, String engine, String[] names) throws HttpError, InterruptedException, IOException { - var tx = new Transaction(this.region, database, engine, "OPEN"); - var actions = DbAction.makeDeleteModelsAction(names); - var body = tx.payload(actions); - var rsp = post(PATH_TRANSACTION, tx.queryParams(), body); - return Json.deserialize((String) rsp, TransactionResult.class); + var queries = new ArrayList(); + for (var name : names) { + queries.add( + String.format("def delete:rel:catalog:model[\"%s\"] = rel:catalog:model[\"%s\"]", name, name) + ); + } + + return executeAsync(database, engine, String.join("\n", queries), false); } // Return the named model. public Model getModel(String database, String engine, String name) throws HttpError, InterruptedException, IOException { - var models = listModels(database, engine); - for (var item : models) { - if (item.name.equals(name)) - return item; - } - throw new HttpError(404); - } + var outName = String.format("model_%d", new Random().nextInt(Integer.MAX_VALUE)); + var query = String.format("def output:%s = rel:catalog:model[\"%s\"]", outName, name); - // Load a model into the given database. - public TransactionResult loadModel( - String database, String engine, String name, InputStream model) - throws HttpError, InterruptedException, IOException { - var s = new String(model.readAllBytes()); - return loadModel(database, engine, name, s); - } + var resp = execute(database, engine, query, true); + var result = resp.results.stream().filter( + r -> r.relationId.equals(String.format("/:output/:%s/String", outName)) + ).findFirst().orElse(null); - public TransactionResult loadModel( - String database, String engine, String name, String model) - throws HttpError, InterruptedException, IOException { - var tx = new Transaction(this.region, database, engine, "OPEN", false); - var action = DbAction.makeInstallAction(name, model); - var data = tx.payload(action); - var rsp = post(PATH_TRANSACTION, tx.queryParams(), data); - return Json.deserialize((String) rsp, TransactionResult.class); + if (result != null) { + return new Model(name, result.table.get(0).toString()); + } + + throw new HttpError(404); } // Load multiple models into the given database. - public TransactionResult loadModels( - String database, String engine, Map models) - throws HttpError, InterruptedException, IOException { - var tx = new Transaction(this.region, database, engine, "OPEN", false); - var actions = DbAction.makeInstallAction(models); - var data = tx.payload(actions); - var rsp = post(PATH_TRANSACTION, tx.queryParams(), data); - return Json.deserialize((String) rsp, TransactionResult.class); + public TransactionAsyncResult loadModels(String database, String engine, Map models) throws HttpError, IOException, InterruptedException { + var queries = new ArrayList(); + var queriesInputs = new HashMap(); + var randInt = new Random().nextInt(Integer.MAX_VALUE); + + var index = 0; + for (var model : models.entrySet()) { + var inputName = String.format("input_%d_%d", randInt, index); + queries.add( + String.format("def delete:rel:catalog:model[\"%s\"] = rel:catalog:model[\"%s\"]", model.getKey(), model.getKey()) + ); + queries.add( + String.format("def insert:rel:catalog:model[\"%s\"] = %s", model.getKey(), inputName) + ); + queriesInputs.put(inputName, model.getValue()); + index++; + } + return execute(database, engine, String.join("\n", queries), false, queriesInputs); } - // Returns the list of names of models installed in the given database. - public List listModelNames(String database, String engine) - throws HttpError, InterruptedException, IOException { - var models = listModels(database, engine); - List result = new ArrayList(); - for (var model : models) - result.add(model.name); + public TransactionAsyncResult loadModelsAsync(String database, String engine, Map models) throws HttpError, IOException, InterruptedException { + var queries = new ArrayList(); + var queriesInputs = new HashMap(); + var randInt = new Random().nextInt(Integer.MAX_VALUE); - return result; + var index = 0; + for (var model : models.entrySet()) { + var inputName = String.format("input_%d_%d", randInt, index); + queries.add( + String.format("def delete:rel:catalog:model[\"%s\"] = rel:catalog:model[\"%s\"]", model.getKey(), model.getKey()) + ); + queries.add( + String.format("def insert:rel:catalog:model[\"%s\"] = %s", model.getKey(), inputName) + ); + queriesInputs.put(inputName, model.getValue()); + index++; + } + return executeAsync(database, engine, String.join("\n", queries), false, queriesInputs); } - // Returns the list of models (including source) installed in the given + // Returns the list of models names installed in the given // database. - public List listModels(String database, String engine) throws HttpError, IOException, InterruptedException { - var models = new ArrayList(); - var resp = execute(database, engine, "def output:__models__ = rel:catalog:model", true); - var index = resp.results.indexOf( - resp.results.stream().filter( - r -> r.relationId.contains("/:output/:__models__") - ).findFirst().orElse(null)); - - for (int i = 0; i < resp.results.get(index).table.size(); i++) { - var name = (org.apache.arrow.vector.util.Text)resp.results.get(index).table.get(i); - var value = (org.apache.arrow.vector.util.Text)resp.results.get(index+1).table.get(i); - - models.add( - new Model( - new String(name.getBytes(), StandardCharsets.UTF_8), - new String(value.getBytes(), StandardCharsets.UTF_8) - ) - ); + public List listModels(String database, String engine) throws HttpError, IOException, InterruptedException { + var outName = String.format("models_%d", new Random().nextInt(Integer.MAX_VALUE)); + var query = String.format("def output:%s[name] = rel:catalog:model(name, _)", outName); + + var resp = execute(database, engine, query, true); + var result = resp.results.stream().filter( + r -> r.relationId.equals(String.format("/:output/:%s/String", outName)) + ).findFirst().orElse(null); + + if (result != null) { + return result.table.stream() + .map(elem -> elem.toString()) + .collect(Collectors.toList()); } - return models; + return new ArrayList(); } // Data loading diff --git a/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java b/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java index 866f422c..1f0950de 100644 --- a/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java +++ b/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java @@ -21,6 +21,8 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; @@ -78,7 +80,7 @@ void testDatabase() throws HttpError, InterruptedException, IOException { var edb = find(edbs, item -> item.name.equals("rel")); assertNotNull(edb); - var modelNames = client.listModelNames(databaseName, engineName); + /*var modelNames = client.listModelNames(databaseName, engineName); var name = modelNames.stream().filter(n -> n.equals("stdlib")).findFirst().orElse(null); assertNotNull(name); @@ -88,7 +90,7 @@ void testDatabase() throws HttpError, InterruptedException, IOException { model = client.getModel(databaseName, engineName, "stdlib"); assertNotNull(model); - assertTrue(model.value.length() > 0); + assertTrue(model.value.length() > 0);*/ var deleteRsp = client.deleteDatabase(databaseName); assertTrue(deleteRsp.name.equals(databaseName)); @@ -106,8 +108,9 @@ void testDatabase() throws HttpError, InterruptedException, IOException { assertNull(database); } - static final String testModel = - "def R = \"hello\", \"world\""; + static final Map testModel = new HashMap(){{ + put("test_model", "def R = \"hello\", \"world\""); + }}; static final String testJson = "{" + "\"name\":\"Amira\",\n" + @@ -137,10 +140,9 @@ void testDatabase() throws HttpError, InterruptedException, IOException { assertEquals(0, loadRsp.output.length); assertEquals(0, loadRsp.problems.length); - loadRsp = client.loadModel(databaseName, engineName, "test_model", testModel); - assertEquals(false, loadRsp.aborted); - assertEquals(0, loadRsp.output.length); - assertEquals(0, loadRsp.problems.length); + var resp = client.loadModels(databaseName, engineName, testModel); + assertEquals("COMPLETED", resp.transaction.state); + assertEquals(0, resp.problems.size()); // Clone the database var databaseCloneName = databaseName + "-clone"; @@ -177,15 +179,11 @@ void testDatabase() throws HttpError, InterruptedException, IOException { assertNotNull(rel); // Make sure the model was cloned - var modelNames = client.listModelNames(databaseName, engineName); + var modelNames = client.listModels(databaseName, engineName); var name = modelNames.stream().filter(n -> n.equals("test_model")).findFirst().orElse(null); assertNotNull(name); - var models = client.listModels(databaseName, engineName); - var model = models.stream().filter(m -> m.name.equals("test_model")).findFirst().orElse(null); - assertNotNull(model); - - model = client.getModel(databaseName, engineName, "test_model"); + var model = client.getModel(databaseName, engineName, "test_model"); assertNotNull(model); assertTrue(model.value.length() > 0); diff --git a/rai-sdk/src/test/java/com/relationalai/EngineTest.java b/rai-sdk/src/test/java/com/relationalai/EngineTest.java index 8cc97262..3b73fbdd 100644 --- a/rai-sdk/src/test/java/com/relationalai/EngineTest.java +++ b/rai-sdk/src/test/java/com/relationalai/EngineTest.java @@ -77,9 +77,5 @@ Engine find(Engine[] engines, String name) { error = e; } assertTrue(error != null && error.statusCode == 404); - - engines = client.listEngines(); - engine = find(engines, engineName); - assertEquals(engine.state, "DELETED"); } } diff --git a/rai-sdk/src/test/java/com/relationalai/ModelsTest.java b/rai-sdk/src/test/java/com/relationalai/ModelsTest.java index 6c222269..eb6dc34a 100644 --- a/rai-sdk/src/test/java/com/relationalai/ModelsTest.java +++ b/rai-sdk/src/test/java/com/relationalai/ModelsTest.java @@ -21,6 +21,8 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; @@ -30,33 +32,30 @@ // Test model APIs. @TestInstance(Lifecycle.PER_CLASS) public class ModelsTest extends UnitTest { - static final String testModel = "def R = \"hello\", \"world\""; + static final Map testModel = new HashMap<>(){{ + put("test_model", "def R = \"hello\", \"world\""); + }}; @Test void testModels() throws HttpError, InterruptedException, IOException { var client = createClient(); ensureDatabase(client); - var loadRsp = client.loadModel(databaseName, engineName, "test_model", testModel); - assertEquals(false, loadRsp.aborted); - assertEquals(0, loadRsp.output.length); - assertEquals(0, loadRsp.problems.length); + var loadRsp = client.loadModels(databaseName, engineName, testModel); + assertEquals("COMPLETED", loadRsp.transaction.state); + assertEquals(0, loadRsp.problems.size()); var model = client.getModel(databaseName, engineName, "test_model"); assertEquals("test_model", model.name); + assertEquals(testModel.get("test_model"), model.value); - var modelNames = client.listModelNames(databaseName, engineName); + var modelNames = client.listModels(databaseName, engineName); var modelName = modelNames.stream().filter(item -> item.equals("test_model")).findFirst().orElse(null); assertNotNull(modelName); - var models = client.listModels(databaseName, engineName); - model = models.stream().filter(item -> item.name.equals("test_model")).findFirst().orElse(null); - assertNotNull(model); - - var deleteRsp = client.deleteModel(databaseName, engineName, "test_model"); - assertEquals(false, deleteRsp.aborted); - assertEquals(0, deleteRsp.output.length); - assertEquals(0, deleteRsp.problems.length); + var deleteRsp = client.deleteModels(databaseName, engineName, new String[]{ "test_model" }); + assertEquals("COMPLETED", deleteRsp.transaction.state); + assertEquals(0, deleteRsp.problems.size()); HttpError error = null; try { @@ -66,13 +65,9 @@ public class ModelsTest extends UnitTest { } assertTrue(error != null && error.statusCode == 404); - modelNames = client.listModelNames(databaseName, engineName); + modelNames = client.listModels(databaseName, engineName); modelName = modelNames.stream().filter(item -> item.equals("test_model")).findFirst().orElse(null); assertNull(modelName); - - models = client.listModels(databaseName, engineName); - model = models.stream().filter(item -> item.name.equals("test_model")).findFirst().orElse(null); - assertNull(model); } @AfterAll From 559249b3101553a9e4d70b132b0368f66784f466 Mon Sep 17 00:00:00 2001 From: "helmi.nour" Date: Thu, 13 Oct 2022 11:18:20 +0100 Subject: [PATCH 3/3] uncomment models database tests --- .../src/test/java/com/relationalai/DatabaseTest.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java b/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java index 1f0950de..75148712 100644 --- a/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java +++ b/rai-sdk/src/test/java/com/relationalai/DatabaseTest.java @@ -80,17 +80,13 @@ void testDatabase() throws HttpError, InterruptedException, IOException { var edb = find(edbs, item -> item.name.equals("rel")); assertNotNull(edb); - /*var modelNames = client.listModelNames(databaseName, engineName); - var name = modelNames.stream().filter(n -> n.equals("stdlib")).findFirst().orElse(null); + var modelNames = client.listModels(databaseName, engineName); + var name = modelNames.stream().filter(n -> n.equals("rel/alglib")).findFirst().orElse(null); assertNotNull(name); - var models = client.listModels(databaseName, engineName); - var model = models.stream().filter(m -> m.name.equals("stdlib")).findFirst().orElse(null); - assertNotNull(model); - - model = client.getModel(databaseName, engineName, "stdlib"); + var model = client.getModel(databaseName, engineName, "rel/alglib"); assertNotNull(model); - assertTrue(model.value.length() > 0);*/ + assertTrue(model.value.length() > 0); var deleteRsp = client.deleteDatabase(databaseName); assertTrue(deleteRsp.name.equals(databaseName));