@Nonnull public String toJSONConfigString() throws IOException { return toJSONConfig(this).toString(); }
@Override public String toString() { try { return JsonUtils.objectToPrettyString(toJSONConfig(this)); } catch (JsonProcessingException e) { throw new RuntimeException(e); } }
@POST @Path("/tables/validate") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Validate table config for a table", notes = "This API returns the table config that matches the one you get from 'GET /tables/{tableName}'." + " This allows us to validate table config before apply.") public String checkTableConfig(String tableConfigStr) { try { ObjectNode tableConfigValidateStr = JsonUtils.newObjectNode(); TableConfig tableConfig = TableConfig.fromJsonString(tableConfigStr); if (tableConfig.getTableType() == CommonConstants.Helix.TableType.OFFLINE) { tableConfigValidateStr .set(CommonConstants.Helix.TableType.OFFLINE.name(), TableConfig.toJSONConfig(tableConfig)); } else { tableConfigValidateStr .set(CommonConstants.Helix.TableType.REALTIME.name(), TableConfig.toJSONConfig(tableConfig)); } return tableConfigValidateStr.toString(); } catch (Exception e) { throw new ControllerApplicationException(LOGGER, e.getMessage(), Response.Status.BAD_REQUEST); } }
private String listTableConfigs(@Nonnull String tableName, @Nullable String tableTypeStr) { try { ObjectNode ret = JsonUtils.newObjectNode(); if ((tableTypeStr == null || CommonConstants.Helix.TableType.OFFLINE.name().equalsIgnoreCase(tableTypeStr)) && _pinotHelixResourceManager.hasOfflineTable(tableName)) { TableConfig tableConfig = _pinotHelixResourceManager.getOfflineTableConfig(tableName); Preconditions.checkNotNull(tableConfig); ret.set(CommonConstants.Helix.TableType.OFFLINE.name(), TableConfig.toJSONConfig(tableConfig)); } if ((tableTypeStr == null || CommonConstants.Helix.TableType.REALTIME.name().equalsIgnoreCase(tableTypeStr)) && _pinotHelixResourceManager.hasRealtimeTable(tableName)) { TableConfig tableConfig = _pinotHelixResourceManager.getRealtimeTableConfig(tableName); Preconditions.checkNotNull(tableConfig); ret.set(CommonConstants.Helix.TableType.REALTIME.name(), TableConfig.toJSONConfig(tableConfig)); } return ret.toString(); } catch (Exception e) { throw new ControllerApplicationException(LOGGER, e.getMessage(), Response.Status.INTERNAL_SERVER_ERROR, e); } }
JsonNode jsonTableConfig = TableConfig.toJSONConfig(tableConfig); TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); Assert.assertNotNull(tableConfigToCompare.getQuotaConfig()); TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); Assert.assertNotNull(tableConfigToCompare.getTenantConfig()); tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); Assert.assertEquals(tableConfigToCompare.getTableName(), tableConfig.getTableName()); Assert.assertNotNull(tableConfigToCompare.getTenantConfig()); TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); checkTableConfigWithAssignmentConfig(tableConfig, tableConfigToCompare); TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); Assert.assertEquals( tableConfigToCompare.getIndexingConfig().getStreamConsumptionConfig().getStreamPartitionAssignmentStrategy(), TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); checkTableConfigWithStarTreeConfig(tableConfig, tableConfigToCompare); TableConfig tableConfigToCompare = TableConfig.fromJSONConfig(TableConfig.toJSONConfig(tableConfig)); checkTableConfigWithHllConfig(tableConfig, tableConfigToCompare);