The script didn't worked (the destination dn was undefined) and I changed it
into :
var dn = "" + srcBean.getDistinguishedName() ;
var pos = dn.lastIndexOf("dc=testDomain,dc=com") ;
if (pos > 0) {
dn = dn.substring(0, pos - 1);
}
lsc.tasks.ADpam.dn = dn;
With this script the telephone Number are added but there still have a lot of
errors :
juin 17 10:13:59 - ERROR - org.mozilla.javascript.EcmaError: ReferenceError: "dn
" n'est pas dÚfini (<cmd>#1)
juin 17 10:13:59 - ERROR - org.mozilla.javascript.EcmaError: ReferenceError: "dn
" n'est pas dÚfini (<cmd>#1)
juin 17 10:13:59 - ERROR - org.mozilla.javascript.EcmaError: ReferenceError: "dn
" n'est pas dÚfini (<cmd>#1)
juin 17 10:13:59 - INFO - # Updating entry ou=UnitLevel2b,ou=UnitLevel1a for AD
pam
dn: ou=UnitLevel2b,ou=UnitLevel1a,dc=testDomain,dc=com
changetype: modify
add: telephoneNumber
telephoneNumber: 0477000000
These errors are printed for each unit... Do I have to ignore these errors?
Morover the unit I wanted to be created is not :
juin 17 10:13:59 - ERROR - org.mozilla.javascript.EcmaError: ReferenceError: "dn
" n'est pas dÚfini (<cmd>#1)
juin 17 10:13:59 - WARN - No DN set! Trying to generate an DN based on the uid
attribute!
juin 17 10:13:59 - ERROR - Error while synchronizing ID {ou=UnitLevel4c, st=4c}:
java.lang.RuntimeException: -- Development error: No RDN found (uid by default)
!
How can I create the missing unit in the destination?
François Chapuis
-------- Message d'origine--------
De: Raphaël Ouazana-Sustowski [mailto:[email protected]]
Date: jeu. 17/06/2010 10:00
À: François Chapuis ([email protected])
Cc: Gunter Holzer; [email protected]
Objet : Re: RE : ldap2ldap synchro task configuration
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); \
} \
dn
Regards,
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