directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject Re: [AdminPoint] Add operation
Date Fri, 17 Dec 2010 16:15:17 GMT
On 12/17/10 4:30 PM, Pierre-Arnaud Marcelot wrote:
> Hi Emmanuel,
> Comments inline below...
> On 17 déc. 2010, at 14:37, Emmanuel Lecharny wrote:
>> Here is the description of an Add operation, and how it's handled by the AdministrativePoint
handler. The parts between>>>--- and ---<<<  are pseudo code.
>> +--+
>> |AP|
>> +--+
>> We have to deal with three cases :
>> - the AP has a parent AP (IAP or SAP, it's irrelevant) and no subordinate IAP
>> - the AP has a parent AP but some subordinate IAPs
>>   in this second case, we have to change the IAPs seqNumber to reflect the change
in entries relationship, recusively.
>> - the AP has no parent AP
>> The second case is the most complex.
>>>>> -------------------------------------------
>> for each AP role
>>   get a new seqNumber, add it to the AP(role)
>>   update the AP(role) cache
>>   if hasParentAP( AP(role) )
>>     then
>>       if hasSubordonateIAP( AP(role) )
>>         then
>>           for each subordinate IAP(role) (and their own subordinates)
>>             modify the subordinate IAP(role) seqNumber with the new seqNumber
>>             store the IAP(role)
>>           done
>> done
>> continue down the chain
>> -------------------------------------------<<<
> I disagree. In any case, you won't have any entry under the SAP.
> So, you only need to add the AP to the cache.

Right ! Otherwise, if we add an AdministrativeRole to an entry, it's a 
modify operation, not an add.

>> +--------+
>> |Subentry|
>> +--------+
>> We can't add a subentry if the immediate parent is not an AP and if the parent AP
does not have the same role (or of the parent  is an IAP and there are no higher parent with
the same role).
>> Otherwise, adding a subentry is just a matter to update the parent's AP seqNumber
(and all the hierarchy up to the first SAP if it's an IAP)
>> As a subentry is only associated with one single role, we don't have to loop on all
the roles
> This goes against what you previously stated in your introduction:
>>> X.500 also says that a subentry can also be used to handle more than one specific
role, which is done by having more than one auxiliary ObjectClass being added in the subentry.
> We might want to loop on all roles, then.


I'll update the doco. I will also move it to the wiki.

Thanks Pierre-Arnaud !

Emmanuel Lécharny

View raw message