[openstack-dev] Remove tenant/project ID from Nova v3 API URLs

Mauro Rodrigues maurosr at linux.vnet.ibm.com
Thu May 9 12:44:38 UTC 2013


yes, it makes sense... +1 for the idea.

I also would like to see how priority you guys think this is, I mean, 
seems to me that this is kind of wish list, although if we leave this to 
later steps on H, can be problematic to remove

On 05/09/2013 09:11 AM, Flavio Percoco wrote:
> On 08/05/13 18:01 -0400, Russell Bryant wrote:
>> On 05/08/2013 05:27 PM, Gabriel Hurley wrote:
>>> Proposal: The project/tenant ID should be dropped from the Nova v3 
>>> API URL structure.
>>>
>>> Rationale: Removing it would simplify the requirements on the 
>>> Keystone Service Catalog, it makes the future path for 
>>> clients/consumers doing API version discovery better, and it makes 
>>> the URLs significantly shorter, cleaner and more human-parseable.
>>>
>>> The arguments in favor of including the project ID thus far have 
>>> been twofold, both of which I will thusly invalidate:
>>>
>>> 1. RESTfulness -- in purest REST the context of a request should not 
>>> in any way alter the results returned by that endpoint. Thereby the 
>>> argument was that we have to include the project ID in the URL in 
>>> order to ensure that the "context" doesn't change the results. 
>>> However, the project ID has not been the defining factor for what is 
>>> returned by the RESTful URL for some time. We're actually using the 
>>> AUTH TOKEN context to vary the response, so the entire argument is 
>>> already faulty. That aside, the argument in favor of including the 
>>> project ID in the URL to be "proper" is built on a somewhat dated 
>>> notion of RESTfulness which many implementers (even within 
>>> OpenStack) have chosen to eschew. I don't believe we gain anything 
>>> by trying to adhere to this standard on principle when it offers no 
>>> benefit.
>>>
>>> 2. Caching -- a completely naïve cache would rely solely on the URL 
>>> path to cache responses. As described above, this is already broken 
>>> because two users with different roles may receive different 
>>> responses on the same project ID. Any reasonable caching layer can 
>>> cache based on a header, in this case Vary: X-Auth-Token.
>>>
>>> If anyone has other arguments in favor of keeping the project ID in 
>>> the URL I'd love to hear them, but otherwise I formally request that 
>>> it be removed going forward.
>>>
>>> All the best,
>>
>> This all sounds reasonable to me.
>>
>> If everyone agrees, we need a blueprint for it and make it a pre-req for
>> the top-level v3-api blueprint.  Then, we may need a volunteer to take
>> this on to make sure it gets done in Havana.  I feel like cyoeh has a
>> pretty full v3 API plate already.
>>
>
> Sounds like a plan! +1
>
> Cheers,
> FF
>




More information about the OpenStack-dev mailing list