@Override public ExecTO getExecTO(final TaskExec execution) { ExecTO execTO = new ExecTO(); execTO.setKey(execution.getKey()); execTO.setStatus(execution.getStatus()); execTO.setMessage(execution.getMessage()); execTO.setStart(execution.getStart()); execTO.setEnd(execution.getEnd()); if (execution.getTask() != null && execution.getTask().getKey() != null) { execTO.setJobType(JobType.TASK); execTO.setRefKey(execution.getTask().getKey()); execTO.setRefDesc(buildRefDesc(execution.getTask())); } return execTO; }
execution.setStart(new Date()); execution.setTask(task); execution.setMessage(doExecute(dryRun)); execution.setStatus(TaskJob.Status.SUCCESS.name()); result = AuditElements.Result.SUCCESS; } catch (JobExecutionException e) { result = AuditElements.Result.FAILURE; execution.setMessage(ExceptionUtils2.getFullStackTrace(e)); execution.setStatus(TaskJob.Status.FAILURE.name()); execution.setEnd(new Date());
private boolean hasToBeRegistered(final TaskExec execution) { NotificationTask task = (NotificationTask) execution.getTask(); // True if either failed and failures have to be registered, or if ALL // has to be registered. return (NotificationJob.Status.valueOf(execution.getStatus()) == NotificationJob.Status.NOT_SENT && task.getTraceLevel().ordinal() >= TraceLevel.FAILURES.ordinal()) || task.getTraceLevel() == TraceLevel.ALL; }
@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; }
try { execution = newPropagationTaskCallable(task, reporter).call(); execStatus = ExecStatus.valueOf(execution.getStatus()); } catch (Exception e) { LOG.error("Unexpected exception", e); throw new PropagationException(task.getResource(), execution == null ? null : execution.getMessage());
@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; }
execution.getTask().getKey(), NotificationJob.Status.NOT_SENT.name()); execution.getTask(), failedExecutionsCount, notificationManager.getMaxRetries()); notificationManager.setTaskExecuted(execution.getTask().getKey(), false); null, execution, "Notification task " + execution.getTask().getKey() + " will be retried"); } else { LOG.error("Maximum number of retries reached for task {} - giving up", execution.getTask()); null, execution, "Giving up retries on notification task " + execution.getTask().getKey());
public TaskExec executeSingle(final NotificationTask task) { TaskExec execution = entityFactory.newEntity(TaskExec.class); execution.setTask(task); execution.setStart(new Date()); LOG.error(message); execution.setStatus(NotificationJob.Status.NOT_SENT.name()); retryPossible = false; execution.setMessage(message); execution.setStatus(NotificationJob.Status.SENT.name()); execution.setMessage(report.toString()); execution.setStatus(NotificationJob.Status.NOT_SENT.name()); if (task.getTraceLevel().ordinal() >= TraceLevel.FAILURES.ordinal()) { execution.setMessage(ExceptionUtils2.getFullStackTrace(e)); execution.setEnd(new Date()); execution = notificationManager.storeExec(execution); if (retryPossible && (NotificationJob.Status.valueOf(execution.getStatus()) == NotificationJob.Status.NOT_SENT)) { notificationManager.setTaskExecuted(execution.getTask().getKey(), true);
@Override protected boolean hasToBeRegistered(final TaskExec execution) { final ProvisioningTask provTask = (ProvisioningTask) task; // True if either failed and failures have to be registered, or if ALL has to be registered. return (TaskJob.Status.valueOf(execution.getStatus()) == TaskJob.Status.FAILURE && provTask.getResource().getProvisioningTraceLevel().ordinal() >= TraceLevel.FAILURES.ordinal()) || provTask.getResource().getProvisioningTraceLevel().ordinal() >= TraceLevel.SUMMARY.ordinal(); }
@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; }
execution.setStatus(ExecStatus.CREATED.name()); execution.setStatus(propagationAttempted.get() ? ExecStatus.SUCCESS.name() : ExecStatus.NOT_ATTEMPTED.name()); execution.setStatus(ExecStatus.FAILURE.name()); } catch (Exception wft) { LOG.error("While executing KO action on {}", execution, wft); execution.setStart(start); execution.setMessage(taskExecutionMessage); execution.setEnd(new Date()); LOG.debug("Execution to be stored: {}", execution); execution.setTask(task); task.add(execution); ExecStatus.valueOf(execution.getStatus()), failureReason, beforeObj,
/** * Check whether an execution has to be stored, for a given task. * * @param task propagation task * @param execution to be decide whether to store or not * @return true if execution has to be store, false otherwise */ protected boolean hasToBeregistered(final PropagationTask task, final TaskExec execution) { boolean result; boolean failed = ExecStatus.valueOf(execution.getStatus()) != ExecStatus.SUCCESS; switch (task.getOperation()) { case CREATE: result = (failed && task.getResource().getCreateTraceLevel().ordinal() >= TraceLevel.FAILURES.ordinal()) || task.getResource().getCreateTraceLevel() == TraceLevel.ALL; break; case UPDATE: result = (failed && task.getResource().getUpdateTraceLevel().ordinal() >= TraceLevel.FAILURES.ordinal()) || task.getResource().getUpdateTraceLevel() == TraceLevel.ALL; break; case DELETE: result = (failed && task.getResource().getDeleteTraceLevel().ordinal() >= TraceLevel.FAILURES.ordinal()) || task.getResource().getDeleteTraceLevel() == TraceLevel.ALL; break; default: result = false; } return result; }