private static ObjectActionsExecutedEntryType findEntry(List<ObjectActionsExecutedEntryType> entries, ObjectActionsExecutedEntryType entry) { for (ObjectActionsExecutedEntryType e : entries) { if (entry.getObjectType().equals(e.getObjectType()) && entry.getOperation().equals(e.getOperation()) && StringUtils.equals(entry.getChannel(), e.getChannel())) { return e; } } return null; }
private static boolean isPendingAddOperation(PendingOperationType pendingOperation) { return ChangeTypeType.ADD.equals(pendingOperation.getDelta().getChangeType()) && !PendingOperationExecutionStatusType.COMPLETED.equals(pendingOperation.getExecutionStatus()); }
public ChangeTypeType findPreviousPendingLifecycleOperationInGracePeriod(ProvisioningContext ctx, PrismObject<ShadowType> shadow, XMLGregorianCalendar now) throws ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException, ExpressionEvaluationException { List<PendingOperationType> pendingOperations = shadow.asObjectable().getPendingOperation(); if (pendingOperations == null || pendingOperations.isEmpty()) { return null; } Duration gracePeriod = ProvisioningUtil.getGracePeriod(ctx); ChangeTypeType found = null; for (PendingOperationType pendingOperation : pendingOperations) { ObjectDeltaType delta = pendingOperation.getDelta(); if (delta == null) { continue; } ChangeTypeType changeType = delta.getChangeType(); if (ChangeTypeType.MODIFY.equals(changeType)) { continue; } if (ProvisioningUtil.isOverPeriod(now, gracePeriod, pendingOperation)) { continue; } if (changeType == ChangeTypeType.DELETE) { // DELETE always wins return changeType; } else { // If there is an ADD then let's check for delete. found = changeType; } } return found; }
return false; if (!changeType.equals(delta.getChangeType())) { return false;
protected void assertTest528Deltas(PrismObject<ShadowType> shadowRepo, OperationResult result) { assertPendingOperationDeltas(shadowRepo, 3); ObjectDeltaType deltaModify = null; ObjectDeltaType deltaAdd = null; ObjectDeltaType deltaDelete = null; for (PendingOperationType pendingOperation: shadowRepo.asObjectable().getPendingOperation()) { assertEquals("Wrong status in pending delta", OperationResultStatusType.SUCCESS, pendingOperation.getResultStatus()); ObjectDeltaType delta = pendingOperation.getDelta(); if (ChangeTypeType.ADD.equals(delta.getChangeType())) { deltaAdd = delta; } if (ChangeTypeType.MODIFY.equals(delta.getChangeType())) { deltaModify = delta; } if (ChangeTypeType.DELETE.equals(delta.getChangeType())) { deltaDelete = delta; } } assertNotNull("No add pending delta", deltaAdd); assertNotNull("No modify pending delta", deltaModify); assertNotNull("No delete pending delta", deltaDelete); }
@Override protected void assertTest526Deltas(PrismObject<ShadowType> shadowRepo, OperationResult result) { assertPendingOperationDeltas(shadowRepo, 3); ObjectDeltaType deltaModify = null; ObjectDeltaType deltaAdd = null; ObjectDeltaType deltaDisable = null; for (PendingOperationType pendingOperation: shadowRepo.asObjectable().getPendingOperation()) { ObjectDeltaType delta = pendingOperation.getDelta(); if (ChangeTypeType.ADD.equals(delta.getChangeType())) { deltaAdd = delta; assertEquals("Wrong status in add delta", OperationResultStatusType.SUCCESS, pendingOperation.getResultStatus()); } if (ChangeTypeType.MODIFY.equals(delta.getChangeType()) && OperationResultStatusType.SUCCESS.equals(pendingOperation.getResultStatus())) { deltaModify = delta; } if (ChangeTypeType.MODIFY.equals(delta.getChangeType()) && OperationResultStatusType.IN_PROGRESS.equals(pendingOperation.getResultStatus())) { deltaDisable = delta; } } assertNotNull("No add pending delta", deltaAdd); assertNotNull("No modify pending delta", deltaModify); assertNotNull("No disable pending delta", deltaDisable); }
protected void assertTest526Deltas(PrismObject<ShadowType> shadowRepo, OperationResult result) { assertPendingOperationDeltas(shadowRepo, 3); ObjectDeltaType deltaModify = null; ObjectDeltaType deltaAdd = null; ObjectDeltaType deltaDelete = null; for (PendingOperationType pendingOperation: shadowRepo.asObjectable().getPendingOperation()) { ObjectDeltaType delta = pendingOperation.getDelta(); if (ChangeTypeType.ADD.equals(delta.getChangeType())) { deltaAdd = delta; assertEquals("Wrong status in add delta", OperationResultStatusType.SUCCESS, pendingOperation.getResultStatus()); } if (ChangeTypeType.MODIFY.equals(delta.getChangeType())) { deltaModify = delta; assertEquals("Wrong status in modify delta", OperationResultStatusType.SUCCESS, pendingOperation.getResultStatus()); } if (ChangeTypeType.DELETE.equals(delta.getChangeType())) { deltaDelete = delta; assertEquals("Wrong status in delete delta", OperationResultStatusType.IN_PROGRESS, pendingOperation.getResultStatus()); } } assertNotNull("No add pending delta", deltaAdd); assertNotNull("No modify pending delta", deltaModify); assertNotNull("No delete pending delta", deltaDelete); }
if (!expectedChangeType.equals(delta.getChangeType())) { continue;