Merge branch 'v1.9' into dev

This commit is contained in:
taojinlong 2022-04-05 17:55:50 +08:00
commit 00c3d57288
7 changed files with 43 additions and 26 deletions

View File

@ -43,8 +43,8 @@ public class KettleController {
@ApiIgnore
@PostMapping("validate")
public void validate(@RequestBody KettleDTO kettleDTO) throws Exception{
kettleService.validate(kettleDTO);
public ResultHolder validate(@RequestBody KettleDTO kettleDTO) throws Exception{
return kettleService.validate(kettleDTO);
}
@RequiresPermissions("sysparam:read")

View File

@ -19,8 +19,7 @@ public class DataSourceInitStartListener implements ApplicationListener<Applicat
@Override
public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
datasourceService.initAllDataSourceConnectionPool();
dataSetTableService.updateDatasetTableStatus();
// dataSetTableService.updateDatasetTableStatus();
}

View File

@ -2220,10 +2220,11 @@ public class DataSetTableService {
.filter(qrtzSchedulerState -> qrtzSchedulerState.getLastCheckinTime()
+ qrtzSchedulerState.getCheckinInterval() + 1000 > utilMapper.currentTimestamp())
.map(QrtzSchedulerStateKey::getInstanceName).collect(Collectors.toList());
List<DatasetTable> jobStoppeddDatasetTables = new ArrayList<>();
DatasetTableExample example = new DatasetTableExample();
example.createCriteria().andSyncStatusEqualTo(JobStatus.Underway.name());
List<DatasetTable> jobStoppeddDatasetTables = new ArrayList<>();
datasetTableMapper.selectByExample(example).forEach(datasetTable -> {
if (StringUtils.isEmpty(datasetTable.getQrtzInstance()) || !activeQrtzInstances.contains(
datasetTable.getQrtzInstance().substring(0, datasetTable.getQrtzInstance().length() - 13))) {
@ -2235,21 +2236,25 @@ public class DataSetTableService {
return;
}
//Task
DatasetTableTaskExample datasetTableTaskExample = new DatasetTableTaskExample();
DatasetTableTaskExample.Criteria criteria = datasetTableTaskExample.createCriteria();
criteria.andTableIdIn(jobStoppeddDatasetTables.stream().map(DatasetTable::getId).collect(Collectors.toList())).andLastExecStatusEqualTo(JobStatus.Underway.name());
List<DatasetTableTask> datasetTableTasks = dataSetTableTaskService.list(datasetTableTaskExample);
if (CollectionUtils.isEmpty(datasetTableTasks)) {
return;
}
dataSetTableTaskService.updateTaskStatus(datasetTableTasks, JobStatus.Error);
//DatasetTable
DatasetTable record = new DatasetTable();
record.setSyncStatus(JobStatus.Error.name());
example.clear();
example.createCriteria().andSyncStatusEqualTo(JobStatus.Underway.name())
.andIdIn(jobStoppeddDatasetTables.stream().map(DatasetTable::getId).collect(Collectors.toList()));
.andIdIn(datasetTableTasks.stream().map(DatasetTableTask::getTableId).collect(Collectors.toList()));
datasetTableMapper.updateByExampleSelective(record, example);
//Task
DatasetTableTaskExample datasetTableTaskExample = new DatasetTableTaskExample();
DatasetTableTaskExample.Criteria criteria = datasetTableTaskExample.createCriteria();
criteria.andTableIdIn(jobStoppeddDatasetTables.stream().map(DatasetTable::getId).collect(Collectors.toList())).andStatusEqualTo(JobStatus.Underway.name());
List<DatasetTableTask> datasetTableTasks = dataSetTableTaskService.list(datasetTableTaskExample);
dataSetTableTaskService.updateTaskStatus(datasetTableTasks, JobStatus.Error);
//TaskLog
DatasetTableTaskLog datasetTableTaskLog = new DatasetTableTaskLog();
datasetTableTaskLog.setStatus(JobStatus.Error.name());
@ -2257,13 +2262,13 @@ public class DataSetTableService {
DatasetTableTaskLogExample datasetTableTaskLogExample = new DatasetTableTaskLogExample();
datasetTableTaskLogExample.createCriteria().andStatusEqualTo(JobStatus.Underway.name())
.andTableIdIn(jobStoppeddDatasetTables.stream().map(DatasetTable::getId).collect(Collectors.toList()));
.andTableIdIn(datasetTableTasks.stream().map(DatasetTableTask::getTableId).collect(Collectors.toList()));
datasetTableTaskLogMapper.updateByExampleSelective(datasetTableTaskLog, datasetTableTaskLogExample);
for (DatasetTable jobStoppeddDatasetTable : jobStoppeddDatasetTables) {
extractDataService.deleteFile("all_scope", jobStoppeddDatasetTable.getId());
extractDataService.deleteFile("incremental_add", jobStoppeddDatasetTable.getId());
extractDataService.deleteFile("incremental_delete", jobStoppeddDatasetTable.getId());
for (DatasetTableTask datasetTableTask : datasetTableTasks) {
extractDataService.deleteFile("all_scope", datasetTableTask.getTableId());
extractDataService.deleteFile("incremental_add", datasetTableTask.getTableId());
extractDataService.deleteFile("incremental_delete", datasetTableTask.getTableId());
}
}

View File

@ -60,12 +60,18 @@ public class KettleService {
deEngineMapper.deleteByPrimaryKey(id);
}
public void validate(KettleDTO kettleDTO) throws Exception {
public ResultHolder validate(KettleDTO kettleDTO) throws Exception {
HttpClientConfig httpClientConfig = new HttpClientConfig();
String authValue = "Basic " + Base64.getUrlEncoder().encodeToString((kettleDTO.getUser()
+ ":" + kettleDTO.getPasswd()).getBytes());
httpClientConfig.addHeader("Authorization", authValue);
String response = HttpClientUtil.get("http://" + kettleDTO.getCarte() + ":" + kettleDTO.getPort() + "/kettle/status/", httpClientConfig);
try {
String response = HttpClientUtil.get("http://" + kettleDTO.getCarte() + ":" + kettleDTO.getPort() + "/kettle/status/", httpClientConfig);
return ResultHolder.error("Kettle is valid.");
}catch (Exception e){
return ResultHolder.error("Kettle is invalid: " + e.getMessage());
}
}
public ResultHolder validate(String id) {
@ -116,7 +122,7 @@ public class KettleService {
remoteSlaveServer.setHostname(kettleDTO.getCarte());
remoteSlaveServer.setPort(kettleDTO.getPort());
remoteSlaveServer.setUsername(kettleDTO.getUser());
remoteSlaveServer.setPort(kettleDTO.getPasswd());
remoteSlaveServer.setPassword(kettleDTO.getPasswd());
}
return remoteSlaveServer;
}

View File

@ -31,7 +31,7 @@ export function save(data) {
export function deleteKettle(id) {
return request({
url: '/delete/' + id,
url: '/kettle/delete/' + id,
method: 'delete',
loading: true
})

View File

@ -46,7 +46,7 @@
</el-row>
<el-row>
<el-col>
<el-form-item :label="$t('datasource.http_port')" prop="configuration.port">
<el-form-item :label="$t('datasource.http_port')" prop="configuration.httpPort">
<el-input v-model="form.configuration.httpPort" autocomplete="off" type="number" min="0"/>
</el-form-item>
</el-col>
@ -156,6 +156,13 @@ export default {
trigger: ['change', 'blur']
}
],
'configuration.httpPort': [
{
required: true,
message: this.$t('datasource.please_input_port'),
trigger: ['change', 'blur']
}
],
'configuration.dataBase': [
{
required: true,
@ -212,7 +219,7 @@ export default {
this.show = false
},
save() {
if (this.form.configuration.dataSourceType === 'jdbc' && this.form.configuration.port <= 0) {
if (this.form.configuration.dataSourceType === 'jdbc' && (this.form.configuration.port <= 0 || this.form.configuration.httpPort <= 0)) {
this.$message.error(i18n.t('datasource.port_no_less_then_0'))
return
}
@ -256,7 +263,7 @@ export default {
this.$message.error(i18n.t('datasource.please_choose_schema'))
return
}
if (this.form.configuration.dataSourceType === 'jdbc' && this.form.configuration.port <= 0) {
if (this.form.configuration.dataSourceType === 'jdbc' && (this.form.configuration.port <= 0 || this.form.configuration.httpPort <= 0)) {
this.$message.error(i18n.t('datasource.port_no_less_then_0'))
return
}

View File

@ -118,7 +118,7 @@ export default {
}],
'configuration.passwd': [{
required: true,
message: this.$t('dcommons.required'),
message: this.$t('commons.required'),
trigger: 'blur'
}]
}