private <T extends ObjectType> void removeOperationalItems(PrismObject<T> object) { if (object != null) { object.getValue().removeOperationalItems(); } }
public String formatObject(PrismObject object, List<ItemPath> hiddenPaths, boolean showOperationalAttributes) { Validate.notNull(object, "object is null"); StringBuilder retval = new StringBuilder(); formatContainerValue(retval, "", object.getValue(), false, hiddenPaths, showOperationalAttributes); return retval.toString(); }
private <T extends ObjectType> void removeIgnoredItems(PrismObject<T> object, List<? extends ItemPath> ignoreItems) { if (object != null) { object.getValue().removeItems(ignoreItems); } }
@Override public PrismContainerValue asPrismContainerValue() { return asPrismContainer().getValue(); }
static <T extends Objectable> boolean match( PrismObject<T> object, ObjectFilter filter, MatchingRuleRegistry matchingRuleRegistry) throws SchemaException { return filter.match(object.getValue(), matchingRuleRegistry); }
@Override public PrismContainerValue asPrismContainerValue() { return asPrismContainer().getValue(); }
@Override public PrismContainerValue asPrismContainerValue() { return asPrismContainer().getValue(); }
@Override public PrismContainerValue asPrismContainerValue() { return asPrismContainer().getValue(); }
public static ResourceAttributeContainer getAttributesContainer(PrismObject<? extends ShadowType> shadow, QName containerName) { return getAttributesContainer(shadow.getValue(), containerName); }
public <T extends ObjectType> SearchResultList<PrismObject<T>> searchObjects(Class<T> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options, OperationResult result) throws SchemaException { SearchResultList<PrismObject<T>> allObjects = cacheRepositoryService.searchObjects(type, null, options, result); if (query == null) { return allObjects; } List<PrismObject<T>> filtered = doFiltering(query, allObjects, (o) -> o.getValue()); List<PrismObject<T>> paged = doPaging(query, filtered, (o) -> o.getValue()); return new SearchResultList<>(paged); }
@NotNull private <O extends Objectable> MapXNodeImpl marshalObjectContent(@NotNull PrismObject<O> object, @NotNull PrismObjectDefinition<O> objectDefinition, SerializationContext ctx) throws SchemaException { MapXNodeImpl xmap = new MapXNodeImpl(); marshalContainerValue(xmap, object.getValue(), objectDefinition, ctx); xmap.setTypeQName(objectDefinition.getTypeName()); // object should have the definition (?) return xmap; }
private void removeExcludes(PrismObject<? extends ObjectType> object, List<String> exclude) { object.getValue().removePaths(ItemPathCollectionsUtil.pathListFromStrings(exclude, prismContext)); }
@Override public void setObjectTransient(PrismObject object) { if (object == null) { PrismReference objectRef = taskPrism.findReference(TaskType.F_OBJECT_REF); if (objectRef != null) { taskPrism.getValue().remove(objectRef); } } else { PrismReference objectRef; try { objectRef = taskPrism.findOrCreateReference(TaskType.F_OBJECT_REF); } catch (SchemaException e) { // This should not happen throw new IllegalStateException("Internal schema error: " + e.getMessage(), e); } objectRef.getValue().setObject(object); } }
private SceneImpl visualize(PrismObject<? extends ObjectType> object, SceneImpl owner, VisualizationContext context, Task task, OperationResult result) { SceneImpl scene = new SceneImpl(owner); scene.setChangeType(null); scene.setName(createSceneName(object)); scene.setSourceRelPath(EMPTY_PATH); scene.setSourceAbsPath(EMPTY_PATH); scene.setSourceDefinition(object.getDefinition()); scene.setSourceValue(object.getValue()); scene.setSourceDelta(null); visualizeItems(scene, object.getValue().getItems(), false, context, task, result); return scene; }
@Test public void testPrismConsistency() throws Exception { System.out.println("===[ testPrismConsistency ]==="); // GIVEN PrismContext ctx = getPrismContext(); PrismObjectDefinition<UserType> userDefinition = ctx.getSchemaRegistry().findObjectDefinitionByCompileTimeClass(UserType.class); // WHEN PrismObject<UserType> user = userDefinition.instantiate(); user.setOid("12345"); // THEN System.out.println("User:"); System.out.println(user.debugDump()); System.out.println("Checking consistency, 1st time."); user.checkConsistence(); UserType userType = user.getValue().getValue(); System.out.println("Checking consistency, 2nd time - after getValue().getValue()."); user.checkConsistence(); System.out.println("OK."); }
private <T extends ShadowType> PrismObject<T> wrapInShadow(Class<T> type, ResourceAttributeContainer resourceObject) throws SchemaException { PrismObjectDefinition<T> shadowDefinition = getShadowDefinition(type); PrismObject<T> shadow = shadowDefinition.instantiate(); resourceObject.setElementName(ShadowType.F_ATTRIBUTES); shadow.getValue().add(resourceObject); return shadow; }
private void executeScript(ScriptExecutionPolicyActionType action, EvaluatedPolicyRule rule, ModelContext<?> context, Task task, OperationResult parentResult, ExecuteScriptType executeScriptBean) { OperationResult result = parentResult.createSubresult(EXECUTE_SCRIPT_OPERATION); try { Map<String, Object> initialVariables = createInitialVariables(action, rule, context); if (executeScriptBean.getInput() == null && context.getFocusContext() != null) { PrismObject objectAny = ((LensFocusContext) context.getFocusContext()).getObjectAny(); if (objectAny != null) { ValueListType input = new ValueListType(); input.getValue().add(objectAny.getValue().clone()); executeScriptBean.setInput(input); } } scriptingExpressionEvaluator.evaluateExpression(executeScriptBean, initialVariables, false, task, result); } catch (ScriptExecutionException | RuntimeException e) { result.recordFatalError("Couldn't execute script policy action: " + e.getMessage(), e); LoggingUtils.logUnexpectedException(LOGGER, "Couldn't execute script with id={} in scriptExecution policy action '{}' (rule '{}'): {}", e, action.getId(), action.getName(), rule.getName(), e.getMessage()); } finally { result.computeStatusIfUnknown(); } }
@Test public void testParseTaskFile() throws Exception { System.out.println("===[ testParseTaskFile ]==="); // GIVEN PrismContext prismContext = getPrismContext(); // WHEN PrismObject<TaskType> task = prismContext.parserFor(TASK_FILE).xml().parse(); // THEN System.out.println("Parsed task:"); System.out.println(task.debugDump()); assertTask(task); PrismObjectDefinition<TaskType> taskDef = getSchemaRegistry().findObjectDefinitionByCompileTimeClass(TaskType.class); task.applyDefinition(taskDef); task.getValue().applyDefinition(taskDef); }
private <O extends ObjectType> void applySchemasAndSecurityPhase(PrismObject<O> object, ObjectSecurityConstraints securityConstraints, PrismObjectDefinition<O> objectDefinition, GetOperationOptions rootOptions, AuthorizationPhaseType phase, Task task, OperationResult result) throws SchemaException, SecurityViolationException, ConfigurationException, ObjectNotFoundException { Validate.notNull(phase); try { AuthorizationDecisionType globalReadDecision = securityConstraints.findAllItemsDecision(ModelAuthorizationAction.AUTZ_ACTIONS_URLS_GET, phase); if (globalReadDecision == AuthorizationDecisionType.DENY) { // shortcut SecurityUtil.logSecurityDeny(object, "because the authorization denies access"); throw new AuthorizationException("Access denied"); } AuthorizationDecisionType globalAddDecision = securityConstraints.findAllItemsDecision(ModelAuthorizationAction.ADD.getUrl(), phase); AuthorizationDecisionType globalModifyDecision = securityConstraints.findAllItemsDecision(ModelAuthorizationAction.MODIFY.getUrl(), phase); applySecurityConstraints(object.getValue().getItems(), securityConstraints, globalReadDecision, globalAddDecision, globalModifyDecision, phase); if (object.isEmpty()) { // let's make it explicit SecurityUtil.logSecurityDeny(object, "because the subject has not access to any item"); throw new AuthorizationException("Access denied"); } applySecurityConstraintsItemDef(objectDefinition, new IdentityHashMap<>(), ItemPath.EMPTY_PATH, securityConstraints, globalReadDecision, globalAddDecision, globalModifyDecision, phase); } catch (SecurityViolationException | RuntimeException e) { result.recordFatalError(e); throw e; } }
@Test public void test010CycleCronLoose() throws Exception { final String TEST_NAME = "test010CycleCronLoose"; final OperationResult result = createResult(TEST_NAME, LOGGER); addObjectFromFile(taskFilename(TEST_NAME)); waitForTaskProgress(taskOid(TEST_NAME), result, 15000, 2000, 2); // Check task status Task task = getTask(taskOid(TEST_NAME), result); AssertJUnit.assertNotNull(task); System.out.println(task.debugDump()); TaskType t = repositoryService.getObject(TaskType.class, taskOid(TEST_NAME), null, result).getValue().getValue(); System.out.println(ObjectTypeUtil.dump(t)); AssertJUnit.assertEquals(TaskExecutionStatus.RUNNABLE, task.getExecutionStatus()); // .. and last run should not be zero AssertJUnit.assertNotNull(task.getLastRunStartTimestamp()); assertFalse(task.getLastRunStartTimestamp() == 0); AssertJUnit.assertNotNull(task.getLastRunFinishTimestamp()); assertFalse(task.getLastRunFinishTimestamp() == 0); // The progress should be at least 2 as the task has run at least twice AssertJUnit.assertTrue("Task has not been executed at least twice", task.getProgress() >= 2); // Test for presence of a result. It should be there and it should // indicate success assertSuccessOrInProgress(task); // Suspend the task (in order to keep logs clean), without much waiting taskManager.suspendTaskQuietly(task, 100, result); }