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:
Complete
Approver:
None
Priority:
High
Drafter:
Alan Bishop
Direction:
Approved
Assignee:
Alan Bishop
Definition:
Approved
Series goal:
Accepted for yoga
Implementation:
Implemented
Milestone target:
milestone icon yoga-3
Started by
Brian Rosmaita
Completed by
Brian Rosmaita

Related branches

Sprints

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.