Issue #525 has been updated by Jon Kidder.

Using the destination's getAllFilter presumes that the criteria used to select 
records for synchronization and the criteria used to select records for 
deletion are the same. I ran in to two situations where this is not true.

1. There is no key data that uniquely identifies destination records maintained 
by an LSC task.  In my case the destination records can be created by multiple 
sources or were created by previous runs of the task.  The records had to be 
"tagged" by the task.  When I added the tag to the filter LSC couldn't find the 
existing destination records and attempted an add operation, which failed, 
instead of a modify operation.  I had to perform a one time sync without the 
tag in the filter in order to create the tag and then change the configuration 
to add the tag to the filter. This extra step wouldn't have been neccesary with 
separate getall and clean filters for the destination.

2. I am merging multiple sources into a common branch.  In some cases this 
results in the merging of multiple source attribute sets into a common 
detination record.  The task needs to synchronize attributes belonging to 
common destination records and delete destination records that aren't touched 
by other sources(tasks). There needs to be separate getall and clean filters in 
order for this to work.

Here is a grossly simplified sample of what I'd like to be able to do in the 
destination configuration.

<getAllFilter>(objectClass=myObject)</getAllFilter>
<cleanFilter>(&(objectClass=myObject)(syncModifier=Task1)(!(syncModifier=Task2)))</cleanfilter>

Where syncModifier is a multivalued attribute containing a tag for each process 
that modifies the record.

I appologize for not having the resources to develop and contribute this 
feature myself. This feature would add tremendous flexibility to address more 
complicated use cases and appears to be relatively inexpensive to develop.
----------------------------------------
Feature #525: Add a clean filter to the destination service
http://tools.lsc-project.org/issues/525

Author: Jon Kidder
Status: New
Priority: Normal
Assigned to: 
Category: Administration
Target version: 


I am using LSC to consolidate multiple sources into a common branch of an LDAP 
tree.  When I run the clean phase for one source all of the destination data 
from the other sources gets removed from the destination.  I can easily tag the 
data so that I know which source it came from but I have no way to filter the 
destination records selected for comparison against the source during the clean 
phase. I understand that I could do this by making each source a child branch 
of a common parent in the directory and having my applications do subtree 
searches starting at the parent but I do this with several sources in a couple 
of different places and I'm trying to avoid building a complicated LDAP "bush".


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://tools.lsc-project.org/my/account
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-dev mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-dev

Reply via email to