private void saveStandardTaskDefinition(TaskDefinition taskDefinition) { String appName = taskDefinition.getRegisteredAppName(); if (registry.find(appName, ApplicationType.task) == null) { throw new NoSuchAppRegistrationException(appName, ApplicationType.task); } if (taskDefinitionRepository.existsById(taskDefinition.getTaskName())) { throw new DuplicateTaskException(String.format( "Cannot register task %s because another one has already " + "been registered with the same name", taskDefinition.getTaskName())); } taskDefinitionRepository.save(taskDefinition); } }
@Override public void deleteTaskDefinition(String name) { TaskDefinition taskDefinition = this.taskDefinitionRepository.findById(name) .orElseThrow(() -> new NoSuchTaskDefinitionException(name)); deleteTaskDefinition(taskDefinition); auditRecordService.populateAndSaveAuditRecord( AuditOperationType.TASK, AuditActionType.DELETE, taskDefinition.getTaskName(), this.argumentSanitizer.sanitizeTaskDsl(taskDefinition)); }
@Override public void deleteAll() { Iterable<TaskDefinition> allTaskDefinition = this.taskDefinitionRepository.findAll(); for (TaskDefinition taskDefinition : allTaskDefinition) { deleteTaskDefinition(taskDefinition); auditRecordService.populateAndSaveAuditRecord( AuditOperationType.TASK, AuditActionType.DELETE, taskDefinition.getTaskName(), this.argumentSanitizer.sanitizeTaskDsl(taskDefinition)); } }
private void destroyTask(TaskDefinition taskDefinition) { taskDefinitionRepository.deleteById(taskDefinition.getName()); TaskDeployment taskDeployment = this.taskDeploymentRepository.findTopByTaskDefinitionNameOrderByCreatedOnAsc(taskDefinition.getTaskName()); if (taskDeployment != null) { Launcher launcher = launcherRepository.findByName(taskDeployment.getPlatformName()); if (launcher != null) { TaskLauncher taskLauncher = launcher.getTaskLauncher(); taskLauncher.destroy(taskDefinition.getName()); } } else { logger.info("TaskLauncher.destroy not invoked for task " + taskDefinition.getTaskName() + ". Did not find a previously launched task to destroy."); } } }
private void deleteTaskDefinition(TaskDefinition taskDefinition) { TaskParser taskParser = new TaskParser(taskDefinition.getName(), taskDefinition.getDslText(), true, true); TaskNode taskNode = taskParser.parse(); // if composed-task-runner definition then destroy all child tasks associated with it. if (taskNode.isComposed()) { String childTaskPrefix = TaskNode.getTaskPrefix(taskDefinition.getTaskName()); // destroy composed child tasks taskNode.getTaskApps().forEach(task -> { String childName = task.getName(); if (task.getLabel() != null) { childName = task.getLabel(); } destroyChildTask(childTaskPrefix + childName); }); } // destroy normal task or composed parent task destroyPrimaryTask(taskDefinition.getTaskName()); }