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