Remove the need for project_id from API endpoints

Registered by Alan Bishop

Cinder's keystone catalog endpoints currently include a template for the project_id:

$ openstack endpoint list --service cinderv3 -c 'Service Name' -c URL
+--------------+------------------------------------------------+
| Service Name | URL |
+--------------+------------------------------------------------+
| cinderv3 | http://192.168.100.30/volume/v3/$(project_id)s |
+--------------+------------------------------------------------+

Including a project_id in the URL is not necessary because the project_id can be extracted from the keystone token for the user that is making an API request. Furthermore, requiring a project_id in the URL is incompatible with system scoped tokens, which don't have an associated project_id.

The proposal is to make the project_id optional in API URLs. The keystone endpoint would no longer use templating to include the project_id. However, in order to retain backward compatibility, the cinder API would continue to support API URLs that still include a project_id. Enhancing cinder to not require a project_id in API URLs would make its behavior consistent with other projects, namely nova and manila.

A new microversion will be added so that clients may know whether including a project_id in an API URL is optional (new behavior) or mandatory (old behavior).

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Alan Bishop
Direction:
Needs approval
Assignee:
Alan Bishop
Definition:
Review
Series goal:
Proposed for yoga
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.