Nova quota show/set give errors in verify_project_id
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Sean Dague | ||
Ocata |
New
|
Undecided
|
Unassigned |
Bug Description
Description
===========
'openstack quota show <project>' gives error in ocata.
Log:
2017-05-24 11:32:27.666 21595 DEBUG nova.api.
2017-05-24 11:32:28.143 21595 INFO nova.api.
2017-05-24 11:32:28.147 21595 DEBUG nova.api.
After some digging the error seems to be that in file:
https:/
on line 34 the code reads: 'resp = sess.get(
It seems incorrect to enforce v3 endpoint here. Both due to that some are still using v2.0, and also because the endpoints for identity normally already includes the endpoint.
Before the request is sent to identity the url is merged with base url (In file: keystoneauth1/
This results in an incorrect path with duplicate versions, that looks something like: http://<domain:
..which in turn gives a 404 response back to nova. Nova will present this as a 400 error stating the project does not exist.
Changing the code from:
'resp = sess.get(
to
'resp = sess.get(
..will fix this particular issue and so far I have not seen any other impact and to me is seems logical to let the endpoint define versioning rather than enforcing it.
Steps to reproduce
==================
Use openstack client and run: openstack quota show <project>
Expected result
===============
Getting a result of project quota
Actual result
=============
Nova returns 400 error: 'Project ID <project_id> is not a valid project'
Environment
===========
Ocata version running on KVM
Installed via openstack-ansible
Ceph backend
Neutron
Changed in nova: | |
assignee: | nobody → Sean Dague (sdague) |
status: | Triaged → In Progress |
Keystone v2 has been deprecated since I think the Mitaka release, but I agree that if we don't need to we shouldn't munge the v3 into the URL.