@Override public Response create(final TaskType type, final SchedTaskTO taskTO) { SchedTaskTO createdTask; if (taskTO != null) { createdTask = logic.createSchedTask(type, taskTO); } else { throw new BadRequestException(); } URI location = uriInfo.getAbsolutePathBuilder().path(createdTask.getKey()).build(); return Response.created(location). header(RESTHeaders.RESOURCE_KEY, createdTask.getKey()). build(); }
@Override public void onClick(final AjaxRequestTarget target, final T ignore) { SchedTaskDirectoryPanel.this.getTogglePanel().close(target); startAt.setExecutionDetail(model.getObject().getKey(), model.getObject().getName(), target); startAt.toggle(target, true); } }, ActionLink.ActionType.EXECUTE, StandardEntitlement.TASK_EXECUTE);
@Override public void onClick(final AjaxRequestTarget target, final T ignore) { SchedTaskDirectoryPanel.this.getTogglePanel().close(target); send(SchedTaskDirectoryPanel.this, Broadcast.EXACT, new AjaxWizard.EditItemActionEvent<>( restClient.readTask(taskType, model.getObject().getKey()), target).setResourceModel( new StringResourceModel("inner.task.edit", SchedTaskDirectoryPanel.this, Model.of(Pair.of( ActionLink.ActionType.EDIT, model.getObject()))))); } }, ActionLink.ActionType.EDIT, StandardEntitlement.TASK_UPDATE);
@Override public void onClick(final AjaxRequestTarget target, final T ignore) { try { restClient.delete(taskType, taskTO.getKey()); SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED)); target.add(container); SchedTaskDirectoryPanel.this.getTogglePanel().close(target); } catch (SyncopeClientException e) { SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage()) ? e.getClass().getName() : e.getMessage()); LOG.error("While deleting propagation task {}", taskTO.getKey(), e); } ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); } }, ActionLink.ActionType.DELETE, StandardEntitlement.TASK_DELETE, true);
@Override protected Serializable onApplyInternal(final SchedTaskTO modelObject) { if (modelObject instanceof PushTaskTO && wrapper != null) { wrapper.fillFilterConditions(); } modelObject.setCronExpression(crontabPanel.getCronExpression()); if (modelObject.getKey() == null) { taskRestClient.create(type, modelObject); } else { taskRestClient.update(type, modelObject); } return modelObject; }
@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); }