Remove the need for project_id from API endpoints
Manila API endpoints on a typical system look like this:
$ openstack endpoint list --service manila
+------
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
+------
| 531f4218a4434e2
+------
$ openstack endpoint list --service manila --service manilav2
+------
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
+------
| 792799ff0f4640c
+------
When a user obtains a API token from keystone, they also use the keystone service catalog to list
the endpoints, whereby the project_id is substituted correctly, and the endpoint is handed to the user.
For example:
$ openstack catalog list -f yaml | grep manila -B 6
- Endpoints:
- id: 792799ff0f4640c
interface: public
region: RegionOne
region_id: RegionOne
url: http://
Name: manilav2
--
- Endpoints:
- id: 531f4218a4434e2
interface: public
region: RegionOne
region_id: RegionOne
url: http://
Name: manila
However, manila itself doesn't care about this project_id in the URL - when using Keystone, all authentication and authorization is performed with the help of the token and having the project_id in the URL is just a legacy artifact.
Moreover, when operating at a system scope, the catalog cannot be resolved since a system scoped user doesn't have a specific project_id to interact with the system:
$ openstack catalog list --os-cloud system-admin -f yaml | grep manila -B 1
- Endpoints: []
Name: manilav2
--
- Endpoints: []
Name: manila
Blueprint information
- Status:
- Complete
- Approver:
- Goutham Pacha Ravi
- Priority:
- High
- Drafter:
- Goutham Pacha Ravi
- Direction:
- Approved
- Assignee:
- Goutham Pacha Ravi
- Definition:
- Review
- Series goal:
- Accepted for wallaby
- Implementation:
- Implemented
- Milestone target:
- wallaby-rc1
- Started by
- Goutham Pacha Ravi
- Completed by
- Goutham Pacha Ravi
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Advertise v2 API routes without project_id
Addressed by: https:/
[devstack] create endpoint without project_id
Addressed by: https:/
[doc] remove project_id from api endpoints