#1089 Clone raw table and scheduler with cube
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/3beef268 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/3beef268 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/3beef268 Branch: refs/heads/master Commit: 3beef268dd06fb3f275b4accc92836b44d99b175 Parents: 66dc541 Author: Roger Shi <[email protected]> Authored: Mon Jun 19 12:02:35 2017 +0800 Committer: Hongbin Ma <[email protected]> Committed: Mon Jun 19 13:30:35 2017 +0800 ---------------------------------------------------------------------- .../kylin/rest/controller/CubeController.java | 4 +- .../rest/controller2/CubeControllerV2.java | 41 -------------------- .../apache/kylin/rest/service/CubeService.java | 4 +- 3 files changed, 4 insertions(+), 45 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/3beef268/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java index 14c80a0..6916dd8 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java @@ -18,6 +18,8 @@ package org.apache.kylin.rest.controller; +import static org.apache.kylin.rest.service.CubeService.VALID_CUBENAME; + import java.io.IOException; import java.net.UnknownHostException; import java.util.ArrayList; @@ -83,8 +85,6 @@ import com.google.common.collect.Maps; public class CubeController extends BasicController { private static final Logger logger = LoggerFactory.getLogger(CubeController.class); - private static final char[] VALID_CUBENAME = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_".toCharArray(); - @Autowired @Qualifier("cubeMgmtService") private CubeService cubeService; http://git-wip-us.apache.org/repos/asf/kylin/blob/3beef268/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java b/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java index 720cf76..93c4d4e 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java @@ -25,7 +25,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.commons.lang.StringUtils; import org.apache.kylin.cube.CubeInstance; import org.apache.kylin.cube.CubeManager; import org.apache.kylin.cube.CubeSegment; @@ -43,7 +42,6 @@ import org.apache.kylin.rest.controller.BasicController; import org.apache.kylin.rest.exception.BadRequestException; import org.apache.kylin.rest.msg.Message; import org.apache.kylin.rest.msg.MsgPicker; -import org.apache.kylin.rest.request.CubeRequest; import org.apache.kylin.rest.request.JobBuildRequest; import org.apache.kylin.rest.request.JobBuildRequest2; import org.apache.kylin.rest.response.CubeInstanceResponse; @@ -80,9 +78,6 @@ import com.google.common.collect.Lists; public class CubeControllerV2 extends BasicController { private static final Logger logger = LoggerFactory.getLogger(CubeControllerV2.class); - public static final char[] VALID_CUBENAME = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_" - .toCharArray(); - @Autowired @Qualifier("cubeMgmtService") private CubeService cubeService; @@ -437,42 +432,6 @@ public class CubeControllerV2 extends BasicController { return new EnvelopeResponse(ResponseCode.CODE_SUCCESS, cubeService.purgeCube(cube), ""); } - @RequestMapping(value = "/{cubeName}/clone", method = { RequestMethod.PUT }, produces = { - "application/vnd.apache.kylin-v2+json" }) - @ResponseBody - public EnvelopeResponse cloneCubeV2(@PathVariable String cubeName, @RequestBody CubeRequest cubeRequest) - throws IOException { - Message msg = MsgPicker.getMsg(); - - String newCubeName = cubeRequest.getCubeName(); - String project = cubeRequest.getProject(); - - CubeInstance cube = cubeService.getCubeManager().getCube(cubeName); - if (cube == null) { - throw new BadRequestException(String.format(msg.getCUBE_NOT_FOUND(), cubeName)); - } - if (cube.getStatus() == RealizationStatusEnum.DESCBROKEN) { - throw new BadRequestException(String.format(msg.getCLONE_BROKEN_CUBE(), cubeName)); - } - if (!StringUtils.containsOnly(newCubeName, VALID_CUBENAME)) { - logger.info("Invalid Cube name {}, only letters, numbers and underline supported.", newCubeName); - throw new BadRequestException(String.format(msg.getINVALID_CUBE_NAME(), cubeName)); - } - - CubeDesc cubeDesc = cube.getDescriptor(); - CubeDesc newCubeDesc = CubeDesc.getCopyOf(cubeDesc); - - newCubeDesc.setName(newCubeName); - - CubeInstance newCube; - newCube = cubeService.createCubeAndDesc(newCubeName, project, newCubeDesc); - - //reload to avoid shallow clone - cubeService.getCubeDescManager().reloadCubeDescLocal(newCubeName); - - return new EnvelopeResponse(ResponseCode.CODE_SUCCESS, newCube, ""); - } - @RequestMapping(value = "/{cubeName}/enable", method = { RequestMethod.PUT }, produces = { "application/vnd.apache.kylin-v2+json" }) @ResponseBody http://git-wip-us.apache.org/repos/asf/kylin/blob/3beef268/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java index 7f09612..f6de877 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java @@ -18,8 +18,6 @@ package org.apache.kylin.rest.service; -import static org.apache.kylin.rest.controller2.CubeControllerV2.VALID_CUBENAME; - import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -82,6 +80,8 @@ public class CubeService extends BasicService { private static final Logger logger = LoggerFactory.getLogger(CubeService.class); + public static final char[] VALID_CUBENAME = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_".toCharArray(); + private WeakHashMap<String, HBaseResponse> htableInfoCache = new WeakHashMap<>(); @Autowired
