Make default-types APIs compatible with V3.67
In microversion 3.67, we made project_id optional in the URL for all Cinder APIs. However, the default-types APIs (set, unset, get, list) were implemented without the project_id in the URL to make it ready for SRBAC and anticipating the new endpoint for cinder without project_id. This is causing issues while implementing the SDK support for default-types APIs since we fetch the endpoint containing project_id (http://127.0.0.1/volume/v3/<project_id>/default-types) but the default-types API doesn't expect it (http://127.0.0.1/volume/v3/default-types) resulting in 404 resource not found error. ResourceNotFound: 404: Client Error for url: http://127.0.0.1/volume/v3/default_types/12a1b5e507e7497db79707b0ddedf1a4, : 404 Not Found: The resource could not be found. This patch makes the default-types APIs consistent with the other cinder APIs that accept URL with/without project_id. NOTE: This patch doesn't require a microversion bump or releasenote since the expectation with MV3.67 is that all APIs support request irrespective of project_id in the URL and this change is making default-types APIs consisitent with MV3.67. Also MV3.67 is just an indication of the behavior change otherwise supplying URLs without project ID with MV < 3.67 also works. Change-Id: I63efc0598d501d77474588a02582f5338bb8d345 (cherry picked from commit 9afa19e9c96831b319c53fd222d7b822e52da967)
This commit is contained in:
parent
530376bc5d
commit
2bb2f13de3
@ -210,22 +210,28 @@ class APIRouter(cinder.api.openstack.APIRouter):
|
||||
member={'accept': 'POST'})
|
||||
|
||||
self.resources['default_types'] = default_types.create_resource()
|
||||
mapper.connect("default-types", "/default-types/{id}",
|
||||
controller=self.resources['default_types'],
|
||||
action='create_update',
|
||||
conditions={"method": ['PUT']})
|
||||
for path_prefix in ['/{project_id}', '']:
|
||||
# project_id is optional
|
||||
mapper.connect(
|
||||
"default-types", "%s/default-types/{id}" % path_prefix,
|
||||
controller=self.resources['default_types'],
|
||||
action='create_update',
|
||||
conditions={"method": ['PUT']})
|
||||
|
||||
mapper.connect("default-types", "/default-types",
|
||||
controller=self.resources['default_types'],
|
||||
action='index',
|
||||
conditions={"method": ['GET']})
|
||||
mapper.connect(
|
||||
"default-types", "%s/default-types" % path_prefix,
|
||||
controller=self.resources['default_types'],
|
||||
action='index',
|
||||
conditions={"method": ['GET']})
|
||||
|
||||
mapper.connect("default-types", "/default-types/{id}",
|
||||
controller=self.resources['default_types'],
|
||||
action='detail',
|
||||
conditions={"method": ['GET']})
|
||||
mapper.connect(
|
||||
"default-types", "%s/default-types/{id}" % path_prefix,
|
||||
controller=self.resources['default_types'],
|
||||
action='detail',
|
||||
conditions={"method": ['GET']})
|
||||
|
||||
mapper.connect("default-types", "/default-types/{id}",
|
||||
controller=self.resources['default_types'],
|
||||
action='delete',
|
||||
conditions={"method": ['DELETE']})
|
||||
mapper.connect(
|
||||
"default-types", "%s/default-types/{id}" % path_prefix,
|
||||
controller=self.resources['default_types'],
|
||||
action='delete',
|
||||
conditions={"method": ['DELETE']})
|
||||
|
Loading…
x
Reference in New Issue
Block a user