Le 26/02/2015 15:55, Clément OUDOT a écrit :
2015-02-26 15:37 GMT+01:00 hakim yahiaoui <[email protected]>:
Hello,
i have a problem for delete entries in LDAP which are not in my csv file
source.
When i run : bin/lsc -f etc/ -s people -c people,
all entries which are in csv are deleted on LDAP.
here is my configuration :
InetOrgPerson.xml :
<select id="getInetOrgPerson" resultClass="java.util.HashMap"
parameterClass="java.util.Map">
Select
pers.uid_ldap,
FROM csvdata pers
WHERE pers.uid_ldap LIKE #uid_ldap#
</select>
<select id="getInetOrgPersonClean" resultClass="java.util.HashMap"
parameterClass="java.util.Map">
SELECT pers.uid_ldap AS uid_ldap
FROM csvdata pers
WHERE pers.uid_ldap LIKE #uid_ldap#
</select>
<select id="getInetOrgPersonList" resultClass="java.util.HashMap">
SELECT pers.uid_ldap AS uid_ldap
FROM csvdata pers
</select>
lsc.xml :
<tasks>
<task>
<name>people</name>
<bean>org.lsc.beans.SimpleBean</bean>
<databaseSourceService>
<name>MySyncTask-src</name>
<connection reference="jdbc-src-conn" />
<requestNameForList>getInetOrgPersonList</requestNameForList>
<requestNameForObject>getInetOrgPerson</requestNameForObject>
<requestNameForClean>getInetOrgPersonClean</requestNameForClean>
</databaseSourceService>
<ldapDestinationService>
<name>openldap-destination-service</name>
<connection reference="ldap-dst-conn" />
<baseDn>ou=people,dc=univ-st-etienne,dc=fr</baseDn>
<pivotAttributes>
<string>uid</string>
</pivotAttributes>
<fetchedAttributes>
.....................................
.....................................
</fetchedAttributes>
<getAllFilter>(objectClass=inetorgperson)</getAllFilter>
<getOneFilter>(uid={uid_ldap})</getOneFilter>
</ldapDestinationService>
<propertiesBasedSyncOptions>
<mainIdentifier>"uid="+srcBean.getDatasetFirstValueById("UID_LDAP")
+ ",ou=people,dc=mydomaine,dc=com"</mainIdentifier>
<defaultDelimiter>;</defaultDelimiter>
<defaultPolicy>FORCE</defaultPolicy>
<conditions>
<create>true</create>
<update>true</update>
<delete>true</delete>
<changeId>false</changeId>
</conditions>
You must use the destination pivot in the source clean request:
<select id="getInetOrgPersonClean" resultClass="java.util.HashMap"
parameterClass="java.util.Map">
SELECT pers.uid_ldap AS uid_ldap
FROM csvdata pers
WHERE pers.uid_ldap LIKE #uid#
</select>
See http://lsc-project.org/wiki/documentation/latest/basics
Clément.
Thank you very much for your help, it's running now.
Regards,
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org
lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users