...
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 | dn: cn=test, ou=system | dn: cn=test, ou=system | In this case, the ou value is simply added | dn: cn=test, ou=system |
add | dn: cn=test, ou=system | dn: cn=test, ou=system | dn: cn=test, ou=system | The ou attribute and its value has been created | dn: cn=test, ou=system |
add | dn: cn=test, ou=system | dn: cn=test, ou=system | dn: cn=test, ou=system | Nothing is done. | no reverse, void operation |
delete | dn: cn=test, ou=system | dn: cn=test, ou=system | dn: cn=test, ou=system | The ou=acme corp value has been deleted | dn: cn=test, ou=system |
delete | dn: cn=test, ou=system | dn: cn=test, ou=system | dn: cn=test, ou=system | The ou attribute has been removed | dn: cn=test, ou=system |
delete | dn: cn=test, ou=system | dn: cn=test, ou=system | dn: cn=test, ou=system | As all the ou values have been removed, | dn: cn=test, ou=system |
replace | dn: cn=test, ou=system | dn: cn=test, ou=system | dn: cn=test, ou=system | The ou attributes' values are replaced | dn: cn=test, ou=system |
replace | dn: cn=test, ou=system | dn: cn=test, ou=system | dn: cn=test, ou=system | Create the ou attribute | dn: cn=test, ou=system |
replace | dn: cn=test, ou=system | dn: cn=test, ou=system | dn: cn=test, ou=system | Delete the ou attribute | dn: cn=test, ou=system |
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).
...