Chris Dukes wrote:
> I have to work with IBM Directory Server on a regular basis, and that
> includes some nasty schema analysis for moving some history local schema
> modifications to new versions of the product.
> I was able to use ldap.schema to simplify most of the nastiness.
>
> However, IBM extends the schema with the additional attribute
> IBMAttributetypes, which describes chracteristics of how attributes will
> be stored in the backend.
>
> IBM was polite enough to document the grammar for this new attribute and
> I'll be attempting to create an IBMAttributetype class to hold these.
I vaguely remember coming across these proprietary IBM schema attributes. I
wonder why they did not add their specific things to normal
AttributeTypeDescription like other directory vendors did. Oh, well...
Could you please refer to docs of the grammar?
> Now, should I just add the new class to ldap.schema.models and submit a
> patch once done? Or should a long term approach of being able to
> indicate the addition of server specific extensions be contemplated?
I already thought about this when looking at vendor-specific extensions for
AttributeTypeDescription for Novell eDirectory and OpenLDAP.
Here are some remarks:
1. ldap.schema is somewhat experimental although quite robust in recent
deployments. The API is still undocumented mainly because I would be willing
to change it if someone comes up with good ideas how to improve it.
2. Lib/ldap/schema/models.py is very closely modeled after RFC 4512. If the
IBM grammar loosely follows what's in that RFC 4512 you have a good chance to
derive from these classes and extend them by setting class attribute
token_defaults according to what's needed.
3. There's ldap.schema.subentry.SCHEMA_CLASS_MAPPING which maps subschema
subentry attribute types to Python schema classes in ldap.schema.models. So
you have to somewhat register the IBM-specific attributes there.
Curious to hear about how to proceed with that.
Ciao, Michael.
|