[Improvement-18286][ApiServer] Remove the default workerGroup from the frontend and add backend validation for workerGroup#18293
Conversation
…dation for workerGroup
| * @param workerGroups worker group names to validate | ||
| * @throws ServiceException if any worker group is not assigned | ||
| */ | ||
| void validateWorkerGroupsAssignedToProject(Long projectCode, List<String> workerGroups); |
There was a problem hiding this comment.
duplicated with WorkerGroupValidator
There was a problem hiding this comment.
duplicated with
WorkerGroupValidator
Okay, I will unify the logic.
| private void validateTaskWorkerGroups(long projectCode, List<TaskDefinitionLog> taskDefinitionLogs) { | ||
| if (CollectionUtils.isEmpty(taskDefinitionLogs)) { | ||
| return; | ||
| } | ||
|
|
||
| List<String> workerGroups = taskDefinitionLogs.stream() | ||
| .map(TaskDefinitionLog::getWorkerGroup) | ||
| .filter(StringUtils::isNotEmpty) | ||
| .distinct() | ||
| .collect(Collectors.toList()); | ||
|
|
||
| projectWorkerGroupRelationService.validateWorkerGroupsAssignedToProject(projectCode, workerGroups); | ||
| } |
There was a problem hiding this comment.
This kind of code should put into WorkerGroupValidator
There was a problem hiding this comment.
This kind of code should put into
WorkerGroupValidator
Okay, I will unify the logic.
| .selectOne(new QueryWrapper<ProjectPreference>().lambda().eq(ProjectPreference::getProjectCode, | ||
| projectCode)); | ||
|
|
||
| // Validate workerGroup is assigned to project |
There was a problem hiding this comment.
| // Validate workerGroup is assigned to project |
| JSONUtils.parseObject(preferences, new TypeReference<Map<String, Object>>() { | ||
| }); | ||
| if (preferenceMap != null) { | ||
| Object workerGroupObj = preferenceMap.get("workerGroup"); |
There was a problem hiding this comment.
Using entity instead of hard coding.
There was a problem hiding this comment.
Using entity instead of hard coding.
good idea
| } | ||
| } | ||
| } catch (Exception e) { | ||
| log.warn("Failed to parse preferences JSON: {}", preferences, e); |
There was a problem hiding this comment.
throw
ServiceExceptionhere.
ok
| scheduleObj.setReleaseState(ReleaseState.OFFLINE); | ||
| scheduleObj.setWorkflowInstancePriority(workflowInstancePriority); | ||
|
|
||
| // Validate workerGroup |
There was a problem hiding this comment.
| // Validate workerGroup |
| schedule.setFailureStrategy(failureStrategy); | ||
| } | ||
|
|
||
| // Validate workerGroup |
There was a problem hiding this comment.
| // Validate workerGroup |
|
|
||
| startParamListValidator.validate(triggerWorkflowDTO.getStartParamList()); | ||
|
|
||
| // Validate workerGroup using WorkerGroupValidator |
There was a problem hiding this comment.
| // Validate workerGroup using WorkerGroupValidator |
| /** | ||
| * Validation context for workerGroup validation | ||
| */ | ||
| @Data | ||
| @Builder | ||
| @NoArgsConstructor | ||
| @AllArgsConstructor | ||
| public class WorkerGroupValidationContext { | ||
|
|
||
| /** | ||
| * The workerGroup to validate | ||
| */ | ||
| private String workerGroup; | ||
|
|
||
| /** | ||
| * The project code to check against | ||
| */ | ||
| private long projectCode; |
There was a problem hiding this comment.
Remove all unnessnary comment.
There was a problem hiding this comment.
Remove all unnessnary comment.
ok
Was this PR generated or assisted by AI?
Yes, Modify the frontend code using AI, then test and verify locally.
Purpose of the pull request
close #18286
Brief change log
Remove the default workerGroup from the frontend and add backend validation for workerGroup
Verify this pull request
This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(or)
Pull Request Notice
Pull Request Notice
If your pull request contains incompatible change, you should also add it to
docs/docs/en/guide/upgrade/incompatible.md