diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/WorkerGroupHandleDto.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/WorkerGroupHandleDto.java new file mode 100644 index 0000000000000000000000000000000000000000..b80c1919a2a680d00121ae42451d092faaaa48a3 --- /dev/null +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/WorkerGroupHandleDto.java @@ -0,0 +1,20 @@ +package org.apache.dolphinscheduler.api.dto; + +import org.apache.dolphinscheduler.dao.entity.WorkerGroup; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +@Data +@AllArgsConstructor +public class WorkerGroupHandleDto { + private WorkerGroup workerGroup; + private String workerGroupName; + private Map workerGroupsMap; + private Collection childrenNodes; + private List workerGroups; +} diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkerGroupServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkerGroupServiceImpl.java index fa94add1fc6d7ac0f101e59754b01de77214e857..3f049661d1b845be523c079c79f96500daae7559 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkerGroupServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkerGroupServiceImpl.java @@ -17,9 +17,9 @@ package org.apache.dolphinscheduler.api.service.impl; -import com.facebook.presto.jdbc.internal.guava.base.Strings; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.dolphinscheduler.api.dto.WorkerGroupHandleDto; import org.apache.dolphinscheduler.api.enums.Status; import org.apache.dolphinscheduler.api.service.WorkerGroupService; import org.apache.dolphinscheduler.api.utils.PageInfo; @@ -50,6 +50,8 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import com.facebook.presto.jdbc.internal.guava.base.Strings; + import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKER_GROUP_CREATE; import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKER_GROUP_DELETE; @@ -256,11 +258,6 @@ public class WorkerGroupServiceImpl extends BaseServiceImpl implements WorkerGro List availableWorkerGroupList = workerGroups.stream() .map(WorkerGroup::getName) .collect(Collectors.toList()); - int index = availableWorkerGroupList.indexOf(Constants.DEFAULT_WORKER_GROUP); - if (index > -1) { - availableWorkerGroupList.remove(index); - availableWorkerGroupList.add(0, Constants.DEFAULT_WORKER_GROUP); - } result.put(Constants.DATA_LIST, availableWorkerGroupList); putMsg(result, Status.SUCCESS); return result; @@ -302,8 +299,8 @@ public class WorkerGroupServiceImpl extends BaseServiceImpl implements WorkerGro if (workerGroups.size() != 0) { workerGroupsMap = workerGroups.stream().collect(Collectors.toMap(WorkerGroup::getName, workerGroupItem -> workerGroupItem, (oldWorkerGroup, newWorkerGroup) -> oldWorkerGroup)); } - for (String workerGroup : workerGroupList) { - String workerGroupPath = workerPath + Constants.SINGLE_SLASH + workerGroup; + for (String workerGroupName : workerGroupList) { + String workerGroupPath = workerPath + Constants.SINGLE_SLASH + workerGroupName; Collection childrenNodes = null; try { childrenNodes = registryClient.getChildrenKeys(workerGroupPath); @@ -313,27 +310,22 @@ public class WorkerGroupServiceImpl extends BaseServiceImpl implements WorkerGro if (childrenNodes == null || childrenNodes.isEmpty()) { continue; } - WorkerGroup wg = new WorkerGroup(); - handleAddrList(wg, workerGroup, workerGroupsMap, childrenNodes); - wg.setName(workerGroup); + WorkerGroup workerGroup = new WorkerGroup(); + handleAddrList(new WorkerGroupHandleDto(workerGroup, workerGroupName, workerGroupsMap, childrenNodes, workerGroups)); + workerGroup.setName(workerGroupName); if (isPaging) { String registeredValue = registryClient.get(workerGroupPath + Constants.SINGLE_SLASH + childrenNodes.iterator().next()); String[] rv = registeredValue.split(Constants.COMMA); - wg.setCreateTime(new Date(Long.parseLong(rv[6]))); - wg.setUpdateTime(new Date(Long.parseLong(rv[7]))); - wg.setSystemDefault(true); - if (workerGroupsMap != null && workerGroupsMap.containsKey(workerGroup)) { - wg.setDescription(workerGroupsMap.get(workerGroup).getDescription()); - workerGroups.remove(workerGroupsMap.get(workerGroup)); - } + workerGroup.setCreateTime(new Date(Long.parseLong(rv[6]))); + workerGroup.setUpdateTime(new Date(Long.parseLong(rv[7]))); + workerGroup.setSystemDefault(true); } - workerGroups.add(wg); + workerGroups.add(workerGroup); } return workerGroups; } - - protected void handleAddrList(WorkerGroup wg, String workerGroup, Map workerGroupsMap, Collection childrenNodes) { - wg.setAddrList(String.join(Constants.COMMA, childrenNodes)); + protected void handleAddrList(WorkerGroupHandleDto obj) { + obj.getWorkerGroup().setAddrList(String.join(Constants.COMMA, obj.getChildrenNodes())); } /**