Show provider_id for admin
This patch adds the provider_id in the detailed view of a single volume for admin. APIImpact DocImpact Implements blueprint: show-provider-id Change-Id: Id3059cd8a8fd396333128b7b5086ccd23c008ad4
This commit is contained in:
parent
c3c560296d
commit
ef0d793e9b
@ -70,6 +70,7 @@ REST_API_VERSION_HISTORY = """
|
|||||||
* 3.19 - Add API reset status actions 'reset_status' to group snapshot.
|
* 3.19 - Add API reset status actions 'reset_status' to group snapshot.
|
||||||
* 3.20 - Add API reset status actions 'reset_status' to generic
|
* 3.20 - Add API reset status actions 'reset_status' to generic
|
||||||
volume group.
|
volume group.
|
||||||
|
* 3.21 - Show provider_id in detailed view of a volume for admin.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# The minimum and maximum versions of the API supported
|
# The minimum and maximum versions of the API supported
|
||||||
@ -77,7 +78,7 @@ REST_API_VERSION_HISTORY = """
|
|||||||
# minimum version of the API supported.
|
# minimum version of the API supported.
|
||||||
# Explicitly using /v1 or /v2 enpoints will still work
|
# Explicitly using /v1 or /v2 enpoints will still work
|
||||||
_MIN_API_VERSION = "3.0"
|
_MIN_API_VERSION = "3.0"
|
||||||
_MAX_API_VERSION = "3.20"
|
_MAX_API_VERSION = "3.21"
|
||||||
_LEGACY_API_VERSION1 = "1.0"
|
_LEGACY_API_VERSION1 = "1.0"
|
||||||
_LEGACY_API_VERSION2 = "2.0"
|
_LEGACY_API_VERSION2 = "2.0"
|
||||||
|
|
||||||
|
@ -218,3 +218,7 @@ user documentation.
|
|||||||
3.20
|
3.20
|
||||||
----
|
----
|
||||||
Added reset status actions 'reset_status' to generic volume group.
|
Added reset status actions 'reset_status' to generic volume group.
|
||||||
|
|
||||||
|
3.21
|
||||||
|
----
|
||||||
|
Show provider_id in detailed view of a volume for admin.
|
||||||
|
@ -37,4 +37,10 @@ class ViewBuilder(views_v2.ViewBuilder):
|
|||||||
if req_version.matches("3.13", None):
|
if req_version.matches("3.13", None):
|
||||||
volume_ref['volume']['group_id'] = volume.get('group_id')
|
volume_ref['volume']['group_id'] = volume.get('group_id')
|
||||||
|
|
||||||
|
# Add provider_id if min version is greater than or equal to 3.21
|
||||||
|
# for admin.
|
||||||
|
if (request.environ['cinder.context'].is_admin and
|
||||||
|
req_version.matches("3.21", None)):
|
||||||
|
volume_ref['volume']['provider_id'] = volume.get('provider_id')
|
||||||
|
|
||||||
return volume_ref
|
return volume_ref
|
||||||
|
@ -372,3 +372,28 @@ class VolumeApiTest(test.TestCase):
|
|||||||
# Raise 400 when snapshot has not uuid type.
|
# Raise 400 when snapshot has not uuid type.
|
||||||
self.assertRaises(webob.exc.HTTPBadRequest, self.controller.create,
|
self.assertRaises(webob.exc.HTTPBadRequest, self.controller.create,
|
||||||
req, body)
|
req, body)
|
||||||
|
|
||||||
|
@ddt.data({'admin': True, 'version': '3.21'},
|
||||||
|
{'admin': False, 'version': '3.21'},
|
||||||
|
{'admin': True, 'version': '3.20'},
|
||||||
|
{'admin': False, 'version': '3.20'})
|
||||||
|
@ddt.unpack
|
||||||
|
def test_volume_show_provider_id(self, admin, version):
|
||||||
|
self.mock_object(volume_api.API, 'get', v2_fakes.fake_volume_api_get)
|
||||||
|
self.mock_object(db.sqlalchemy.api, '_volume_type_get_full',
|
||||||
|
v2_fakes.fake_volume_type_get)
|
||||||
|
|
||||||
|
req = fakes.HTTPRequest.blank('/v3/volumes/%s' % fake.VOLUME_ID,
|
||||||
|
version=version)
|
||||||
|
if admin:
|
||||||
|
admin_ctx = context.RequestContext(fake.USER_ID, fake.PROJECT_ID,
|
||||||
|
True)
|
||||||
|
req.environ['cinder.context'] = admin_ctx
|
||||||
|
res_dict = self.controller.show(req, fake.VOLUME_ID)
|
||||||
|
req_version = req.api_version_request
|
||||||
|
# provider_id is in view if min version is greater than or equal to
|
||||||
|
# 3.21 for admin.
|
||||||
|
if req_version.matches("3.21", None) and admin:
|
||||||
|
self.assertIn('provider_id', res_dict['volume'])
|
||||||
|
else:
|
||||||
|
self.assertNotIn('provider_id', res_dict['volume'])
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Add provider_id in the detailed view of a volume for admin.
|
Loading…
Reference in New Issue
Block a user