Moving a Resource to a Different LDAP Container — Service Connector API Example (Java)
Example code is provided that illustrates moving a resource to a different LDAP container using method calls available in the Service Connector API.
The step numbers in the comments correspond to the steps in the illustration, Moving a Resource to a Different LDAP Container.
public XmlResourceDetail moveResourceToAnotherContainer(int aModelVersion) throws DirectoryEngineFault, SecurityFault { // Step 1: perform some search on resources FindResources findResources = FindResources.Factory.newInstance(); findResources.setModelVersion(aModelVersion); findResources.addResourceName("Clint Hill"); FindResourcesResponse resources = getOrgResourceService().findResources(findResources); // select a resource from list XmlModelEntity resource = resources.getResourceArray(0); // Step 2: get details of the selected resource String[] guids = { resource.getGuid() }; XmlResourceDetail resourceDetail = getOrgResourceService().getResource(aModelVersion, guids)[0]; // Step 3: list configured LDAP Containers for selection of destination XmlContainer[] ldapContainers = getDirectoryService().listContainers(); // select an LDAP Container XmlContainer ldapContainer = ldapContainers[0]; // Step 4: get list of non-existing candidates from selected LDAP Container ListCandidateResourcesResponse candidates = getDirectoryService().listCandidateResources(ldapContainer.getId(), XmlCandidateChoice.NON_EXISTING); // select a candidate as final destination XmlResourceCandidate candidate = candidates.getCandidateArray(0); // Step 5: update selected resource with new LDAP properties XmlUpdateResourceType[] update = { XmlUpdateResourceType.Factory.newInstance() }; update[0].setGuid(resourceDetail.getGuid()); // copy details of LDAP candidate LdapReference ldapRef = update[0].addNewLdapReference(); ldapRef.setContainerId(ldapContainer.getId()); ldapRef.setLdapAlias(candidate.getLdapAlias()); ldapRef.setLdapDn(candidate.getLdapDn()); ldapRef.setSecondaryRefArray(candidate.getSecondaryRefArray()); XmlResourceDetail[] response = getOrgResourceService().updateResource(update); return(response[0]); } }
Copyright © Cloud Software Group, Inc. All rights reserved.