From e5f3e6017aaa50cab5878f6978ceeee423f4c988 Mon Sep 17 00:00:00 2001 From: kangkaisen Date: Wed, 27 Dec 2017 12:47:20 +0800 Subject: [PATCH] KYLIN-2717 Fix compatibility issue --- .../apache/kylin/rest/controller/TableController.java | 18 ++++++++++++++++++ .../java/org/apache/kylin/tool/CubeMetaExtractor.java | 7 ++++--- .../java/org/apache/kylin/tool/CubeMigrationCLI.java | 7 ++++--- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/TableController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/TableController.java index 7a0643e7f..db3e1b9c8 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/TableController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/TableController.java @@ -82,12 +82,30 @@ public class TableController extends BasicController { } } + /** + * Get available table list of the input database + * Keep this api so that user could rolling upgrade to v2.2.0 when user have dozens of QueryServer + * + * @return Table metadata array + * @throws IOException + */ + @RequestMapping(value = "/{tableName:.+}", method = { RequestMethod.GET }, produces = { "application/json" }) + @ResponseBody + @Deprecated + public TableDesc getTableDesc(@PathVariable String tableName) { + TableDesc table = tableService.getTableDescByName(tableName, false, null); + if (table == null) + throw new NotFoundException("Could not find Hive table: " + tableName); + return table; + } + // FIXME prj-table /** * Get available table list of the input database * * @return Table metadata array * @throws IOException + * @since 2.2.0 */ @RequestMapping(value = "/{project}/{tableName:.+}", method = { RequestMethod.GET }, produces = { "application/json" }) @ResponseBody diff --git a/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java b/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java index 9d8139db2..f275a0ef7 100644 --- a/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java +++ b/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java @@ -323,11 +323,12 @@ public class CubeMetaExtractor extends AbstractInfoExtractor { dealWithStreaming(cube); if (modelDesc != null) { - String project = modelDesc.getProject(); for (TableRef table : modelDesc.getAllTables()) { String tableName = table.getTableIdentity(); - addRequired(TableDesc.concatResourcePath(tableName, project)); - addOptional(TableExtDesc.concatResourcePath(tableName, project)); + //for KYLIN-2717 compatibility, we should use tableRef.getTableDesc().getProject() not modelDesc.getProject() + //if TableDesc.getProject() is null, the table resource path will be old format + addRequired(TableDesc.concatResourcePath(tableName, table.getTableDesc().getProject())); + addOptional(TableExtDesc.concatResourcePath(tableName, table.getTableDesc().getProject())); } addRequired(DataModelDesc.concatResourcePath(modelDesc.getName())); } diff --git a/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCLI.java b/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCLI.java index d3865c6e6..fe432c182 100644 --- a/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCLI.java +++ b/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCLI.java @@ -245,15 +245,16 @@ public class CubeMigrationCLI { boolean copyAcl) throws IOException { CubeDesc cubeDesc = cube.getDescriptor(); - String prj = cubeDesc.getProject(); metaResource.add(cube.getResourcePath()); metaResource.add(cubeDesc.getResourcePath()); metaResource.add(DataModelDesc.concatResourcePath(cubeDesc.getModelName())); for (TableRef tableRef : cubeDesc.getModel().getAllTables()) { - metaResource.add(TableDesc.concatResourcePath(tableRef.getTableIdentity(), prj)); - metaResource.add(TableExtDesc.concatResourcePath(tableRef.getTableIdentity(), prj)); + //for KYLIN-2717 compatibility, we should use tableRef.getTableDesc().getProject() not cubeDesc.getProject() + //if TableDesc.getProject() is null, the table resource path will be old format + metaResource.add(TableDesc.concatResourcePath(tableRef.getTableIdentity(), tableRef.getTableDesc().getProject())); + metaResource.add(TableExtDesc.concatResourcePath(tableRef.getTableIdentity(), tableRef.getTableDesc().getProject())); } for (CubeSegment segment : cube.getSegments()) { -- 2.14.3 (Apple Git-98)