You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ja...@apache.org on 2022/10/19 07:19:00 UTC
[pinot] branch master updated: Bug fix: Add missing table config fetch for /tableConfigs list all (#9603)
This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 2d78b358ef Bug fix: Add missing table config fetch for /tableConfigs list all (#9603)
2d78b358ef is described below
commit 2d78b358ef491da33167d3d905273c4b8c8483b3
Author: Tim Santos <ti...@cortexdata.io>
AuthorDate: Wed Oct 19 00:18:53 2022 -0700
Bug fix: Add missing table config fetch for /tableConfigs list all (#9603)
---
.../api/resources/TableConfigsRestletResource.java | 2 +-
.../api/TableConfigsRestletResourceTest.java | 63 +++++++++++++++++-----
2 files changed, 51 insertions(+), 14 deletions(-)
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/TableConfigsRestletResource.java b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/TableConfigsRestletResource.java
index b11642fe53..fbce162f8e 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/TableConfigsRestletResource.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/TableConfigsRestletResource.java
@@ -118,7 +118,7 @@ public class TableConfigsRestletResource {
ArrayNode configsList = JsonUtils.newArrayNode();
for (String rawTableName : rawTableNames) {
- configsList.add(rawTableName);
+ configsList.add(getConfig(rawTableName));
}
return configsList.toString();
} catch (Exception e) {
diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableConfigsRestletResourceTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableConfigsRestletResourceTest.java
index 2fa822fd28..b34b67e81f 100644
--- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableConfigsRestletResourceTest.java
+++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/TableConfigsRestletResourceTest.java
@@ -21,9 +21,10 @@ package org.apache.pinot.controller.api;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.common.collect.Sets;
import java.io.IOException;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.pinot.controller.helix.ControllerTest;
import org.apache.pinot.core.realtime.impl.fakestream.FakeStreamConfigUtils;
import org.apache.pinot.spi.config.TableConfigs;
@@ -374,8 +375,8 @@ public class TableConfigsRestletResourceTest {
TableConfig offlineTableConfig = getOfflineTableConfig(tableName1);
TableConfig realtimeTableConfig = getRealtimeTableConfig(tableName1);
Schema schema = getSchema(tableName1);
- TableConfigs tableConfigs = new TableConfigs(tableName1, schema, offlineTableConfig, null);
- ControllerTest.sendPostRequest(_createTableConfigsUrl, tableConfigs.toPrettyJsonString());
+ TableConfigs tableConfigs1 = new TableConfigs(tableName1, schema, offlineTableConfig, null);
+ ControllerTest.sendPostRequest(_createTableConfigsUrl, tableConfigs1.toPrettyJsonString());
// list
String getResponse =
@@ -383,13 +384,17 @@ public class TableConfigsRestletResourceTest {
List<String> configs = JsonUtils.stringToObject(getResponse, new TypeReference<List<String>>() {
});
Assert.assertEquals(configs.size(), 1);
- Assert.assertTrue(configs.containsAll(Sets.newHashSet(tableName1)));
+ TableConfigs tableConfigsResponse = JsonUtils.stringToObject(configs.get(0), TableConfigs.class);
+ Assert.assertEquals(tableConfigsResponse.getTableName(), tableConfigs1.getTableName());
+ Assert.assertEquals(tableConfigsResponse.getSchema(), tableConfigs1.getSchema());
+ Assert.assertEquals(tableConfigsResponse.getOffline().getTableName(), tableConfigs1.getOffline().getTableName());
+ Assert.assertNull(tableConfigsResponse.getRealtime());
// update to 2
- tableConfigs = new TableConfigs(tableName1, schema, offlineTableConfig, realtimeTableConfig);
+ tableConfigs1 = new TableConfigs(tableName1, schema, offlineTableConfig, realtimeTableConfig);
ControllerTest
.sendPutRequest(TEST_INSTANCE.getControllerRequestURLBuilder().forTableConfigsUpdate(tableName1),
- tableConfigs.toPrettyJsonString());
+ tableConfigs1.toPrettyJsonString());
// list
getResponse =
@@ -397,14 +402,18 @@ public class TableConfigsRestletResourceTest {
configs = JsonUtils.stringToObject(getResponse, new TypeReference<List<String>>() {
});
Assert.assertEquals(configs.size(), 1);
- Assert.assertTrue(configs.containsAll(Sets.newHashSet("testList1")));
+ tableConfigsResponse = JsonUtils.stringToObject(configs.get(0), TableConfigs.class);
+ Assert.assertEquals(tableConfigsResponse.getTableName(), tableConfigs1.getTableName());
+ Assert.assertEquals(tableConfigsResponse.getSchema(), tableConfigs1.getSchema());
+ Assert.assertEquals(tableConfigsResponse.getOffline().getTableName(), tableConfigs1.getOffline().getTableName());
+ Assert.assertEquals(tableConfigsResponse.getRealtime().getTableName(), tableConfigs1.getRealtime().getTableName());
// create new
String tableName2 = "testList2";
offlineTableConfig = getOfflineTableConfig(tableName2);
schema = getSchema(tableName2);
- tableConfigs = new TableConfigs(tableName2, schema, offlineTableConfig, null);
- ControllerTest.sendPostRequest(_createTableConfigsUrl, tableConfigs.toPrettyJsonString());
+ TableConfigs tableConfigs2 = new TableConfigs(tableName2, schema, offlineTableConfig, null);
+ ControllerTest.sendPostRequest(_createTableConfigsUrl, tableConfigs2.toPrettyJsonString());
// list
getResponse =
@@ -412,7 +421,23 @@ public class TableConfigsRestletResourceTest {
configs = JsonUtils.stringToObject(getResponse, new TypeReference<List<String>>() {
});
Assert.assertEquals(configs.size(), 2);
- Assert.assertTrue(configs.containsAll(Sets.newHashSet(tableName1, tableName2)));
+ Map<String, TableConfigs> tableNameToConfigs = new HashMap<>(2);
+ for (String conf : configs) {
+ TableConfigs response = JsonUtils.stringToObject(conf, TableConfigs.class);
+ tableNameToConfigs.put(response.getTableName(), response);
+ }
+ Assert.assertEquals(tableNameToConfigs.get(tableName1).getTableName(), tableConfigs1.getTableName());
+ Assert.assertEquals(tableNameToConfigs.get(tableName1).getSchema(), tableConfigs1.getSchema());
+ Assert.assertEquals(tableNameToConfigs.get(tableName1).getOffline().getTableName(),
+ tableConfigs1.getOffline().getTableName());
+ Assert.assertEquals(tableNameToConfigs.get(tableName1).getRealtime().getTableName(),
+ tableConfigs1.getRealtime().getTableName());
+
+ Assert.assertEquals(tableNameToConfigs.get(tableName2).getTableName(), tableConfigs2.getTableName());
+ Assert.assertEquals(tableNameToConfigs.get(tableName2).getSchema(), tableConfigs2.getSchema());
+ Assert.assertEquals(tableNameToConfigs.get(tableName2).getOffline().getTableName(),
+ tableConfigs2.getOffline().getTableName());
+ Assert.assertNull(tableNameToConfigs.get(tableName2).getRealtime());
// delete 1
ControllerTest
@@ -424,7 +449,11 @@ public class TableConfigsRestletResourceTest {
configs = JsonUtils.stringToObject(getResponse, new TypeReference<List<String>>() {
});
Assert.assertEquals(configs.size(), 1);
- Assert.assertTrue(configs.containsAll(Sets.newHashSet(tableName1)));
+ tableConfigsResponse = JsonUtils.stringToObject(configs.get(0), TableConfigs.class);
+ Assert.assertEquals(tableConfigsResponse.getTableName(), tableConfigs1.getTableName());
+ Assert.assertEquals(tableConfigsResponse.getSchema(), tableConfigs1.getSchema());
+ Assert.assertEquals(tableConfigsResponse.getOffline().getTableName(), tableConfigs1.getOffline().getTableName());
+ Assert.assertEquals(tableConfigsResponse.getRealtime().getTableName(), tableConfigs1.getRealtime().getTableName());
ControllerTest
.sendDeleteRequest(TEST_INSTANCE.getControllerRequestURLBuilder().forTableConfigsDelete(tableName1));
@@ -464,7 +493,11 @@ public class TableConfigsRestletResourceTest {
List<String> configs = JsonUtils.stringToObject(getResponse, new TypeReference<List<String>>() {
});
Assert.assertEquals(configs.size(), 1);
- Assert.assertTrue(configs.containsAll(Sets.newHashSet(tableName)));
+ tableConfigsResponse = JsonUtils.stringToObject(configs.get(0), TableConfigs.class);
+ Assert.assertEquals(tableConfigsResponse.getTableName(), tableName);
+ Assert.assertEquals(tableConfigsResponse.getSchema(), tableConfigs.getSchema());
+ Assert.assertEquals(tableConfigsResponse.getOffline().getTableName(), tableConfigs.getOffline().getTableName());
+ Assert.assertNull(tableConfigsResponse.getRealtime());
// update to 2
tableConfigs = new TableConfigs(tableName, tableConfigsResponse.getSchema(), tableConfigsResponse.getOffline(),
@@ -486,7 +519,11 @@ public class TableConfigsRestletResourceTest {
configs = JsonUtils.stringToObject(getResponse, new TypeReference<List<String>>() {
});
Assert.assertEquals(configs.size(), 1);
- Assert.assertTrue(configs.containsAll(Sets.newHashSet(tableName)));
+ tableConfigsResponse = JsonUtils.stringToObject(configs.get(0), TableConfigs.class);
+ Assert.assertEquals(tableConfigsResponse.getTableName(), tableName);
+ Assert.assertEquals(tableConfigsResponse.getSchema(), tableConfigs.getSchema());
+ Assert.assertEquals(tableConfigsResponse.getOffline().getTableName(), tableConfigs.getOffline().getTableName());
+ Assert.assertEquals(tableConfigsResponse.getRealtime().getTableName(), tableConfigs.getRealtime().getTableName());
// update existing config
schema.addField(new MetricFieldSpec("newMetric", FieldSpec.DataType.LONG));
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org