@Async public Future<Uid> create( final ConnectorFacade connector, final ObjectClass objectClass, final Set<Attribute> attrs, final OperationOptions options) { return new AsyncResult<>(connector.create(objectClass, attrs, options)); }
@Async public Future<SyncToken> getLatestSyncToken( final ConnectorFacade connector, final ObjectClass objectClass) { return new AsyncResult<>(connector.getLatestSyncToken(objectClass)); }
/** * Creates connector facade, initializes connector configuration from dataProvider and validates configuration * and/or tests connection. */ public static ConnectorFacade createConnectorFacade(DataProvider dataProvider) { ConnectorFacade connector = createConnectorFacade(dataProvider, null); // try to test connector configuration and established connection if (connector.getSupportedOperations().contains(TestApiOp.class)) { connector.test(); } else { LOG.warn("Unable to test validity of connection. Connector does not suport the Test API. " + "Trying at least to test validity of configuration."); connector.validate(); } return connector; }
token = getConnectorFacade().getLatestSyncToken(objectClass); Set<Attribute> attr = ConnectorHelper.getCreateableAttributes(getDataProvider(), getObjectClassInfo(objectClass), getTestName(), i, true, false); Uid luid = getConnectorFacade().create(objectClass, attr, getOperationOptionsByOp(objectClass, CreateApiOp.class)); assertNotNull(luid, "Create returned null uid."); ConnectorObject obj = getConnectorFacade().getObject(objectClass, uids.get(i), getOperationOptionsByOp(objectClass, GetApiOp.class)); assertNotNull(obj, "Unable to retrieve newly created object"); getConnectorFacade().test(); Uid newUid = getConnectorFacade().update( objectClass, updateUid, getConnectorFacade().validate(); Uid createUid = getConnectorFacade().create(objectClass, attrs11, getOperationOptionsByOp(objectClass, CreateApiOp.class)); uids.add(createUid); ConnectorObject obj = getConnectorFacade().getObject(objectClass, createUid, getOperationOptionsByOp(objectClass, GetApiOp.class)); assertNotNull(obj, "Unable to retrieve newly created object");
uid1 = getConnectorFacade().create(objectClass, attrs1, null); assertNotNull(uid1, "Create returned null uid."); SyncToken latestToken = getConnectorFacade().getLatestSyncToken(objectClass); getConnectorFacade().sync(objectClass, latestToken, (SyncDelta delta) -> { deltas.add(delta); return true; uid2 = getConnectorFacade().create(objectClass, attrs2, null); assertNotNull(uid2, "Create returned null uid."); getConnectorFacade().sync(objectClass, latestToken, (SyncDelta delta) -> { deltas.add(delta); return true; } finally { getConnectorFacade().delete(objectClass, uid1, null); getConnectorFacade().delete(objectClass, uid2, null);
obj = getConnectorFacade().getObject(objectClass, uid, getOperationOptionsByOp(objectClass, GetApiOp.class)); assertNotNull(obj, "Cannot retrieve created object."); Uid newUid = getConnectorFacade().update( objectClass, uid, AttributeUtil.filterUid(replaceAttributes), getOperationOptionsByOp( objectClass, UpdateApiOp.class)); obj = getConnectorFacade().getObject(objectClass, uid, getOperationOptionsByOp(objectClass, GetApiOp.class)); assertNotNull(obj, "Cannot retrieve updated object."); Uid newUid = getConnectorFacade().addAttributeValues(objectClass, uid, AttributeUtil.filterUid(addDelAttrs), getOperationOptionsByOp(objectClass, UpdateApiOp.class)); obj = getConnectorFacade().getObject(objectClass, uid, getOperationOptionsByOp(objectClass, GetApiOp.class)); assertNotNull(obj, "Cannot retrieve updated object."); newUid = getConnectorFacade().removeAttributeValues(objectClass, uid, AttributeUtil.filterUid(addDelAttrs), getOperationOptionsByOp(objectClass, UpdateApiOp.class)); obj = getConnectorFacade().getObject(objectClass, uid, getOperationOptionsByOp(objectClass, GetApiOp.class)); assertNotNull(obj, "Cannot retrieve updated object.");
try { SyncToken token = getConnectorFacade().getLatestSyncToken(objectClass); uid = getConnectorFacade().create(objectClass, attrs, null); assertNotNull(uid, "Create returned null uid."); } finally { getConnectorFacade().delete(objectClass, uid, null);
/** * {@inheritDoc} */ @Override protected void testRun(ObjectClass objectClass) { Uid uid = null; try { Set<Attribute> attrs = ConnectorHelper.getCreateableAttributes(getDataProvider(), getObjectClassInfo(objectClass), getTestName(), 0, true, false); // should throw UnsupportedObjectClass if not supported uid = getConnectorFacade().create(objectClass, attrs, getOperationOptionsByOp(objectClass, CreateApiOp.class)); // get the user to make sure it exists now ConnectorObject obj = getConnectorFacade().getObject(objectClass, uid, getOperationOptionsByOp(objectClass, GetApiOp.class)); assertNotNull(obj, "Unable to retrieve newly created object"); // compare requested attributes to retrieved attributes ConnectorHelper.checkObject(getObjectClassInfo(objectClass), obj, attrs); } finally { if (uid != null) { // delete the object getConnectorFacade().delete(objectClass, uid, getOperationOptionsByOp(objectClass, DeleteApiOp.class)); } } }
token = getConnectorFacade().getLatestSyncToken(objectClass); getDataProvider(), oci, getTestName(), 3, true, false); uid = getConnectorFacade().create(objectClass, attrs, null); assertNotNull(uid, testMarkMsg + " Create returned null uid."); obj = getConnectorFacade().getObject(objectClass, uid, null); break;// GET
groupUid1 = getConnectorFacade().create(ObjectClass.GROUP, groupAttrs1, null); AttributeUtil.getStringValue(groupUid1))); accountUid1 = getConnectorFacade().create(ObjectClass.ACCOUNT, accountAttrs1, null); ConnectorObject obj = getConnectorFacade().getObject(ObjectClass.ACCOUNT, accountUid1, attrsToGet); groupUid2 = getConnectorFacade().create(ObjectClass.GROUP, groupAttrs2, null); AttributeUtil.getStringValue(groupUid2))); accountAttrs2.add(accountUid1); accountUid1 = getConnectorFacade().addAttributeValues( ObjectClass.ACCOUNT, accountUid1, AttributeUtil.filterUid(accountAttrs2), null); obj = getConnectorFacade().getObject(ObjectClass.ACCOUNT, accountUid1, attrsToGet);
token = getConnectorFacade().getLatestSyncToken(getObjectClass()); uid = getConnectorFacade().create(getSupportedObjectClass(), attrs, getOperationOptionsByOp(CreateApiOp.class)); assertNotNull("Create returned null uid.", uid); Uid newUid = getConnectorFacade().update( getSupportedObjectClass(), uid, AttributeUtil.filterUid(replaceAttributes), getOperationOptionsByOp(UpdateApiOp.class)); getConnectorFacade().delete(getObjectClass(), uid, getOperationOptionsByOp(DeleteApiOp.class));
uid = getConnectorFacade().create(getObjectClass(), attrs, getOperationOptionsByOp(CreateApiOp.class)); ConnectorObject obj = getConnectorFacade().getObject(getObjectClass(), uid, getOperationOptionsByOp(GetApiOp.class)); Assert.assertNotNull("Unable to retrieve newly created object", obj); Uid result = getConnectorFacade().resolveUsername(getObjectClass(), username, null); Assert.assertEquals(uid, result); } finally { if (uid != null) { getConnectorFacade().delete(getSupportedObjectClass(), uid, getOperationOptionsByOp(DeleteApiOp.class));
/** * Need a schema */ public Schema getSchema() { return getConnectorFacade().schema(); }
/** * Performs search on connector facade with specified object class, filter and operation options. * @return Map of {@link Uid}s to {@link ConnectorObject}s that were found. */ public static Map<Uid, ConnectorObject> search2Map(ConnectorFacade connectorFacade, ObjectClass objClass, Filter filter, OperationOptions opOptions) { final Map<Uid, ConnectorObject> foundObjects = new Hashtable<Uid, ConnectorObject>(); connectorFacade.search(objClass, filter, new ResultsHandler() { public boolean handle(ConnectorObject obj) { foundObjects.put(obj.getUid(), obj); return true; } }, opOptions); return foundObjects; }
uid = connIdConnectorFacade.addAttributeValues(objClass, uid, attributesToAdd, connIdOptions); recordIcfOperationEnd(reporter, ProvisioningOperation.ICF_UPDATE, objectClassDef, null, uid); InternalMonitor.recordConnectorModification("update"); recordIcfOperationStart(reporter, ProvisioningOperation.ICF_UPDATE, objectClassDef, uid); uid = connIdConnectorFacade.update(objClass, uid, attributesToUpdate, connIdOptions); recordIcfOperationEnd(reporter, ProvisioningOperation.ICF_UPDATE, objectClassDef, null, uid); uid = connIdConnectorFacade.removeAttributeValues(objClass, uid, attributesToRemove, connIdOptions); recordIcfOperationEnd(reporter, ProvisioningOperation.ICF_UPDATE, objectClassDef, null, uid); connIdResult.recordSuccess();
@Async public Future<Uid> authenticate( final ConnectorFacade connector, final String username, final GuardedString password, final OperationOptions options) { return new AsyncResult<>(connector.authenticate(ObjectClass.ACCOUNT, username, password, options)); }
/** * Performs sync on connector facade. * @returns list of deltas */ public static List<SyncDelta> sync(ConnectorFacade connectorFacade, ObjectClass objClass, SyncToken token, OperationOptions opOptions) { final List<SyncDelta> returnedDeltas = new ArrayList<SyncDelta>(); connectorFacade.sync(objClass, token, new SyncResultsHandler() { public boolean handle(SyncDelta delta) { returnedDeltas.add(delta); return true; } }, opOptions); return returnedDeltas; }