While trying to understand the whole process that makes back-sql work,
the following quote was really useful:
Pierangelo Masarati wrote on Fri, 4 Jun 2004 16:03:39 +0200
I'm talking about 2.2.X (2.2.11 at present).
- slapd uses the structuralObjectClass of the entry to look up the
objectClass mapping according to ldap_oc_mappings;
- it does some sanity checks (I'll discuss these later)
- it checks for the existence of the entry's parent
- it uses the ldap_oc_mappings create_proc to create the objectClass
entry in ldap_entries
- then, for each attribute, the corresponding values are inserted if
possible. I'll discuss later how to decide whether an add should succeed
or not if some (required?) attribute mapping is not available; now I
really have to go :)
Q1: Is this process still correct and is there more documentation around
this process?
Q2: What is the process for editing or remove data?
When I add an OU, the ldap_entry_objclasses shows the oc_name of the OU
object to be 'top', while the ldap_entries table shows the oc_map_id to
be that of organizationalUnit.
When I now try to edit the name of this object, I get the following
error, which I get as well on trying to edit any other object:
Could not rename the entry / Could not perform ldap_modify operation.
LDAP said: Object class violation
Error number: 0x41 (LDAP_OBJECT_CLASS_VIOLATION)
Description: You tried to perform an operation that would cause an
undefined attribute to exist or that would remove a required attribute,
given the current list of ObjectClasses. This can also occur if you do
not specify a structural objectClass when creating an entry, or if you
specify more than one structural objectClass.
Any clue what that could be?