[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Enterprise Schema for Ganymede

Date Mon, 17 Aug 1998 22:59:42 -0500 (CDT)
From Jonathan Abbey <jonabbey@arlut.utexas.edu>

Stephen L Johnson <sjohnson@monsters.org> wrote:
|
| I think the ease of adding multiple DNS zones or multiple is how well
| developed your namespace code is.  If it can handle multiple fields with in a
| single namespace, it would be fairly trivia to add multiple NIS domains to the
| Gash schema.  I'm still through around ideas about multiple DNS zones and
| delegation of zones.

Yeah, the namespace stuff was intentionally designed so that multiple fields
could be managed by one namespace..  the need to manage usernames and email
aliases together in a single namespace, as well as the need to manage system
names and host names together in GASH led to that design.

It seems like for doing multi-domain NIS management, you'd want the converse,
though..  to meld two fields together and consider that product to be the
thing managed by the namespace code, rather than to have the namespace code
keep names unique across two or more separate fields in possibly two or more
different object types.

The way I've been handling this the couple of times things like this have come
up is to create 'hidden' fields in an object definition, and have the
DBEditObject.wizardHook() method overridden in the object type's custom
plug-in to write "name" + "domain" into that hidden field, which would be
managed by the namespace.  This works great, but it's not something that's
immediately intuitive, nor is it something that naturally falls out of working
with the schema editor.  You wind up needing to declare a class to manage the
object type, you need to write a 'canSeeField()' method to hide the field you
want to use for the 'scratch' calculations, and have the 'wizardHook()' method
intercept changes to the username and/or NIS name and do the appropriate
changes to the hidden field.

This approach has its problems, though.. if for some reason you anticipated
possibly changing the name of the NIS domain, you'd have to go through the
entries and change all the hidden fields to match.. and you'd have to do this
sort of hack for all objects you'd want to manage across multiple NIS domains.

Using a string of the form 'name:invid' where invid is the invariant object id
of an NIS domain object for the hidden field would take care of the rename
issue, and as for the issues of code duplication, you could write a subclass
of DBEditObject which would contain the field synthesis / namespace logic, and
in turn subclass that for the various objects (user, group, etc.) that were to
be managed across multiple NIS domains.

Anyway, certainly not trivial unless I'm missing something, but the Ganymede
customization framework can probably do the job as it stands, with a bit of
effort.  This design problem directly affects multiple DNS domain management,
though, so it would be nice if there was a more elegant solution to this.

Having a way in the schema editor to say that you wanted the product of
two fields to be melded together and managed by a namespace would be great,
but complicated from a user interface standpoint.  I've thought of having
a method in DBEditObject that would allow you to interpose a calculation
into the generation of a namespace key would simplify all this (and would
remove the need for a hidden field), but then you have to worry about not
being able to use the namespace hash for optimized lookup in the query
engine.

Hmm.

-------------------------------------------------------------------------------
Jonathan Abbey				              jonabbey@arlut.utexas.edu
Applied Research Laboratories                 The University of Texas at Austin
-------------------------------------------------------------------------------

----------------------------------------------------------------------------
To make changes to your subscription to the ganymede mailing list, send
mail to majordomo@arlut.utexas.edu.

To unsubcribe, include the line

unsubscribe ganymede

in the body of your mail message

Download ganymede from ftp.arlut.utexas.edu/pub/ganymede/.

To see the latest design specs for Ganymede, visit the Ganymede web page
at http://www.arlut.utexas.edu/gash2/
----------------------------------------------------------------------------