@Override @Transactional(rollbackFor = { Throwable.class }) public void saveAndAdd(final String taskKey, final TaskExec execution) { Task task = taskDAO.find(taskKey); task.add(execution); taskDAO.save(task); }
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_READ + "')") @Override public Pair<Integer, List<ExecTO>> listExecutions( final String key, final int page, final int size, final List<OrderByClause> orderByClauses) { Task task = taskDAO.find(key); if (task == null) { throw new NotFoundException("Task " + key); } Integer count = taskExecDAO.count(key); List<ExecTO> result = taskExecDAO.findAll(task, page, size, orderByClauses).stream(). map(taskExec -> binder.getExecTO(taskExec)).collect(Collectors.toList()); return Pair.of(count, result); }
@Override public void setTaskExecuted(final String taskKey, final boolean executed) { NotificationTask task = taskDAO.find(taskKey); task.setExecuted(executed); taskDAO.save(task); }
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_EXECUTE + "')") @Override public void actionJob(final String key, final JobAction action) { Task task = taskDAO.find(key); if (task == null) { throw new NotFoundException("Task " + key); } doActionJob(JobNamer.getJobKey(task), action); }
@Override public long countExecutionsWithStatus(final String taskKey, final String status) { NotificationTask task = taskDAO.find(taskKey); long count = 0; for (TaskExec taskExec : task.getExecs()) { if (status == null) { if (taskExec.getStatus() == null) { count++; } } else if (status.equals(taskExec.getStatus())) { count++; } } return count; }
final Task task = taskDAO.find(key); return binder.getTaskTO(task, taskUtilsFactory.getInstance(task), false); } catch (Throwable ignore) {
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_DELETE + "')") @Override public List<BatchResponseItem> deleteExecutions( final String key, final Date startedBefore, final Date startedAfter, final Date endedBefore, final Date endedAfter) { Task task = taskDAO.find(key); if (task == null) { throw new NotFoundException("Task " + key); } List<BatchResponseItem> batchResponseItems = new ArrayList<>(); taskExecDAO.findAll(task, startedBefore, startedAfter, endedBefore, endedAfter).forEach(exec -> { BatchResponseItem item = new BatchResponseItem(); item.getHeaders().put(RESTHeaders.RESOURCE_KEY, Arrays.asList(exec.getKey())); batchResponseItems.add(item); try { taskExecDAO.delete(exec); item.setStatus(Response.Status.OK.getStatusCode()); } catch (Exception e) { LOG.error("Error deleting execution {} of task {}", exec.getKey(), key, e); item.setStatus(Response.Status.BAD_REQUEST.getStatusCode()); item.setContent(ExceptionUtils2.getFullStackTrace(e)); } }); return batchResponseItems; }
@Override protected Triple<JobType, String, String> getReference(final JobKey jobKey) { String key = JobNamer.getTaskKeyFromJobName(jobKey.getName()); Task task = taskDAO.find(key); return task == null || !(task instanceof SchedTask) ? null : Triple.of(JobType.TASK, key, binder.buildRefDesc(task)); }
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_READ + "')") @Transactional(readOnly = true) public <T extends TaskTO> T read(final TaskType type, final String key, final boolean details) { Task task = taskDAO.find(key); if (task == null) { throw new NotFoundException("Task " + key); } TaskUtils taskUtils = taskUtilsFactory.getInstance(task); if (type != null && taskUtils.getType() != type) { SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidRequest); sce.getElements().add("Found " + type + ", expected " + taskUtils.getType()); throw sce; } return binder.getTaskTO(task, taskUtilsFactory.getInstance(task), details); }
@Override public TaskExec storeExec(final TaskExec execution) { NotificationTask task = taskDAO.find(execution.getTask().getKey()); task.add(execution); task.setExecuted(true); taskDAO.save(task); return execution; }
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_READ + "')") @Override public JobTO getJob(final String key) { Task task = taskDAO.find(key); if (task == null) { throw new NotFoundException("Task " + key); } JobTO jobTO = null; try { jobTO = getJobTO(JobNamer.getJobKey(task), false); } catch (SchedulerException e) { LOG.error("Problems while retrieving scheduled job {}", JobNamer.getJobKey(task), e); SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Scheduling); sce.getElements().add(e.getMessage()); throw sce; } if (jobTO == null) { throw new NotFoundException("Job for task " + key); } return jobTO; }
throws JobExecutionException { task = taskDAO.find(taskKey); if (task == null) { throw new JobExecutionException("Task " + taskKey + " not found");
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_UPDATE + "')") public <T extends SchedTaskTO> T updateSchedTask(final TaskType type, final SchedTaskTO taskTO) { SchedTask task = taskDAO.find(taskTO.getKey()); if (task == null) { throw new NotFoundException("Task " + taskTO.getKey()); } TaskUtils taskUtils = taskUtilsFactory.getInstance(task); if (taskUtils.getType() != type) { SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidRequest); sce.getElements().add("Found " + type + ", expected " + taskUtils.getType()); throw sce; } binder.updateSchedTask(task, taskTO, taskUtils); task = taskDAO.save(task); try { jobManager.register( task, task.getStartAt(), confDAO.find("tasks.interruptMaxRetries", 1L)); } catch (Exception e) { LOG.error("While registering quartz job for task " + task.getKey(), e); SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Scheduling); sce.getElements().add(e.getMessage()); throw sce; } return binder.getTaskTO(task, taskUtils, false); }
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_DELETE + "')") public <T extends TaskTO> T delete(final TaskType type, final String key) { Task task = taskDAO.find(key); if (task == null) { throw new NotFoundException("Task " + key); } TaskUtils taskUtils = taskUtilsFactory.getInstance(task); if (type != null && taskUtils.getType() != type) { SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidRequest); sce.getElements().add("Found " + type + ", expected " + taskUtils.getType()); throw sce; } T taskToDelete = binder.getTaskTO(task, taskUtils, true); if (TaskType.SCHEDULED == taskUtils.getType() || TaskType.PULL == taskUtils.getType() || TaskType.PUSH == taskUtils.getType()) { jobManager.unregister(task); } taskDAO.delete(task); return taskToDelete; }
task.setOldConnObjectKey(taskInfo.getOldConnObjectKey()); } else { task = taskDAO.find(taskInfo.getKey());
@PreAuthorize("hasRole('" + StandardEntitlement.TASK_EXECUTE + "')") @Override public ExecTO execute(final String key, final Date startAt, final boolean dryRun) { Task task = taskDAO.find(key); if (task == null) { throw new NotFoundException("Task " + key);