Hi,

here is a reviewed version of the Rename operation, as I know have a better vision of what it implies.

Subentry rename :
Renaming a subentry has *no* impact on the DIt, but we have to update the Subentry cache, as we store the CN in the subentry class. To retrieve the modified subentry in the SubentryCache, we will use its DN as an index. The 4 APCaches won't be impacted.

AP rename :
Here, we have to handle two different cases for each role. We will process each role accordingly :
1) the AP is a SAP or an IAP for the processed role
If the AP is a SAP, we can safely rename it, rename all the underlying entries, and we are done. We don't need to update the seqNumber because we haven't modified anything that could impact the subtree specification for any of the associated subentries. Enough said that the subtree specification will only contain LocalName for the base, chopBefore and chopAfter elements, all those names being relative to the AP's DN. If the AP is a IAP, it's a different story. We now have to check if the chain of IAP for this role up to the parent SAP for this role have subtree Specification that define a base, a chopBefore or chopAfter localName, because if they do, then the evaluation will have to be done again.

Here, we consider that renaming an AP should *not* impact the subtreeSpecifications. It's up to the admin to modify those subtree specification accordingly to the renaming being done.

If any subtree have been impacted, then we must update the associated AP's seqNumber, in order to have the entries being reevaluated when accessed. It's enough to get a new seqNumber and to inject it in the modified IAP/SAP. We will do that for each IAP up to the parent SAP.

2) the AP is not a SAP nor an IAP for the processed role
Then the AP will be considered as a standard entry, and will be processed accordingly (see below)

Entry rename :
We fall in the same case as when the AP is renamed, and it's an IAP. We have to check the entry's parent AP, for each role, and check if the associated subtree specification contain references to the previous name. if so, we have to update the AP's seqNumber. If the entry's parent AP is an IAP, we must continue until we get the parent SAP.


Note : this is the ultimate solution, but we can also play medieval on APs, not checking the subentries. However, that would be brutal, because we may impact may entries that are not under the modified entry. This is typically a case where we may modify more entries than what we could if we were to update the underlying entries immediately.
--

Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to