Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We have three kind of modifications : add, delete and replace. They are applied in the order they are found in the Modify request, so the reverse LDIF must store them in reverse order too.

Depending on the modified values, each basic operation may have some different semantic. The following table present all the possible actions :

modification

initial entry

imported Ldif

resulting entry

Comments

Reverse LDIF

add

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: apache
ou: acme corp

dn: cn=test, ou=system
changetype: modify
add: ou
ou: BigCompany inc.
-

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: apache
ou: acme corp
ou:  BigCompany inc.

In this case, the ou value is simply added

dn: cn=test, ou=system
changetype: modify
delete: ou
ou: BigCompany inc.
-

add

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA

dn: cn=test, ou=system
changetype: modify
add: ou 
ou: BigCompany inc.
-

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou:  BigCompany inc.

The ou attribute and its value has been created

dn: cn=test, ou=system
changetype: modify
delete: ou 
ou: BigCompany inc.
-

add

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA

dn: cn=test, ou=system
changetype: modify
add: cn 
cn: test
-

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA 

Nothing is done.

no reverse, void operation 

delete

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: apache
ou: acme corp

dn: cn=test, ou=system
changetype: modify
delete: ou 
ou: acme corp

-  

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: apache

The ou=acme corp value has been deleted 

dn: cn=test, ou=system
changetype: modify
add: ou 
ou: acme corp

-  

delete

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: apacheou: acme corp

dn: cn=test, ou=system
changetype: modify
delete: ou 
-

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA 

The ou attribute has been removed

dn: cn=test, ou=system
changetype: modify
add: ou 
ou: apache
ou: acme corp 
-  

delete

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: apacheou: acme corp

dn: cn=test, ou=system
changetype: modify
delete: ou 
ou: apache
ou: acme corp

-  

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA

As all the ou values have been removed,
the attribute itself is deleted

dn: cn=test, ou=system
changetype: modify
add: ou 
ou: apache
ou: acme corp 
-  

replace

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: apache ou: acme corp

dn: cn=test, ou=system
changetype: modify
replace: ou 
ou: directory
ou: BigCompany inc.

-  

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: directory
ou: BigCompany inc.  

The ou attributes' values are replaced
by the new values.

dn: cn=test, ou=system
changetype: modify
replace: ou 
ou: apache
ou: acme corp

-  

replace

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA

dn: cn=test, ou=system
changetype: modify
replace: ou 
ou: apache
ou: acme corp

-  

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: apache ou: acme corp

Create the ou attribute

dn: cn=test, ou=system
changetype: modify
replace: ou 
-  

replace

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA
ou: apache ou: acme corp

dn: cn=test, ou=system
changetype: modify
replace: ou 
-  

dn: cn=test, ou=system
objectclass: top
objectclass: person 
cn: test 
sn: joe doe
l: USA 

Delete the ou attribute

dn: cn=test, ou=system
changetype: modify
replace: ou 
ou: apache
ou: acme corp

-

ModifyDNRequest

This request is used to move entries or to rename entries or to move and rename entries. Its counterpart in a ldif file is a 'changetype: moddn' or a 'changetype: modrdn' operation (moddn or modrdn are synonymous).

...