[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Replication: class filter.



in your filter , you provide :
>
attr!="posixAccount,shadowAccount,loginShell,homeDirectory,uidNumber,gidNumb
er,gecos"
where the "posixAccount ,shadowAccount " etc. are the value of objectclass
("objectclass" is an attribute name) , not a attribute name, and the "attr"
directive only accepts to including or excluding  attributes' names. slapd
does not recognize an attribute type with posixAccount etc. so you will get
errors. :-)


----- Original Message -----
From: "Marco Marcal" <marco.marcal@emi.u-bordeaux.fr>
Cc: <openldap-software@OpenLDAP.org>
Sent: Friday, April 25, 2003 3:03 PM
Subject: Replication: class filter.


> Hello,
>
> i have problems concerning replication and class filter...
>
> If my filter contains only names of attributes, the replication goes.
> If it contains the name of a class, I have an object class violation
> error...
>
> ex :
> DIT of the master :
>
> dc=xxx,dc=fr
>       |
>       |
>     ou=people
>       |
>       |-----------------------------
>       |       |
>     ou=employes                  ou=students
>       |
>   -----------
>   |      |  |
>  uid=... uid=...
>
>
>
> DIT of the slave :
>
>
>
> ou=employes,dc=xxx,dc=fr
>        |
>        |
>   -----------
>   |      |  |
>  uid=... uid=...
>
>
> *********************
> i want to add :
> *********************
>
> dn: sn=zozo,ou=employes,ou=people,dc=xxx,dc=fr
> objectclass: top
> objectclass: person
> objectclass: organizationalPerson
> objectclass: inetOrgPerson
> objectclass: rearsitexxx1
> objectclass: webMailxxx1
> uid: eiei
> cn: zozo eiei
> sn:  zozo
> givenName: Jean
> mail: zozo@ui.xxx.fr
> l: France
> rearsiteLogin: fantoche
> rearsitePassword: cestlepass
> rearsiteHomeDirectory: /home/monhome
> webMailMail: pouet@pouet.fr
> webMailMailDrop: dropdrop
> webMailPassword: passdrop
>
> *********************
> filter :
> *********************
>
> replica host=slave.xxx.fr:389
>  suffix="ou=employes,ou=people,dc=xxx,dc=fr"
>  binddn="cn=replicator,ou=employes,ou=people,dc=xxx,dc=fr"
>  attr!=givenName,mail,uid,l
>  bindmethod=simple credentials=secretreplicator
>
> => All occurs well...
>
> *********************
> I want to add :
> *********************
>
> dn: uid=lester,ou=employes,ou=people,dc=xxx,dc=fr
> objectClass: top
> objectClass: posixGroup
> objectClass: posixAccount
> objectClass: shadowAccount
> uid: lester
> cn: Lester the Nightfly
> userPassword: {crypt}X5/DBrWPOQQaI
> gecos: Lester
> loginShell: /bin/csh
> uidNumber: 10
> gidNumber: 10
> homeDirectory: /home/lester
>
> **********************
> filter rules are :
> **********************
>
> replica host=slave.yyy.xxx.fr:389
>  suffix="ou=employes,ou=people,dc=xxx,dc=fr"
>  binddn="cn=replicator,ou=employes,ou=people,dc=xxx,dc=fr"
>
attr!="posixAccount,shadowAccount,loginShell,homeDirectory,uidNumber,gidNumb
er,gecos"
>
>  bindmethod=simple credentials=secretreplicator
>
> **********************
> Extract of the slurpd in debug mode :
> *********************
>
> #########################
> As soon as slurpd want to replicate the root of my DIT, dang, error...
> #########################
>
> replica slave.yyy.xxx.fr:389 - add dn
> "ou=employes,ou=people,dc=xxx,dc=fr"
> ldap_add_ext
> ldap_send_initial_request
> ldap_send_server_request
> ber_flush: 432 bytes to sd 6
>   0000:  30 82 01 ac 02 01 02 68  82 01 88 04 2a 6f 75 3d
> 0......h....*ou=
>   0010:  65 6d 70 6c 6f 79 65 73  2c 6f 75 3d 70 65 6f 70
> employes,ou=peop
>   0020:  6c 65 2c 64 63 3d 75 2d  62 6f 72 64 65 61 75 78   le,dc=xxx
>
> [...]
>
> ldap_read: want=9, got=9
>   0000:  30 24 02 01 02 69 1f 0a  01                        0$...i...
> ldap_read: want=29, got=29
>   0000:  41 04 00 04 18 6e 6f 20  6f 62 6a 65 63 74 43 6c   A....no
> objectCl
>   0010:  61 73 73 20 61 74 74 72  69 62 75 74 65            ass
> attribute
> ber_get_next: tag 0x30 len 36 contents:
> ber_dump: buf=0x08082420 ptr=0x08082420 end=0x08082444 len=36
>   0000:  02 01 02 69 1f 0a 01 41  04 00 04 18 6e 6f 20 6f
> ...i...A....no o
>   0010:  62 6a 65 63 74 43 6c 61  73 73 20 61 74 74 72 69   bjectClass
> attri
>   0020:  62 75 74 65                                        bute
> ldap_read: message type add msgid 2, original id 2
> ber_scanf fmt ({iaa) ber:
> ber_dump: buf=0x08082420 ptr=0x08082423 end=0x08082444 len=33
>   0000:  69 1f 0a 01 41 04 00 04  18 6e 6f 20 6f 62 6a 65   i...A....no
> obje
>   0010:  63 74 43 6c 61 73 73 20  61 74 74 72 69 62 75 74   ctClass
> attribut
>   0020:  65                                                 e
> read1msg:  0 new referrals
> read1msg:  mark request completed, id = 2
> request 2 done
> res_errno: 0, res_error: <>, res_matched: <>
> ldap_free_request (origid 2, msgid 2)
> ldap_free_connection
> ldap_free_connection: refcnt 1
> ldap_parse_result
> ber_scanf fmt ({iaa) ber:
> ber_dump: buf=0x08082420 ptr=0x08082423 end=0x08082444 len=33
>   0000:  69 1f 0a 01 41 04 00 04  18 6e 6f 20 6f 62 6a 65   i...A....no
> obje
>   0010:  63 74 43 6c 61 73 73 20  61 74 74 72 69 62 75 74   ctClass
> attribut
>   0020:  65                                                 e
> ber_scanf fmt (}) ber:
> ber_dump: buf=0x08082420 ptr=0x08082444 end=0x08082444 len=0
>
> ldap_msgfree
> ldap_err2string
> Error: ldap_add_s failed adding "Object class violation":
> ou=employes,ou=people,dc=xxx,dc=fr
> ldap_err2string
>
>
>
>
> Any idea ?
>
>
> --
> Marco Marçal
>
>
>
>