You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2020/06/15 02:51:26 UTC
[kylin] 10/15: KYLIN-4488 Revert KYLIN-2999
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 <nj...@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;">