if (resultList.isEmpty() || !Status.RETRIEVED.equals(resultList.get(0)[1])) {
@Override @Transactional(readOnly = false) public int deleteActionsByStatusAndLastModifiedBefore(final Set<Status> status, final long lastModified) { if (status.isEmpty()) { return 0; } /* * We use a native query here because Spring JPA does not support to * specify a LIMIT clause on a DELETE statement. However, for this * specific use case (action cleanup), we must specify a row limit to * reduce the overall load on the database. */ final int statusCount = status.size(); final Status[] statusArr = status.toArray(new Status[statusCount]); final String queryStr = String.format(getQueryForDeleteActionsByStatusAndLastModifiedBeforeString(database), formatInClauseWithNumberKeys(statusCount)); final Query deleteQuery = entityManager.createNativeQuery(queryStr); IntStream.range(0, statusCount) .forEach(i -> deleteQuery.setParameter(String.valueOf(i), statusArr[i].ordinal())); deleteQuery.setParameter("tenant", tenantAware.getCurrentTenant().toUpperCase()); deleteQuery.setParameter("last_modified_at", lastModified); LOG.debug("Action cleanup: Executing the following (native) query: {}", deleteQuery); return deleteQuery.executeUpdate(); }
if (resultList.isEmpty() || !Status.RETRIEVED.equals(resultList.get(0)[1])) {
: new DdiActionHistory(action.getStatus().name(), actionHistoryMsgs);
: new DdiActionHistory(action.getStatus().name(), actionHistoryMsgs);
@Override @Transactional(readOnly = false) public int deleteActionsByStatusAndLastModifiedBefore(final Set<Status> status, final long lastModified) { if (status.isEmpty()) { return 0; } /* * We use a native query here because Spring JPA does not support to * specify a LIMIT clause on a DELETE statement. However, for this * specific use case (action cleanup), we must specify a row limit to * reduce the overall load on the database. */ final int statusCount = status.size(); final Status[] statusArr = status.toArray(new Status[statusCount]); final String queryStr = String.format(getQueryForDeleteActionsByStatusAndLastModifiedBeforeString(database), formatInClauseWithNumberKeys(statusCount)); final Query deleteQuery = entityManager.createNativeQuery(queryStr); IntStream.range(0, statusCount) .forEach(i -> deleteQuery.setParameter(String.valueOf(i), statusArr[i].ordinal())); deleteQuery.setParameter("tenant", tenantAware.getCurrentTenant().toUpperCase()); deleteQuery.setParameter("last_modified_at", lastModified); LOG.debug("Action cleanup: Executing the following (native) query: {}", deleteQuery); return deleteQuery.executeUpdate(); }
private boolean actionIsNotActiveButIntermediateFeedbackStillAllowed(final ActionStatus actionStatus, final boolean actionActive) { return !actionActive && (repositoryProperties.isRejectActionStatusForClosedAction() || (Status.ERROR.equals(actionStatus.getStatus()) || Status.FINISHED.equals(actionStatus.getStatus()))); }
private boolean actionIsNotActiveButIntermediateFeedbackStillAllowed(final ActionStatus actionStatus, final boolean actionActive) { return !actionActive && (repositoryProperties.isRejectActionStatusForClosedAction() || Status.ERROR.equals(actionStatus.getStatus()) || Status.FINISHED.equals(actionStatus.getStatus())); }
private static MgmtActionStatus toResponse(final ActionStatus actionStatus, final List<String> messages) { final MgmtActionStatus result = new MgmtActionStatus(); result.setMessages(messages); result.setReportedAt(actionStatus.getCreatedAt()); result.setStatusId(actionStatus.getId()); result.setType(actionStatus.getStatus().name().toLowerCase()); return result; }
private Action getUpdateActionStatus(final Status status, final ActionStatusCreate actionStatus) { if (Status.CANCELED.equals(status)) { return controllerManagement.addCancelActionStatus(actionStatus); } return controllerManagement.addUpdateActionStatus(actionStatus); }