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

Reply via email to