This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kylin.git
commit e0d92d13e9cb78474f542590127421098667eff9 Author: Zhong, Yanghong <nju_y...@apache.org> AuthorDate: Mon May 18 13:14:06 2020 +0800 KYLIN-4488 Revert KYLIN-2999 --- .../org/apache/kylin/common/KylinConfigBase.java | 25 +---------- .../kylin/rest/controller/CubeController.java | 7 ---- .../org/apache/kylin/rest/service/CubeService.java | 49 ---------------------- .../kylin/rest/service/AdminServiceTest.java | 1 - webapp/app/js/controllers/cubes.js | 29 ------------- webapp/app/js/services/cubes.js | 1 - webapp/app/js/services/kylinProperties.js | 8 ---- webapp/app/partials/cubes/cubes.html | 1 - 8 files changed, 1 insertion(+), 120 deletions(-) diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index 62021a9..7db46a6 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -2257,7 +2257,7 @@ public abstract class KylinConfigBase implements Serializable { + "kylin.web.help,kylin.web.hide-measures,kylin.web.link-streaming-guide,kylin.server.external-acl-provider," + "kylin.security.profile,kylin.security.additional-profiles," + "kylin.htrace.show-gui-trace-toggle,kylin.web.export-allow-admin,kylin.web.export-allow-other," - + "kylin.cube.cubeplanner.enabled,kylin.web.dashboard-enabled,kylin.tool.auto-migrate-cube.enabled," + + "kylin.cube.cubeplanner.enabled,kylin.web.dashboard-enabled," + "kylin.job.scheduler.default,kylin.web.default-time-filter"); } @@ -2404,29 +2404,6 @@ public abstract class KylinConfigBase implements Serializable { } // ============================================================================ - // tool - // ============================================================================ - public boolean isAllowAutoMigrateCube() { - return Boolean.parseBoolean(getOptional("kylin.tool.auto-migrate-cube.enabled", FALSE)); - } - - public boolean isAutoMigrateCubeCopyAcl() { - return Boolean.parseBoolean(getOptional("kylin.tool.auto-migrate-cube.copy-acl", TRUE)); - } - - public boolean isAutoMigrateCubePurge() { - return Boolean.parseBoolean(getOptional("kylin.tool.auto-migrate-cube.purge-src-cube", TRUE)); - } - - public String getAutoMigrateCubeSrcConfig() { - return getOptional("kylin.tool.auto-migrate-cube.src-config", ""); - } - - public String getAutoMigrateCubeDestConfig() { - return getOptional("kylin.tool.auto-migrate-cube.dest-config", ""); - } - - // ============================================================================ // jdbc metadata resource store // ============================================================================ 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 518e83c..1b5f1e4 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 @@ -1038,13 +1038,6 @@ public class CubeController extends BasicController { } } - @RequestMapping(value = "/{cube}/{project}/migrate", method = { RequestMethod.POST }) - @ResponseBody - public void migrateCube(@PathVariable String cube, @PathVariable String project) { - CubeInstance cubeInstance = cubeService.getCubeManager().getCube(cube); - cubeService.migrateCube(cubeInstance, project); - } - public void setCubeService(CubeService cubeService) { this.cubeService = cubeService; } 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 94f24ca..f11f31a 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 @@ -34,7 +34,6 @@ import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.lock.DistributedLock; import org.apache.kylin.common.persistence.RootPersistentEntity; -import org.apache.kylin.common.util.CliCommandExecutor; import org.apache.kylin.common.util.HadoopUtil; import org.apache.kylin.common.util.Pair; import org.apache.kylin.cube.CubeInstance; @@ -51,7 +50,6 @@ import org.apache.kylin.engine.mr.JobBuilderSupport; import org.apache.kylin.engine.mr.common.CubeJobLockUtil; import org.apache.kylin.engine.mr.common.CuboidRecommenderUtil; import org.apache.kylin.job.JobInstance; -import org.apache.kylin.job.common.PatternedLogger; import org.apache.kylin.job.constant.JobStatusEnum; import org.apache.kylin.job.constant.JobTimeFilterEnum; import org.apache.kylin.job.exception.JobException; @@ -78,7 +76,6 @@ import org.apache.kylin.metrics.property.QueryCubePropertyEnum; import org.apache.kylin.rest.constant.Constant; import org.apache.kylin.rest.exception.BadRequestException; import org.apache.kylin.rest.exception.ForbiddenException; -import org.apache.kylin.rest.exception.InternalErrorException; import org.apache.kylin.rest.msg.Message; import org.apache.kylin.rest.msg.MsgPicker; import org.apache.kylin.rest.request.MetricsRequest; @@ -106,7 +103,6 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; -import org.apache.kylin.shaded.com.google.common.base.Preconditions; import org.apache.kylin.shaded.com.google.common.cache.Cache; import org.apache.kylin.shaded.com.google.common.cache.CacheBuilder; import org.apache.kylin.shaded.com.google.common.collect.Lists; @@ -1107,51 +1103,6 @@ public class CubeService extends BasicService implements InitializingBean { return queryService.doQueryWithCache(sqlRequest, false).getResults(); } - @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN - + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')") - public void migrateCube(CubeInstance cube, String projectName) { - KylinConfig config = KylinConfig.getInstanceFromEnv(); - if (!config.isAllowAutoMigrateCube()) { - throw new InternalErrorException("One click migration is disabled, please contact your ADMIN"); - } - - for (CubeSegment segment : cube.getSegments()) { - if (segment.getStatus() != SegmentStatusEnum.READY) { - throw new InternalErrorException( - "At least one segment is not in READY state. Please check whether there are Running or Error jobs."); - } - } - - String srcCfgUri = config.getAutoMigrateCubeSrcConfig(); - String dstCfgUri = config.getAutoMigrateCubeDestConfig(); - - Preconditions.checkArgument(StringUtils.isNotEmpty(srcCfgUri), "Source configuration should not be empty."); - Preconditions.checkArgument(StringUtils.isNotEmpty(dstCfgUri), - "Destination configuration should not be empty."); - - String stringBuilder = ("%s/bin/kylin.sh org.apache.kylin.tool.CubeMigrationCLI %s %s %s %s %s %s true true"); - String cmd = String.format(Locale.ROOT, - stringBuilder, - KylinConfig.getKylinHome(), - CliCommandExecutor.checkParameterWhiteList(srcCfgUri), - CliCommandExecutor.checkParameterWhiteList(dstCfgUri), - cube.getName(), - CliCommandExecutor.checkParameterWhiteList(projectName), - config.isAutoMigrateCubeCopyAcl(), - config.isAutoMigrateCubePurge()); - - logger.info("One click migration cmd: " + cmd); - - CliCommandExecutor exec = new CliCommandExecutor(); - PatternedLogger patternedLogger = new PatternedLogger(logger); - - try { - exec.execute(cmd, patternedLogger); - } catch (IOException e) { - throw new InternalErrorException("Failed to perform one-click migrating", e); - } - } - private class HTableInfoSyncListener extends Broadcaster.Listener { @Override public void onClearAll(Broadcaster broadcaster) throws IOException { diff --git a/server/src/test/java/org/apache/kylin/rest/service/AdminServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/AdminServiceTest.java index 27b59a0..dd098de 100644 --- a/server/src/test/java/org/apache/kylin/rest/service/AdminServiceTest.java +++ b/server/src/test/java/org/apache/kylin/rest/service/AdminServiceTest.java @@ -59,7 +59,6 @@ public class AdminServiceTest extends ServiceTestBase { "kylin.web.help.length=4\n" + "kylin.web.timezone=\n" + "kylin.server.external-acl-provider=\n" + - "kylin.tool.auto-migrate-cube.enabled=\n" + "kylin.storage.default=2\n" + "kylin.cube.cubeplanner.enabled=true\n" + "kylin.web.help=\n" + diff --git a/webapp/app/js/controllers/cubes.js b/webapp/app/js/controllers/cubes.js index 7000581..2d9c032 100644 --- a/webapp/app/js/controllers/cubes.js +++ b/webapp/app/js/controllers/cubes.js @@ -359,35 +359,6 @@ KylinApp.controller('CubesCtrl', function ($scope, $q, $routeParams, $location, }); }; - $scope.isAutoMigrateCubeEnabled = function(){ - return kylinConfig.isAutoMigrateCubeEnabled(); - }; - - $scope.migrateCube = function (cube) { - SweetAlert.swal({ - title: '', - text: "The cube will overwrite the same cube in prod env" + - "\nMigrating cube will elapse a couple of minutes." + - "\nPlease wait.", - type: '', - showCancelButton: true, - confirmButtonColor: '#DD6B55', - confirmButtonText: "Yes", - closeOnConfirm: true - }, function(isConfirm) { - if(isConfirm){ - loadingRequest.show(); - CubeService.autoMigrate({cubeId: cube.name, propName: $scope.projectModel.selectedProject}, {}, function (result) { - loadingRequest.hide(); - MessageBox.successNotify(cube.name + ' migrate successfully!'); - },function(e){ - loadingRequest.hide(); - SweetAlert.swal('Migrate failed!', "Please contact your ADMIN.", 'error'); - }); - } - }); - }; - $scope.startJobSubmit = function (cube) { $scope.metaModel={ diff --git a/webapp/app/js/services/cubes.js b/webapp/app/js/services/cubes.js index 52cb8fe..65a4d5d 100644 --- a/webapp/app/js/services/cubes.js +++ b/webapp/app/js/services/cubes.js @@ -79,7 +79,6 @@ KylinApp.factory('CubeService', ['$resource', function ($resource, config) { } }, optimize: {method: 'PUT', params: {action: 'optimize'}, isArray: false}, - autoMigrate: {method: 'POST', params: {action: 'migrate'}, isArray: false}, lookupRefresh: {method: 'PUT', params: {action: 'refresh_lookup'}, isArray: false}, checkDuplicateCubeName: {method: 'GET', params: {action: 'validate'}, isArray: false} }); diff --git a/webapp/app/js/services/kylinProperties.js b/webapp/app/js/services/kylinProperties.js index 05d0621..05fce98 100644 --- a/webapp/app/js/services/kylinProperties.js +++ b/webapp/app/js/services/kylinProperties.js @@ -167,14 +167,6 @@ KylinApp.service('kylinConfig', function (AdminService, $log) { return angular.isString(_config); } - this.isAutoMigrateCubeEnabled = function(){ - var status = this.getProperty("kylin.tool.auto-migrate-cube.enabled").trim(); - if(status && status =='true'){ - return true; - } - return false; - } - this.getSourceType = function(){ this.sourceType = this.getProperty("kylin.source.default").trim(); if (!this.sourceType) { diff --git a/webapp/app/partials/cubes/cubes.html b/webapp/app/partials/cubes/cubes.html index fd176f7..65ebc87 100644 --- a/webapp/app/partials/cubes/cubes.html +++ b/webapp/app/partials/cubes/cubes.html @@ -102,7 +102,6 @@ <li ng-if="cube.status=='DISABLED' && (userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask))"><a ng-click="startDeleteSegment(cube)">Delete Segment</a></li> <li ng-if="cube.status=='DISABLED' && (userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask))"><a ng-click="purge(cube)">Purge</a></li> <li ng-if="cube.status!='DESCBROKEN' && (userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask))"><a ng-click="cloneCube(cube)">Clone</a></li> - <li ng-if="cube.status=='READY' && isAutoMigrateCubeEnabled() && (userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask)) "><a ng-click="migrateCube(cube)">Migrate</a></li> </ul> <ul ng-if="(userService.hasRole('ROLE_ADMIN') || hasPermission('cube', cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask, permissions.OPERATION.mask)) && cube.streamingV2 && actionLoaded" class="dropdown-menu" role="menu" style="right:0;left:auto;">