On 02/19/2014 08:58 PM, Adam Young wrote: >> Can you give more detail here? I can see arguments for both ways of >> doing this but continuing to use ids for ownership is an easier >> choice. Here is my thinking: >> >> 1. all of the projects use ids for ownership currently so it is a >> smaller change > That does not change. It is the hierarchy that is labeled by name. > >> 2. renaming a project in keystone would not invalidate the ownership >> hierarchy (Note that moving a project around would invalidate the >> hierarchy in both cases) >> > Renaming would not change anything. > > I would say the rule should be this: Ids are basically uuids, and are > immutable. Names a mutable. Each project has a parent Id. A project > can either be referenced directly by ID, oir hierarchically by name. In > addition, you can navigate to a project by traversing the set of ids, > but you need to know where you are going. THus the array > > ['abcd1234',fedd3213','3e3e3e3e'] would be a way to find a project, but > the project ID for the lead node would still be just '3e3e3e3e'.
The analogy I see here is the unix file system which is organized into a tree structure by inodes, each inode has a name (technically it can have more than one name). But the fundamental point is the structure is formed by id's (e.g. inodes), the path name of a file is transitory and depends only on what name is bound to the id at the moment. It's a very rich and powerful abstraction. The same concept is used in many database schemas, an object has a primary key which is numeric and a name. You can change the name easily without affecting any references to the id. -- John _______________________________________________ OpenStack-dev mailing list [email protected] http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
