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.
_______________________________________________________________
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