This is my fault... the script was not tested (and is still not...).
Please try:
lsc.tasks.ADpam.dn = var dn = "" + srcBean.getDistinguishedName() ; \
var pos = dn.lastIndexOf("dc=testDomain,dc=com") ; \
if (pos > 0) { \
dn = dn.substring(0, pos - 1); \
} \
dnRegards, Raphaël Ouazana. Le Jeu 17 juin 2010 09:53, [email protected] a écrit : > It worked when I had filtered with one item : > lsc.tasks.ADpam.srcService.filterAll = > (&(ou=UnitLevel2b)(objectClass=organizationalUnit)) > Thank you all for your help > However I tried to synchromize all units together by changing the command > filter > lsc.tasks.ADpam.srcService.filterAll = > (&(ou=*)(objectClass=organizationalUnit)) > Now I have a problem with the DN when a unit was in the source but not in > the destination. I wished the unit in the source to be added in the > destination. > Here are an extract of the errors: > juin 17 09:38:36 - ERROR - org.mozilla.javascript.EcmaError: > ReferenceError: "dn > " n'est pas dÚfini (<cmd>#1) > juin 17 09:38:36 - WARN - No DN set! Trying to generate an DN based on > the uid > attribute! > juin 17 09:38:36 - ERROR - Error while synchronizing ID {ou=UnitLevel4c, > st=4c}: > java.lang.RuntimeException: -- Development error: No RDN found (uid by > default) > ! > juin 17 09:38:36 - ERROR - org.mozilla.javascript.EcmaError: > ReferenceError: "dn > " n'est pas dÚfini (<cmd>#1) > juin 17 09:38:36 - ERROR - org.mozilla.javascript.EcmaError: > ReferenceError: "dn > " n'est pas dÚfini (<cmd>#1) > juin 17 09:38:36 - ERROR - org.mozilla.javascript.EcmaError: TypeError: > Cannot c > all method "substring" of null (<cmd>#1) > > I think that Because the dn is not already created in the destination It > can't change it. How about creating it? > There are a lot more errors after but I think they are linked with. > > Regards, > François Chapuis > > -------- Message d'origine-------- > De: Raphaël Ouazana-Sustowski [mailto:[email protected]] > Date: jeu. 17/06/2010 09:29 > À: François Chapuis ([email protected]) > Cc: Gunter Holzer; [email protected] > Objet : Re: ldap2ldap synchro task configuration > > Hi, > > OK I see the problem: the dn is complete so the suffix is added twice. > > Please try the following: > lsc.tasks.ADpam.dn = srcBean.getDistinguishedName().substring(0, > dn.lastIndexOf("dc=testDomain,dc=com") - 1) > > > Le Jeu 17 juin 2010 09:24, [email protected] a écrit : >> Hi, >> I changed it but it makes the same error. It seems that it wants to >> delete >> the previous item but can't do it because this item has children. >> Here is again the error : >> juin 17 09:15:04 - WARN - WARNING: updating the RDN of the entry will >> cancel ot >> her modifications! Relaunch synchronization to complete update. >> juin 17 09:15:04 - 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 17 09:15:04 - 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=UnitLevel1a,dc=testDomain,dc=com,dc=testDomain,dc=com >> >> Do I really have to set the dst.java.naming.recursivedelete property to >> true? Is there any other way not to delete the element? >> >> Regards, >> François Chapuis >> >> -------- Message d'origine-------- >> De: Raphaël Ouazana-Sustowski [mailto:[email protected]] >> Date: mer. 16/06/2010 18:03 >> À: François Chapuis ([email protected]) >> Cc: Gunter Holzer; [email protected] >> Objet : Re: RE : [lsc-users] RE : RE : ldap2ldap synchro tasks >> >> 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? >> > > > > > > _______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-users mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-users

