If the dn is the same after and before, why don't you simply put: lsc.tasks.ADpam.dn = srcBean.getDistinguishedName()
Regards, Raphaël Ouazana. Le Mer 16 juin 2010 18:00, [email protected] a écrit : > I wanted to use the second solution so here was my DN creator : > lsc.tasks.ADpam.dn = "ou=" + srcBean.getAttributeValueById("ou") + > ","+srcBean.getDistinguishedName() > There is now a new error > juin 16 17:47:06 - WARN - WARNING: updating the RDN of the entry will > cancel ot > her modifications! Relaunch synchronization to complete update. > juin 16 17:47:06 - ERROR - Object ou=UnitLevel2b,ou=UnitLevel1a not > deleted beca > use it has children (LDAP error code 66 received). To delete this entry > and it's > subtree, set the dst.java.naming.recursivedelete property to true > juin 16 17:47:06 - ERROR - Error while synchronizing ID > ou=UnitLevel2b,ou=UnitLe > vel1a: java.lang.Exception: Technical problem while applying modifications > to di > rectory > dn: ou=UnitLevel2b,ou=UnitLevel1a,dc=testDomain,dc=com > changetype: modrdn > newrdn: ou=UnitLevel2b > deleteoldrdn: 1 > newsuperior: > ou=UnitLevel2b,ou=UnitLevel1a,dc=testDomain,dc=com,dc=testDomain,dc > =com > > It maybe want to delete the current slot in order to create a new one to > the specified dn but it can't because it has children. Quite strange > because I don't want to change the dn (the new and the ancient are the > same). > > > -------- Message d'origine-------- > De: Raphaël Ouazana-Sustowski [mailto:[email protected]] > Date: mer. 16/06/2010 17:25 > À: François Chapuis ([email protected]) > Cc: Gunter Holzer; [email protected] > Objet : Re: [lsc-users] RE : RE : ldap2ldap synchro tasks > > Hi, > > In fact the two solutions seems to be feasible: > > Le Mer 16 juin 2010 17:07, [email protected] a écrit : >> I think that two solutions are possible but I don't know how to do it >> my method filterAll : >> lsc.tasks.ADpam.srcService.filterAll = >> (&(ou=*)(objectClass=organizationalUnit)) >> This method should be modified in something like: >> lsc.tasks.ADpam.srcService.filterAll = >> (&(ou=*)(objectClass=organizationalUnit)(dn=ou=UnitLevel1a,dc=testDomain,dc=com)) >> (this doesn't work because dn in not an attribute) and I will have two >> make one task by level of hierarchy. > > No, but extended filters (if AD support them) exist: > (entryDN:dnSubtreeMatch:=ou=UnitLevel1a,dc=testDomain,dc=com) > >> The other solution is to modify the dn where it is printed >> here is the curent dn constructor: >> lsc.tasks.ADpam.dn = "ou=" + srcBean.getAttributeValueById("ou") + >> ",ou=UnitLevel1a" >> lsc.tasks.ADpam.dn = "ou=" + srcBean.getAttributeValueById("ou") +"," >> srcBean.getDN() >> but this method doesn't exist. >> Have you got suggestions? > > I think you are looking for the getDistinguishedName() method (named > getDistinguishName in old versions). > > Regards, > Raphaël Ouazana. > >> -------- Message d'origine-------- >> De: Gunter Holzer [mailto:[email protected]] >> Date: mer. 16/06/2010 15:37 >> À: François Chapuis ([email protected]) >> Cc: [email protected] >> Objet : AW: RE : ldap2ldap synchro tasks >> >> How does your DN constructor look like? >> >> lsc.tasks.ADuser.dn = "CN=" + srcBean.getAttributeValueById("CN") + >> ",OU=OpenLDAP" >> >> Von: [email protected] [mailto:[email protected]] >> Gesendet: Mittwoch, 16. Juni 2010 15:32 >> An: Gunter Holzer >> Cc: [email protected] >> Betreff: RE : ldap2ldap synchro tasks >> >> >> This time it runned but I have some errors and warning >> The first error comes from the fact that there is no UnitLevel4c in my >> destination serveur but I wanted this unit to be added : >> juin 16 14:55:05 - ERROR - Error while adding entry >> ou=UnitLevel4c,ou=UnitLevel1 >> a in directory :javax.naming.directory.SchemaViolationException: [LDAP: >> error co >> de 65 - entry has no objectClass attribute]; remaining name >> 'ou=UnitLevel4c,ou=U >> nitLevel1a' >> juin 16 14:55:05 - ERROR - Error while synchronizing ID >> ou=UnitLevel4c,ou=UnitLe >> vel1a: java.lang.Exception: Technical problem while applying >> modifications >> to di >> rectory >> dn: ou=UnitLevel4c,ou=UnitLevel1a,dc=testDomain,dc=com >> changetype: add >> ou: UnitLevel4c >> telephoneNumber: 0478444500 >> st: 4c >> >> >> The following INFO shows that all my sub-entries which were not direct >> sub-entries of UnitLevel1a are changed to sub-entries of UnitLevel1 and >> their telephoneNumber are not modified. >> My hierarchy was like that in the source: >> ou=UnitLevel1a >> ou=UnitLevel2a >> ou=UnitLevel3a >> ou=UnitLevel4a >> ou=UnitLevel4b >> ou=UnitLevel3b >> ou=UnitLevel4c >> ou=UnitLevel2b >> ou=UnitLevel3c >> And after synchronization in the destination: >> ou=UnitLevel1a >> ou=UnitLevel2a >> ou=UnitLevel2b >> ou=UnitLevel3a >> ou=UnitLevel3b >> ou=UnitLevel3c >> ou=UnitLevel4a >> ou=UnitLevel4b >> And except UnitLevel2a and UnitLevel2b no on has got the new telephone >> number. >> One of the INFO : >> juin 16 14:55:05 - INFO - # Renaming entry >> ou=UnitLevel4b,ou=UnitLevel3a,ou=Uni >> tLevel2a,ou=UnitLevel1a for ADpam >> dn: >> ou=UnitLevel4b,ou=UnitLevel3a,ou=UnitLevel2a,ou=UnitLevel1a,dc=testDomain,dc >> =com >> changetype: modrdn >> newrdn: ou=UnitLevel4b >> deleteoldrdn: 1 >> newsuperior: ou=UnitLevel1a,dc=testDomain,dc=com >> >> What is the procedure in order to not to change the rdn? >> >> >> -------- Message d'origine-------- >> De: Gunter Holzer [mailto:[email protected]] >> Date: mer. 16/06/2010 12:38 >> À: François Chapuis ([email protected]) >> Cc: [email protected] >> Objet : AW: [lsc-users] RE : ldap2ldap synchro tasks >> >> Hi, >> >> is the source attribute name "telephoneNumber" the same as in the >> destination ldap directory? >> If not you have to specify the match: >> For MS AD its "Phone" not "telephoneNumber" >> >> #telephoneNumber <- Phone >> lsc.syncoptions.ADpam.telephoneNumber.create_value = >> srcBean.getAttributeValueById("Phone") >> >> Further you have to read the atrributes you like to sync from source AND >> destination directory. >> >> lsc.tasks.ADpam.srcService.attrs = ou st telephoneNumber >> and >> lsc.tasks.ADpam.dstService.attrs = ou st Phone >> >> Regards, >> >> Gunter >> >> >> >> >> Von: [email protected] >> [mailto:[email protected]] Im Auftrag von >> [email protected] >> Gesendet: Mittwoch, 16. Juni 2010 12:28 >> An: Clément OUDOT >> Cc: [email protected] >> Betreff: [lsc-users] RE : ldap2ldap synchro tasks >> >> >> By replacing "st" by "ou" it generates no error anymore. The problem is >> that the result is not as I hoped to. In my source serveur the all the >> units had an attibute telephoneNumber and not in the destination server. >> I >> wished the synchro would add these attribute to the matching unit and >> that is not done. >> How can I do that? >> >> >> -------- Message d'origine-------- >> De: Clément OUDOT [mailto:[email protected]] >> Date: mer. 16/06/2010 12:11 >> À: François Chapuis ([email protected]) >> Cc: [email protected] >> Objet : Re: [lsc-users] ldap2ldap synchro tasks >> >> 2010/6/16 <[email protected]>: >>> Hi >>> I am trying to synchronize 2 ldap servers but it doesn't work. There is >>> something I have certainly misunderstood in my lsc.properties. >>> The connection to the sources and destination are correct. >>> I have modified the lsc.properties-sample from the folder etc in a >>> lsc.properties and executed this command : bin/lsc -f etc -c all -s >>> all >>> -n >>> Here are the errors I obtain : >>> >>> juin 16 11:12:41 - ERROR - Error while looking for (st=2b) in >>> ou=UnitLevel1a: ja >>> vax.naming.ServiceUnavailableException: 192.168.6.105:10389; socket >>> closed; >>> rema >>> ining name 'ou=UnitLevel1a' >>> juin 16 11:12:41 - ERROR - Error while synchronizing ID >>> ou=UnitLevel4b,ou=UnitLe >>> vel3a,ou=UnitLevel2a,ou=UnitLevel1a: >>> javax.naming.ServiceUnavailableException: 1 >>> 92.168.6.105:10389; socket closed; remaining name 'ou=UnitLevel1a' >>> dn: >>> ou=UnitLevel4b,ou=UnitLevel3a,ou=UnitLevel2a,ou=UnitLevel1a,dc=testDomain,dc >>> =com >>> changetype: modrdn >>> newrdn: ou=UnitLevel4b >>> deleteoldrdn: 1 >>> newsuperior: ou=UnitLevel1a,dc=testDomain,dc=com >>> >>> juin 16 11:12:41 - ERROR - Error while looking for (st=4a) in >>> ou=UnitLevel1a: ja >>> vax.naming.CommunicationException: Software caused connection abort: >>> recv >>> failed >>> [Root exception is java.net.SocketException: Software caused connection >>> abort: >>> recv failed]; remaining name 'ou=UnitLevel1a' >>> juin 16 11:12:41 - ERROR - Connection lost! Aborting. >>> juin 16 11:12:41 - ERROR - Error while synchronizing ID >>> ou=UnitLevel4b,ou=UnitLe >>> vel3a,ou=UnitLevel2a,ou=UnitLevel1a: >>> javax.naming.CommunicationException: >>> Softwa >>> re caused connection abort: recv failed [Root exception is >>> java.net.SocketExcept >>> ion: Software caused connection abort: recv failed]; remaining name >>> 'ou=UnitLeve >>> l1a' >>> dn: >>> ou=UnitLevel4b,ou=UnitLevel3a,ou=UnitLevel2a,ou=UnitLevel1a,dc=testDomain,dc >>> =com >>> changetype: modrdn >>> newrdn: ou=UnitLevel4b >>> deleteoldrdn: 1 >>> newsuperior: ou=UnitLevel1a,dc=testDomain,dc=com >>> >>> juin 16 11:12:41 - INFO - Starting clean for ADpam >>> juin 16 11:12:41 - ERROR - javax.naming.CommunicationException: >>> Software >>> caused >>> connection abort: recv failed [Root exception is >>> java.net.SocketException: >>> Softw >>> are caused connection abort: recv failed]; remaining name >>> 'ou=UnitLevel1a' >>> juin 16 11:12:41 - ERROR - Empty or non existant destination (no IDs >>> found) >>> >>> My hierarchy is simple as you can see from my ldif : >>> version: 1 >>> dn: dc=testDomain,dc=com >>> objectClass: dcObject >>> objectClass: organization >>> o: testOrganisation >>> dc: testDomain >>> >>> dn: cn=Manager,dc=testDomain,dc=com >>> objectClass: organizationalRole >>> cn: Manager >>> >>> dn: ou=UnitLevel1a,dc=testDomain,dc=com >>> st: 1a >>> ou: UnitLevel1a >>> objectClass: organizationalUnit >>> telephoneNumber: 0400000000 >>> >>> dn: ou=UnitLevel1b,dc=testDomain,dc=com >>> st: 1b >>> ou: UnitLevel1b >>> objectClass: organizationalUnit >>> telephoneNumber: 0500000000 >>> >>> dn: ou=UnitLevel2a,ou=UnitLevel1a,dc=testDomain,dc=com >>> telephoneNumber: 0478000000 >>> st: 2a >>> ou: UnitLevel2a >>> objectClass: organizationalUnit >>> >>> dn: ou=UnitLevel2b,ou=UnitLevel1a,dc=testDomain,dc=com >>> telephoneNumber: 0477000000 >>> st: 2b >>> ou: UnitLevel2b >>> objectClass: organizationalUnit >>> >>> I am sure that the problem comes from something wrong in my >>> lsc.properties >>> and this particular extract: >>> # List of defined tasks, seperated by commas >>> lsc.tasks = ADpam >>> >>> # Java class name for the service to read objects from the source >>> # Either "org.lsc.jndi.SimpleJndiSrcService" for ldap2ldap, or >>> # "org.lsc.service.SimpleJdbcSrcService" for db2ldap >>> # According to which service you use here, you only need *one* of the >>> following sections >>> lsc.tasks.ADpam.srcService = org.lsc.jndi.SimpleJndiSrcService >>> >>> >>> ### SimpleJndiSrcService parameters >>> # The parameters in this section only apply to the SimpleJndiSrcService >>> # This section can safely be deleted if you are not using ldap2ldap >>> synchronization. >>> >>> # Base DN for searches in the directory >>> lsc.tasks.ADpam.srcService.baseDn = ou=UnitLevel1a >>> >>> # Filter to list all entries to synchronize >>> lsc.tasks.ADpam.srcService.filterAll = >>> (&(st=*)(objectClass=organizationalUnit)) >>> >>> # Attributes to read from all entries used to match objects between >>> source >>> and destination >>> lsc.tasks.ADpam.srcService.pivotAttrs = ou st >>> >>> # Filter to read one entry to synchronize, based on pivotAttrs above >>> # This filter may contain one or several pivotAttrs defined above, like >>> "{attributeName}" >>> lsc.tasks.ADpam.srcService.filterId = (st={st}) >>> >>> # Attributes to read from each entry used to read and write data >>> lsc.tasks.ADpam.srcService.attrs = ou st telephoneNumber >>> >>> Can you explain me what's wrong? >> >> >> Hi, >> >> the log says that LDAP server at 192.168.6.105:10389 is not available. >> Is the port correct? >> >> Clément. >> >> >> >> >> _______________________________________________________________ >> Ldap Synchronization Connector (LSC) - http://lsc-project.org >> >> lsc-users mailing list >> [email protected] >> http://lists.lsc-project.org/listinfo/lsc-users >> > > > > > > _______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-users mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-users

