@PreAuthorize("hasRole('" + StandardEntitlement.TASK_EXECUTE + "')")
public void pull(
final AnyTypeKind anyTypeKind,
final String anyKey,
final String resourceKey,
final PullTaskTO pullTask) {
Pair<Any<?>, Provision> init = init(anyTypeKind, anyKey, resourceKey);
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Reconciliation);
try {
List<ProvisioningReport> results = singlePullExecutor.pull(
init.getRight(),
connFactory.getConnector(init.getRight().getResource()),
init.getRight().getMapping().getConnObjectKeyItem().get().getExtAttrName(),
mappingManager.getConnObjectKeyValue(init.getLeft(), init.getRight()).get(),
init.getLeft().getRealm(),
pullTask);
if (!results.isEmpty() && results.get(0).getStatus() == ProvisioningReport.Status.FAILURE) {
sce.getElements().add(results.get(0).getMessage());
}
} catch (JobExecutionException e) {
sce.getElements().add(e.getMessage());
}
if (!sce.isEmpty()) {
throw sce;
}
}