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

Object/Attrib confusion between slapadd and ldapxxx



I've got myself quite confused hopefully someone will recognize the problem and have some good advise for me.

I'm trying to setup an ldap directory (2.0.11) based off of an LDIF from a NS4.1DS.
I've translated my schemas and figured out how to translate all the latin1 to utf8 and all is well with the database except for one last detail.

My ldif contained a first entry that looked like this...

dn: o=zzzz, c=US
objectclass: top
objectclass: organization
o: zzzz
aci: --- aci junk here ---    
modifiersname: cn=directory superuser
modifytimestamp: 20000705165735Z
copiedfrom: wwww.xxxx.yyyy.com:389 019990310230522 123456

To make ACI and COPIEDFROM fit I added them to TOP as follows. Is there a better way to do this? I have to do this to hopefully display openldap "working" as well as/better the NS consumer servers before it can be considered as a replacement. I did it like this...

attributetype ( 1.3.6.1.4.1.9036.1.1 NAME 'aci'
        DESC 'Access Control Instruction'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 )

attributetype ( 666.1.1.133 NAME 'copiedFrom'
        DESC 'NS DS-4.12 replicaton server identification field'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.44)

objectclass ( 2.5.6.0 NAME 'top'
        DESC 'superior class of all structural and most auxiliary classes'
        ABSTRACT MUST objectClass
        MAY ( aci $ copiedFrom ) ) 

That seems to work. SLAPADD adds them to the database from the ldif. I can even query them the way NS does when it wants to replicate (several attempts with tracing revealed this) to a server and the correct answer is generated.

dap@server:/usr/local/etc/openldap > /usr/local/bin/ldapsearch -b "o=zzzz,c=us"  objectclass=* -s base copiedfrom
# extended LDIF
#
# LDAPv3
# filter: objectclass=*
# requesting: copiedfrom
#

# zzzz, US
dn: o=zzzz, c=US
copiedFrom: wwww.xxxx.yyyy.com:389 019990310230522 123456

# search result
search: 2
result: 0 Success

# numResponses: 2
 
Now here is the problem. When I go to use ldapmodify/add/delete to change the value for copiedform to start up NS4.1DS replication this happens. 

dap@server:/usr/local/etc/openldap > /usr/local/bin/ldapmodify -f update
modifying entry "o=zzzz,c=US"
ldap_modify: No such object

ldif_record() = 32

Where the update looks like this...

dn: o=zzzz,c=US
changetype: modify
delete: copiedfrom
-
add: copiedfrom
copiedfrom: aaaa.bbbb.cccc.com:389 02000041114345 54321

Did slapadd allow something it shouldn't have and ldapxxxx's are turning their noses rightly so? This appears to be the last "issue" (I hope) with setting up replication between NS4.1DS and openldap. 

Thanks.              

******************************************************************* 
Alan D. Lawrence 
Phone:  (313)390-2312    Address:    Ford Motor Company 
Fax:    (313)390-1274                American Road 
Email:  alawren3@ford.com            P.O. Box 1732, MD1489 
                                     Dearborn, MI 48121