I would like to keep the service type  and name under the service and not the 
endpoint, too.  Make it easier to parse for a given service.

One thing is that I am not sure if we need the metadata tag... In the Keystone 
XSD, we have the construct <anyAttribute namespace="##other" 
processContents="lax"/>, which allows any additional, implementation-specific 
attribute to be added.  Those that do not support the specific attribute can 
simply ignore it.   A couple of benefits I can see with not using the metadata 
tag, and just use the custom element directly like this:  
http://paste.openstack.org/show/13832/, which the anyAttribute supports, are:


*         Simplier parsing, one level less.

*         If that attribute becomes a core attribute later, no need to change 
the parser.

Liem

From: openstack-bounces+liem_m_nguyen=hp....@lists.launchpad.net 
[mailto:openstack-bounces+liem_m_nguyen=hp....@lists.launchpad.net] On Behalf 
Of Joe Savak
Sent: Tuesday, April 24, 2012 1:04 PM
To: Joseph Heck; openstack@lists.launchpad.net (openstack@lists.launchpad.net)
Cc: Adam Gandelman
Subject: Re: [Openstack] [Keystone] What exactly are we modeling with endpoints?

Having endpoints under the service construct is supposed to make it easier to 
programmatically find the endpoint(s) you are interested in.

For example - as nova client I can parse the service catalog and identity nova 
by service-type "compute" in order to get the public, internal, and admin 
endpoints for nova.

By having service type & name as attributes under the endpoint, I'll have a 
harder time doing that (having to dive into each endpoint construct to identify 
the ones with service-type "compute").
Maybe it would be better to have each endpoint have its own construct inside of 
a service.

So instead of http://paste.openstack.org/show/13678/
Maybe http://paste.openstack.org/show/13682/


From: openstack-bounces+joe.savak=rackspace....@lists.launchpad.net 
[mailto:openstack-bounces+joe.savak=rackspace....@lists.launchpad.net] On 
Behalf Of Joseph Heck
Sent: Friday, April 20, 2012 4:16 PM
To: openstack@lists.launchpad.net (openstack@lists.launchpad.net)
Cc: Adam Gandelman
Subject: [Openstack] [Keystone] What exactly are we modeling with endpoints?

While I've been roaming about the summit and conference, I've been trying to 
figure out exactly what we're modeling with the current "service" and 
"endpoints" that are in the API today. After talking with a number of folks, 
it's getting clearer that how it's being used is very installation specific.

I'd like to simplify this aspect of the API if at all possible, especially with 
a lot of the good ideas around describing the relationships between endpoints 
and and their installation.

The use cases I'm hearing actively in use are:

* (Horizon/UI/client) To indicate to a user where they can go to access their 
data
* (Glance, Nova, Keystone client) to find the endpoint relevant to uploading 
images (current client implementations appear to assume there is only one image 
endpoint)

The use case to indicate a geographic location for a datacenter or "cloud" is 
not consistent - some implementations I've learned of have that feature (and 
use "Region" for that sort of information), and others are load balancing a 
single endpoint to deploy to multiple datacenters and geographic regions from a 
single endpoint.

At the summit and conference, I heard a desire to expose geographic information 
with the endpoints, but that is clearly an operator specific 
implementation/deployment detail. Likewise I heard a lot of "We could 
really..." if additional metadata was easily available on endpoints, again in 
fairly implementation/deployment specific detail.

So looking forward towards a v.next API, what do you all think about having 
just "endpoints", with everything else being attributes on those endpoints 
(including what "service" and "type" it is), with some expected conventions 
(that there are a few well defined types - such as PublicURL and InternalURL, 
and relevant names for the rest API endpoints (ec2, compute, volume, image, 
identity...)

Additional metadata can then float on the endpoints in 
deployment/implementation specific ways that don't lock in other systems to be 
deployed and implemented in the same fashion.

-joe


On Apr 20, 2012, at 1:47 PM, Lorin Hochstein wrote:
On Apr 13, 2012, at 12:34 PM, Adam Gandelman wrote:
On 04/13/2012 10:50 AM, Dolph Mathews wrote:
While $(tenant_id)s is certainly the documented syntax, it appears that the SQL 
catalog backend (and *only* the SQL catalog backend, as far as I can tell) 
explicitly supports both $(tenant_id)s and %(tenant_id)s:

https://github.com/openstack/keystone/blob/master/keystone/catalog/backends/sql.py#L163

Perhaps Adam Gandelman has some insight?

-Dolph

Dolph-

No, the same is supported in the case of templated catalog as well, which is 
what the SQL catalog was largely based off:

https://github.com/openstack/keystone/blob/master/keystone/catalog/backends/templated.py#L115

Just tested that "sed -i 's/\$/%/g' /etc/keystone/default_catalog.templates" 
still produces a functional service catalog when configured to use the 
templated backend.

Seeing as both are supported, perhaps it would be better for docs to be updated 
to refer to the use of % instead of $ to avoid people running into problems 
with the $() sub-shell?

The OpenStack Install and Deploy manual has some language about this (see last 
paragraph): 
http://docs.openstack.org/trunk/openstack-compute/install/content/elements-of-keystone-service-catalog-entry.html

This hasn't made its way into the admin docs yet, though.


Take care,

Lorin
--
Lorin Hochstein
Lead Architect - Cloud Services
Nimbis Services, Inc.
www.nimbisservices.com<https://www.nimbisservices.com/>



_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : 
openstack@lists.launchpad.net<mailto:openstack@lists.launchpad.net>
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to