/** * No not fetch any information from external sources, e.g. do not fetch account data from resource, * do not fetch resource schema, etc. * Such operation returns only the data stored in midPoint repository. */ public static GetOperationOptions createNoFetch() { GetOperationOptions opts = new GetOperationOptions(); opts.setNoFetch(true); return opts; }
@Override public GetOperationOptionsBuilder noFetch(Boolean value) { return forPaths(opts -> opts.setNoFetch(value)); }
protected ShadowAsserter<Void> assertModelShadowFutureNoFetch(String oid) throws ObjectNotFoundException, SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ExpressionEvaluationException { GetOperationOptions options = GetOperationOptions.createPointInTimeType(PointInTimeType.FUTURE); options.setNoFetch(true); PrismObject<ShadowType> repoShadow = getShadowModel(oid, options, true); ShadowAsserter<Void> asserter = ShadowAsserter.forShadow(repoShadow, "model(future,noFetch)"); asserter .display(); return asserter; }
public static GetOperationOptions fromRestOptions(List<String> options, DefinitionProcessingOption definitionProcessing) { if (options == null || options.isEmpty()){ if (definitionProcessing != null) { return GetOperationOptions.createDefinitionProcessing(definitionProcessing); } return null; } GetOperationOptions rv = new GetOperationOptions(); for (String option : options) { if (GetOperationOptionsType.F_RAW.getLocalPart().equals(option)) { rv.setRaw(true); } if (GetOperationOptionsType.F_NO_FETCH.getLocalPart().equals(option)) { rv.setNoFetch(true); } if (GetOperationOptionsType.F_NO_DISCOVERY.getLocalPart().equals(option)) { rv.setDoNotDiscovery(true); } if (GetOperationOptionsType.F_RESOLVE_NAMES.getLocalPart().equals(option)) { rv.setResolveNames(true); } // Do NOT set executionPhase here! } rv.setDefinitionProcessing(definitionProcessing); return rv; }
public Collection<SelectorOptions<GetOperationOptions>> createGetOptions(SelectorQualifiedGetOptionsType optionsBean, boolean noFetch) { LOGGER.trace("optionsBean = {}, noFetch = {}", optionsBean, noFetch); Collection<SelectorOptions<GetOperationOptions>> rv = MiscSchemaUtil.optionsTypeToOptions(optionsBean, prismContext); if (noFetch) { if (rv == null) { return SelectorOptions.createCollection(GetOperationOptions.createNoFetch()); } GetOperationOptions root = SelectorOptions.findRootOptions(rv); if (root != null) { root.setNoFetch(true); } else { rv.add(SelectorOptions.create(GetOperationOptions.createNoFetch())); } } return rv; }
try { GetOperationOptions rootOpt = GetOperationOptions.createPointInTimeType(PointInTimeType.FUTURE); rootOpt.setNoFetch(true); target = provisioningService.getObject(ShadowType.class, oid, SelectorOptions.createCollection(rootOpt), task, result); } catch (ObjectNotFoundException e) {
getOptions.setNoFetch(Boolean.TRUE);
protected ShadowAsserter<Void> assertShadowFutureNoFetch(String oid) throws ObjectNotFoundException, CommunicationException, SchemaException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException { Task task = createTask("assertShadowFutureNoFetch"); OperationResult result = task.getResult(); GetOperationOptions rootOptions = GetOperationOptions.createPointInTimeType(PointInTimeType.FUTURE); rootOptions.setNoFetch(true); Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions.createCollection(rootOptions); PrismObject<ShadowType> shadow = provisioningService.getObject(ShadowType.class, oid, options, task, result); assertSuccess(result); ShadowAsserter<Void> asserter = ShadowAsserter.forShadow(shadow, "future,noFetch"); asserter .display(); return asserter; } }
@Test public void test203GetGroupNoFetch() throws Exception { final String TEST_NAME="test203GetGroupNoFetch"; displayTestTitle(TEST_NAME); // GIVEN OperationResult result = new OperationResult(TestDummy.class.getName() + "."+TEST_NAME); GetOperationOptions rootOptions = new GetOperationOptions(); rootOptions.setNoFetch(true); Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions.createCollection(rootOptions); rememberDummyResourceGroupMembersReadCount(null); // WHEN PrismObject<ShadowType> shadow = provisioningService.getObject(ShadowType.class, GROUP_PIRATES_OID, options, null, result); // THEN result.computeStatus(); display("getObject result", result); TestUtil.assertSuccess(result); display("Retrieved group shadow", shadow); assertNotNull("No dummy group", shadow); assertDummyResourceGroupMembersReadCountIncrement(null, 0); checkGroupShadow(shadow, result, false); checkUniqueness(shadow); assertSteadyResource(); }
@Test public void test103GetAccountNoFetch() throws Exception { final String TEST_NAME="test103GetAccountNoFetch"; displayTestTitle(TEST_NAME); // GIVEN OperationResult result = new OperationResult(AbstractBasicDummyTest.class.getName() + "."+TEST_NAME); rememberCounter(InternalCounters.SHADOW_FETCH_OPERATION_COUNT); GetOperationOptions rootOptions = new GetOperationOptions(); rootOptions.setNoFetch(true); Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions.createCollection(rootOptions); XMLGregorianCalendar startTs = clock.currentTimeXMLGregorianCalendar(); // WHEN PrismObject<ShadowType> shadow = provisioningService.getObject(ShadowType.class, ACCOUNT_WILL_OID, options, null, result); // THEN XMLGregorianCalendar endTs = clock.currentTimeXMLGregorianCalendar(); display("getObject result", result); assertSuccess(result); assertCounterIncrement(InternalCounters.SHADOW_FETCH_OPERATION_COUNT, 0); display("Retrieved account shadow", shadow); assertNotNull("No dummy account", shadow); checkAccountShadow(shadow, result, false, startTs, endTs); // This is noFetch. Therefore the read should NOT update the caching timestamp checkRepoAccountShadowWill(shadow, null, startTs); checkUniqueness(shadow); assertSteadyResource(); }
getOpts.setNoFetch(true); Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions.createCollection(prismContext.toUniformPath(UserType.F_LINK), getOpts);
@Test public void test303GetAccountWillFutureNoFetch() throws Exception { final String TEST_NAME = "test303GetAccountWillFutureNoFetch"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); GetOperationOptions options = GetOperationOptions.createPointInTimeType(PointInTimeType.FUTURE); options.setNoFetch(true); // WHEN displayWhen(TEST_NAME); PrismObject<ShadowType> shadowProvisioningFuture = provisioningService.getObject(ShadowType.class, ACCOUNT_WILL_OID, SelectorOptions.createCollection(options), task, result); // THEN displayThen(TEST_NAME); assertSuccess(result); display("Provisioning shadow (future,noFetch)", shadowProvisioningFuture); assertNotNull("no OID", shadowProvisioningFuture.getOid()); assertShadowName(shadowProvisioningFuture, ACCOUNT_WILL_USERNAME); assertShadowDead(shadowProvisioningFuture); assertNoShadowPassword(shadowProvisioningFuture); }
private static GetOperationOptions getOptionsTypeToGetOptions(GetOperationOptionsType optionsType) { GetOperationOptions options = new GetOperationOptions(); options.setRetrieve(RetrieveOption.fromRetrieveOptionType(optionsType.getRetrieve())); options.setResolve(optionsType.isResolve()); options.setResolveNames(optionsType.isResolveNames()); options.setNoFetch(optionsType.isNoFetch()); options.setRaw(optionsType.isRaw()); options.setTolerateRawData(optionsType.isTolerateRawData()); options.setDoNotDiscovery(optionsType.isNoDiscovery()); // TODO relational value search query (but it might become obsolete) options.setAllowNotFound(optionsType.isAllowNotFound()); options.setPointInTimeType(PointInTimeType.toPointInTimeType(optionsType.getPointInTimeType())); options.setDefinitionProcessing(DefinitionProcessingOption.toDefinitionProcessingOption(optionsType.getDefinitionProcessing())); options.setStaleness(optionsType.getStaleness()); options.setDistinct(optionsType.isDistinct()); return options; }
options.setNoFetch(true);
for (ObjectReferenceType linkRef: focusType.getLinkRef()) { GetOperationOptions options = GetOperationOptions.createReadOnly(); options.setNoFetch(true); ShadowType shadowType = objectResolver.resolve(linkRef, ShadowType.class, SelectorOptions.createCollection(options),
rootOptions.setNoFetch(true);