Skip to content

Commit c9f894f

Browse files
authored
Merge branch 'dev' into dsip_94
2 parents 45e3606 + 04af57c commit c9f894f

File tree

18 files changed

+197
-141
lines changed

18 files changed

+197
-141
lines changed

.github/workflows/cluster-test/mysql_with_mysql_registry/running_test.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,22 @@ do
4646

4747
if [[ $i -eq $TIMEOUT ]];then
4848
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
49-
cat ~/ds_test/master-server/logs/dolphinscheduler-master.log
49+
cat ~/ds_test/master-server/logs/*.log
5050
cat ~/ds_test/master-server/logs/*.out
5151
echo "master start health check failed"
5252
fi
5353
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
54-
cat ~/ds_test/worker-server/logs/dolphinscheduler-master.log
54+
cat ~/ds_test/worker-server/logs/*.log
5555
cat ~/ds_test/worker-server/logs/*.out
5656
echo "worker start health check failed"
5757
fi
5858
if [[ $API_HTTP_STATUS -ne 200 ]]; then
59-
cat ~/ds_test/api-server/logs/dolphinscheduler-master.log
59+
cat ~/ds_test/api-server/logs/*.log
6060
cat ~/ds_test/api-server/logs/*.out
6161
echo "api start health check failed"
6262
fi
6363
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
64-
cat ~/ds_test/alert-server/logs/dolphinscheduler-master.log
64+
cat ~/ds_test/alert-server/logs/*.log
6565
cat ~/ds_test/alert-server/logs/*.out
6666
echo "alert start health check failed"
6767
fi

.github/workflows/cluster-test/mysql_with_zookeeper_registry/running_test.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,22 @@ do
4646

4747
if [[ $i -eq $TIMEOUT ]];then
4848
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
49-
cat ~/ds_test/master-server/logs/dolphinscheduler-master.log
49+
cat ~/ds_test/master-server/logs/*.log
5050
cat ~/ds_test/master-server/logs/*.out
5151
echo "master start health check failed"
5252
fi
5353
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
54-
cat ~/ds_test/worker-server/logs/dolphinscheduler-master.log
54+
cat ~/ds_test/worker-server/logs/*.log
5555
cat ~/ds_test/worker-server/logs/*.out
5656
echo "worker start health check failed"
5757
fi
5858
if [[ $API_HTTP_STATUS -ne 200 ]]; then
59-
cat ~/ds_test/api-server/logs/dolphinscheduler-master.log
59+
cat ~/ds_test/api-server/logs/*.log
6060
cat ~/ds_test/api-server/logs/*.out
6161
echo "api start health check failed"
6262
fi
6363
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
64-
cat ~/ds_test/alert-server/logs/dolphinscheduler-master.log
64+
cat ~/ds_test/alert-server/logs/*.log
6565
cat ~/ds_test/alert-server/logs/*.out
6666
echo "alert start health check failed"
6767
fi

.github/workflows/cluster-test/postgresql_with_postgresql_registry/running_test.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,22 @@ do
4646

4747
if [[ $i -eq $TIMEOUT ]];then
4848
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
49-
cat ~/ds_test/master-server/logs/dolphinscheduler-master.log
49+
cat ~/ds_test/master-server/logs/*.log
5050
cat ~/ds_test/master-server/logs/*.out
5151
echo "master start health check failed"
5252
fi
5353
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
54-
cat ~/ds_test/worker-server/logs/dolphinscheduler-master.log
54+
cat ~/ds_test/worker-server/logs/*.log
5555
cat ~/ds_test/worker-server/logs/*.out
5656
echo "worker start health check failed"
5757
fi
5858
if [[ $API_HTTP_STATUS -ne 200 ]]; then
59-
cat ~/ds_test/api-server/logs/dolphinscheduler-master.log
59+
cat ~/ds_test/api-server/logs/*.log
6060
cat ~/ds_test/api-server/logs/*.out
6161
echo "api start health check failed"
6262
fi
6363
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
64-
cat ~/ds_test/alert-server/logs/dolphinscheduler-master.log
64+
cat ~/ds_test/alert-server/logs/*.log
6565
cat ~/ds_test/alert-server/logs/*.out
6666
echo "alert start health check failed"
6767
fi

.github/workflows/cluster-test/postgresql_with_zookeeper_registry/running_test.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,22 @@ do
4646

4747
if [[ $i -eq $TIMEOUT ]];then
4848
if [[ $MASTER_HTTP_STATUS -ne 200 ]];then
49-
cat ~/ds_test/master-server/logs/dolphinscheduler-master.log
49+
cat ~/ds_test/master-server/logs/*.log
5050
cat ~/ds_test/master-server/logs/*.out
5151
echo "master start health check failed"
5252
fi
5353
if [[ $WORKER_HTTP_STATUS -ne 200 ]]; then
54-
cat ~/ds_test/worker-server/logs/dolphinscheduler-master.log
54+
cat ~/ds_test/worker-server/logs/*.log
5555
cat ~/ds_test/worker-server/logs/*.out
5656
echo "worker start health check failed"
5757
fi
5858
if [[ $API_HTTP_STATUS -ne 200 ]]; then
59-
cat ~/ds_test/api-server/logs/dolphinscheduler-master.log
59+
cat ~/ds_test/api-server/logs/*.log
6060
cat ~/ds_test/api-server/logs/*.out
6161
echo "api start health check failed"
6262
fi
6363
if [[ $ALERT_HTTP_STATUS -ne 200 ]]; then
64-
cat ~/ds_test/alert-server/logs/dolphinscheduler-master.log
64+
cat ~/ds_test/alert-server/logs/*.log
6565
cat ~/ds_test/alert-server/logs/*.out
6666
echo "alert start health check failed"
6767
fi

.github/workflows/docs.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ jobs:
108108
needs:
109109
- style
110110
- img-check
111-
- dead-link
112111
if: always()
113112
steps:
114113
- name: Status

docs/docs/en/guide/installation/registry-plugins/jdbc.md

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,13 @@ registry:
3838
heartbeat-refresh-interval: 3s
3939
# Once the client's heartbeat is not refresh in this time, the server will consider the client is offline.
4040
session-timeout: 60s
41-
# The hikari configuration, default will use the same datasource pool as DolphinScheduler.
42-
hikari-config:
43-
jdbc-url: jdbc:mysql://127.0.0.1:3306/dolphinscheduler
44-
username: root
45-
password: root
46-
maximum-pool-size: 5
47-
connection-timeout: 9000
48-
idle-timeout: 600000
4941
```
5042

51-
## Use different database configuration for jdbc registry center
43+
## Set DataSource for worker
5244

53-
You need to set the registry properties in master/worker/api's application.yml
45+
Since worker server doesn't contain datasource, so you need to config datasource for worker.
46+
47+
You need to set the registry hikari-config properties at worker's application.yml
5448

5549
### Use Mysql as registry center
5650

docs/docs/en/guide/upgrade/incompatible.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,6 @@ This document records the incompatible updates between each version. You need to
3636

3737
* Renamed the publicKey field to privateKey in the SSH connection parameters under the datasource configuration. ([#17666])(https://github.com/apache/dolphinscheduler/pull/17666)
3838
* Add table t_ds_serial_command. ([#17531])(https://github.com/apache/dolphinscheduler/pull/17531)
39+
* Remove the default value of `python-gateway.auth-token` at `api-server/application.yaml`. ([#17801])(https://github.com/apache/dolphinscheduler/pull/17801)
3940
* Remove the `Pytorch` from the `Task Plugin` ([#17808])(https://github.com/apache/dolphinscheduler/pull/17808)
4041

docs/docs/zh/guide/installation/registry-plugins/jdbc.md

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,11 @@ registry:
3232
heartbeat-refresh-interval: 3s
3333
# Once the client's heartbeat is not refresh in this time, the server will consider the client is offline.
3434
session-timeout: 60s
35-
# The hikari configuration, default will use the same datasource pool as DolphinScheduler.
36-
hikari-config:
37-
jdbc-url: jdbc:mysql://127.0.0.1:3306/dolphinscheduler
38-
username: root
39-
password: root
40-
maximum-pool-size: 5
41-
connection-timeout: 9000
42-
idle-timeout: 600000
4335
```
4436

45-
## 对 JDBC 注册中心使用不同的数据库配置
37+
## 为 worker 配置数据源
4638

47-
需要在 master/worker/api 的 application.yml 中设置属性
39+
由于Worker服务默认不包含数据源,因此你需要在 worker 的 application.yml 中为注册中心设置数据源属性
4840

4941
### 使用 MySQL 作为注册中心
5042

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/configuration/ApiConfig.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@
1717

1818
package org.apache.dolphinscheduler.api.configuration;
1919

20+
import org.apache.commons.lang3.StringUtils;
21+
2022
import java.util.HashMap;
2123
import java.util.Map;
2224

2325
import lombok.AllArgsConstructor;
2426
import lombok.Data;
2527
import lombok.NoArgsConstructor;
28+
import lombok.ToString;
2629
import lombok.extern.slf4j.Slf4j;
2730

2831
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -53,9 +56,16 @@ public boolean supports(Class<?> clazz) {
5356

5457
@Override
5558
public void validate(Object target, Errors errors) {
59+
validatePythonGateway(errors);
5660
printConfig();
5761
}
5862

63+
private void validatePythonGateway(Errors errors) {
64+
if (pythonGateway.isEnabled() && StringUtils.isEmpty(pythonGateway.getAuthToken())) {
65+
errors.rejectValue("pythonGateway.auth-token", null, "should not be empty when enabled is true");
66+
}
67+
}
68+
5969
private void printConfig() {
6070
log.info("API config: baseUrl -> {} ", baseUrl);
6171
log.info("API config: uiUrl -> {} ", uiUrl);
@@ -76,12 +86,13 @@ public static class TrafficConfiguration {
7686
private Map<String, Integer> customizeTenantQpsRate = new HashMap<>();
7787
}
7888

89+
@ToString(exclude = "authToken")
7990
@Data
8091
@NoArgsConstructor
8192
@AllArgsConstructor
8293
public static class PythonGatewayConfiguration {
8394

84-
private boolean enabled = true;
95+
private boolean enabled = false;
8596
private String gatewayServerAddress = "0.0.0.0";
8697
private int gatewayServerPort = 25333;
8798
private String pythonAddress = "127.0.0.1";

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectWorkerGroupRelationServiceImpl.java

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,30 @@ public Result assignWorkerGroupsToProject(User loginUser, Long projectCode, List
9494
return result;
9595
}
9696

97+
Project project = projectMapper.queryByCode(projectCode);
98+
if (Objects.isNull(project)) {
99+
putMsg(result, Status.PROJECT_NOT_EXIST);
100+
return result;
101+
}
102+
103+
/*
104+
* Todo : For modification operations on projects, we should acquire project row locks. All project-related
105+
* operations and modification/creation actions for workflows/task definitions within the project require
106+
* acquiring row locks first
107+
*/
97108
if (CollectionUtils.isEmpty(workerGroups)) {
109+
Set<String> projectWorkerGroupNames =
110+
projectWorkerGroupDao.queryAssignedWorkerGroupNamesByProjectCode(projectCode);
111+
if (CollectionUtils.isNotEmpty(projectWorkerGroupNames)) {
112+
Set<String> usedWorkerGroups = getAllUsedWorkerGroups(project);
113+
if (CollectionUtils.isNotEmpty(usedWorkerGroups)) {
114+
Set<String> usedInProject = SetUtils.intersection(usedWorkerGroups, projectWorkerGroupNames);
115+
if (!usedInProject.isEmpty()) {
116+
throw new ServiceException(Status.USED_WORKER_GROUP_EXISTS, usedInProject);
117+
}
118+
}
119+
}
120+
98121
boolean deleted = projectWorkerGroupDao.deleteByProjectCode(projectCode);
99122
if (deleted) {
100123
putMsg(result, Status.SUCCESS);
@@ -104,12 +127,6 @@ public Result assignWorkerGroupsToProject(User loginUser, Long projectCode, List
104127
return result;
105128
}
106129

107-
Project project = projectMapper.queryByCode(projectCode);
108-
if (Objects.isNull(project)) {
109-
putMsg(result, Status.PROJECT_NOT_EXIST);
110-
return result;
111-
}
112-
113130
Set<String> allWorkerGroupNames = new HashSet<>(workerGroupDao.queryAllWorkerGroupNames());
114131
workerGroupService.getConfigWorkerGroupPageDetail().forEach(
115132
workerGroupPageDetail -> allWorkerGroupNames.add(workerGroupPageDetail.getName()));
@@ -131,9 +148,11 @@ public Result assignWorkerGroupsToProject(User loginUser, Long projectCode, List
131148

132149
if (CollectionUtils.isNotEmpty(needDeletedWorkerGroups)) {
133150
Set<String> usedWorkerGroups = getAllUsedWorkerGroups(project);
134-
if (CollectionUtils.isNotEmpty(usedWorkerGroups) && usedWorkerGroups.containsAll(needDeletedWorkerGroups)) {
135-
throw new ServiceException(Status.USED_WORKER_GROUP_EXISTS,
136-
SetUtils.intersection(usedWorkerGroups, needDeletedWorkerGroups).toSet());
151+
if (CollectionUtils.isNotEmpty(usedWorkerGroups) && CollectionUtils.isNotEmpty(needDeletedWorkerGroups)) {
152+
Set<String> shouldNotDelete = SetUtils.intersection(usedWorkerGroups, needDeletedWorkerGroups);
153+
if (CollectionUtils.isNotEmpty(shouldNotDelete)) {
154+
throw new ServiceException(Status.USED_WORKER_GROUP_EXISTS, shouldNotDelete);
155+
}
137156
}
138157
boolean deleted =
139158
projectWorkerGroupDao.deleteByProjectCodeAndWorkerGroups(projectCode,
@@ -147,6 +166,7 @@ public Result assignWorkerGroupsToProject(User loginUser, Long projectCode, List
147166
throw new ServiceException(Status.ASSIGN_WORKER_GROUP_TO_PROJECT_ERROR);
148167
}
149168
}
169+
150170
Set<String> needAssignedWorkerGroups =
151171
SetUtils.difference(unauthorizedWorkerGroupNames, projectWorkerGroupNames);
152172
if (CollectionUtils.isNotEmpty(needAssignedWorkerGroups)) {

0 commit comments

Comments
 (0)