diff --git a/pom.xml b/pom.xml index a04e19b0ae..d378b4d05d 100644 --- a/pom.xml +++ b/pom.xml @@ -116,7 +116,7 @@ 2.1.6 - 1.0.4 + 1.0.6 2.11.0 diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/DlmEnvironment.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/DlmEnvironment.java deleted file mode 100644 index 91374736fb..0000000000 --- a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/DlmEnvironment.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2023 OceanBase. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.oceanbase.odc.service.schedule; - -public interface DlmEnvironment { - - boolean isSysTenantUserRequired(); - -} diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/ScheduleService.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/ScheduleService.java index 1efa729d63..21e6ef69c2 100644 --- a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/ScheduleService.java +++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/ScheduleService.java @@ -88,6 +88,7 @@ import com.oceanbase.odc.service.schedule.model.ScheduleTaskMapper; import com.oceanbase.odc.service.schedule.model.ScheduleTaskResp; import com.oceanbase.odc.service.schedule.model.TriggerConfig; +import com.oceanbase.odc.service.schedule.model.TriggerStrategy; import com.oceanbase.odc.service.task.model.ExecutorInfo; import lombok.extern.slf4j.Slf4j; @@ -302,18 +303,21 @@ public ScheduleTaskResp dataArchiveDelete(Long scheduleId, Long taskId) { throw new IllegalStateException("Delete is not allowed because the data archive job has not succeeded."); } - // TODO throw try { - if (!quartzJobService.checkExists(jobKey)) { - CreateQuartzJobReq req = new CreateQuartzJobReq(); - req.setScheduleId(scheduleId); - req.setType(JobType.DATA_ARCHIVE_DELETE); - DataArchiveClearParameters parameters = new DataArchiveClearParameters(); - parameters.setDataArchiveTaskId(taskId); - req.getJobDataMap().putAll(BeanMap.create(parameters)); - quartzJobService.createJob(req); + if (quartzJobService.checkExists(jobKey)) { + log.info("Data archive delete job exists and start delete job,jobKey={}", jobKey); + quartzJobService.deleteJob(jobKey); } - quartzJobService.triggerJob(jobKey); + CreateQuartzJobReq req = new CreateQuartzJobReq(); + req.setScheduleId(scheduleId); + req.setType(JobType.DATA_ARCHIVE_DELETE); + DataArchiveClearParameters parameters = new DataArchiveClearParameters(); + parameters.setDataArchiveTaskId(taskId); + TriggerConfig triggerConfig = new TriggerConfig(); + triggerConfig.setTriggerStrategy(TriggerStrategy.START_NOW); + req.getJobDataMap().putAll(BeanMap.create(parameters)); + req.setTriggerConfig(triggerConfig); + quartzJobService.createJob(req); } catch (SchedulerException e) { throw new RuntimeException(e); } @@ -337,16 +341,20 @@ public ScheduleTaskResp rollbackTask(Long scheduleId, Long taskId) { } try { - if (!quartzJobService.checkExists(jobKey)) { - CreateQuartzJobReq req = new CreateQuartzJobReq(); - req.setScheduleId(scheduleId); - req.setType(JobType.DATA_ARCHIVE_ROLLBACK); - DataArchiveRollbackParameters parameters = new DataArchiveRollbackParameters(); - parameters.setDataArchiveTaskId(taskId); - req.getJobDataMap().putAll(BeanMap.create(parameters)); - quartzJobService.createJob(req); + if (quartzJobService.checkExists(jobKey)) { + log.info("Data archive rollback job exists and start delete job,jobKey={}", jobKey); + quartzJobService.deleteJob(jobKey); } - quartzJobService.triggerJob(jobKey); + CreateQuartzJobReq req = new CreateQuartzJobReq(); + req.setScheduleId(scheduleId); + req.setType(JobType.DATA_ARCHIVE_ROLLBACK); + DataArchiveRollbackParameters parameters = new DataArchiveRollbackParameters(); + parameters.setDataArchiveTaskId(taskId); + req.getJobDataMap().putAll(BeanMap.create(parameters)); + TriggerConfig triggerConfig = new TriggerConfig(); + triggerConfig.setTriggerStrategy(TriggerStrategy.START_NOW); + req.setTriggerConfig(triggerConfig); + quartzJobService.createJob(req); } catch (SchedulerException e) { throw new RuntimeException(e); } diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataArchivePreprocessor.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataArchivePreprocessor.java index 2e167e4198..0769ccf9d3 100644 --- a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataArchivePreprocessor.java +++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataArchivePreprocessor.java @@ -34,7 +34,6 @@ import com.oceanbase.odc.service.flow.processor.ScheduleTaskPreprocessor; import com.oceanbase.odc.service.iam.auth.AuthenticationFacade; import com.oceanbase.odc.service.plugin.ConnectionPluginUtil; -import com.oceanbase.odc.service.schedule.DlmEnvironment; import com.oceanbase.odc.service.schedule.ScheduleService; import com.oceanbase.odc.service.schedule.model.JobType; import com.oceanbase.odc.service.session.factory.DefaultConnectSessionFactory; @@ -49,10 +48,6 @@ @Slf4j @ScheduleTaskPreprocessor(type = JobType.DATA_ARCHIVE) public class DataArchivePreprocessor extends AbstractDlmJobPreprocessor { - - @Autowired - private DlmEnvironment dlmEnvironment; - @Autowired private AuthenticationFacade authenticationFacade; @@ -75,10 +70,6 @@ public void process(CreateFlowInstanceReq req) { // permission to access it. Database sourceDb = databaseService.detail(dataArchiveParameters.getSourceDatabaseId()); Database targetDb = databaseService.detail(dataArchiveParameters.getTargetDataBaseId()); - if (dlmEnvironment.isSysTenantUserRequired()) { - checkDatasource(sourceDb.getDataSource()); - checkDatasource(targetDb.getDataSource()); - } dataArchiveParameters.setSourceDatabaseName(sourceDb.getName()); dataArchiveParameters.setTargetDatabaseName(targetDb.getName()); dataArchiveParameters.setSourceDataSourceName(sourceDb.getDataSource().getName()); diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataDeletePreprocessor.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataDeletePreprocessor.java index d025949c08..7e4e791c9a 100644 --- a/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataDeletePreprocessor.java +++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/schedule/flowtask/DataDeletePreprocessor.java @@ -29,7 +29,6 @@ import com.oceanbase.odc.service.flow.model.CreateFlowInstanceReq; import com.oceanbase.odc.service.flow.processor.ScheduleTaskPreprocessor; import com.oceanbase.odc.service.iam.auth.AuthenticationFacade; -import com.oceanbase.odc.service.schedule.DlmEnvironment; import com.oceanbase.odc.service.schedule.ScheduleService; import com.oceanbase.odc.service.schedule.model.JobType; import com.oceanbase.odc.service.session.factory.DefaultConnectSessionFactory; @@ -45,9 +44,6 @@ @ScheduleTaskPreprocessor(type = JobType.DATA_DELETE) public class DataDeletePreprocessor extends AbstractDlmJobPreprocessor { - @Autowired - private DlmEnvironment dlmEnvironment; - @Autowired private AuthenticationFacade authenticationFacade; @@ -69,9 +65,6 @@ public void process(CreateFlowInstanceReq req) { // Throw exception when the specified database does not exist or the current user does not have // permission to access it. Database sourceDb = databaseService.detail(dataDeleteParameters.getDatabaseId()); - if (dlmEnvironment.isSysTenantUserRequired()) { - checkDatasource(sourceDb.getDataSource()); - } ConnectionConfig dataSource = sourceDb.getDataSource(); dataSource.setDefaultSchema(sourceDb.getName()); @@ -98,7 +91,7 @@ public void process(CreateFlowInstanceReq req) { if (dataDeleteParameters.getRateLimit().getDataSizeLimit() != null) { limiterConfig.setDataSizeLimit(dataDeleteParameters.getRateLimit().getDataSizeLimit()); } - if (dataDeleteParameters.getRateLimit().getRowLimit() != null) { + if (dataDeleteParameters.getRateLimit().getBatchSize() != null) { limiterConfig.setBatchSize(dataDeleteParameters.getRateLimit().getBatchSize()); } limiterService.createAndBindToOrder(scheduleEntity.getId(), limiterConfig); diff --git a/server/starters/desktop-starter/src/main/java/com/oceanbase/odc/service/schedule/DesktopDlmEnvironment.java b/server/starters/desktop-starter/src/main/java/com/oceanbase/odc/service/schedule/DesktopDlmEnvironment.java deleted file mode 100644 index 4dac5d9670..0000000000 --- a/server/starters/desktop-starter/src/main/java/com/oceanbase/odc/service/schedule/DesktopDlmEnvironment.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2023 OceanBase. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.oceanbase.odc.service.schedule; - -import org.springframework.context.annotation.Profile; -import org.springframework.stereotype.Service; - -import com.oceanbase.odc.core.authority.util.SkipAuthorize; - -@Service -@Profile("clientMode") -@SkipAuthorize("odc internal usage") -public class DesktopDlmEnvironment implements DlmEnvironment { - - @Override - public boolean isSysTenantUserRequired() { - return true; - } - -} diff --git a/server/starters/web-starter/src/main/java/com/oceanbase/odc/service/schedule/WebDlmEnvironment.java b/server/starters/web-starter/src/main/java/com/oceanbase/odc/service/schedule/WebDlmEnvironment.java deleted file mode 100644 index 88f2373ee3..0000000000 --- a/server/starters/web-starter/src/main/java/com/oceanbase/odc/service/schedule/WebDlmEnvironment.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2023 OceanBase. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.oceanbase.odc.service.schedule; - -import org.springframework.context.annotation.Profile; -import org.springframework.stereotype.Service; - -import com.oceanbase.odc.core.authority.util.SkipAuthorize; - -@Service -@Profile("alipay") -@SkipAuthorize("odc internal usage") -public class WebDlmEnvironment implements DlmEnvironment { - - @Override - public boolean isSysTenantUserRequired() { - return true; - } - -}