Merge "Consistency groups API is not returning project_id filter groups."
This commit is contained in:
commit
223a10111c
@ -131,6 +131,10 @@ class ConsistencyGroupsController(wsgi.Controller):
|
|||||||
"""Returns a list of consistency groups through view builder."""
|
"""Returns a list of consistency groups through view builder."""
|
||||||
context = req.environ['cinder.context']
|
context = req.environ['cinder.context']
|
||||||
filters = req.params.copy()
|
filters = req.params.copy()
|
||||||
|
|
||||||
|
# make another copy of filters, since it is being modified in
|
||||||
|
# consistencygroup_api while getting consistencygroups
|
||||||
|
group_filters = req.params.copy()
|
||||||
marker, limit, offset = common.get_pagination_params(filters)
|
marker, limit, offset = common.get_pagination_params(filters)
|
||||||
sort_keys, sort_dirs = common.get_sort_params(filters)
|
sort_keys, sort_dirs = common.get_sort_params(filters)
|
||||||
|
|
||||||
@ -139,7 +143,7 @@ class ConsistencyGroupsController(wsgi.Controller):
|
|||||||
offset=offset, sort_keys=sort_keys, sort_dirs=sort_dirs)
|
offset=offset, sort_keys=sort_keys, sort_dirs=sort_dirs)
|
||||||
|
|
||||||
groups = self.group_api.get_all(
|
groups = self.group_api.get_all(
|
||||||
context, filters=filters, marker=marker, limit=limit,
|
context, filters=group_filters, marker=marker, limit=limit,
|
||||||
offset=offset, sort_keys=sort_keys, sort_dirs=sort_dirs)
|
offset=offset, sort_keys=sort_keys, sort_dirs=sort_dirs)
|
||||||
|
|
||||||
if is_detail:
|
if is_detail:
|
||||||
|
@ -54,6 +54,8 @@ class ConsistencyGroupsAPITestCase(test.TestCase):
|
|||||||
self,
|
self,
|
||||||
ctxt=None,
|
ctxt=None,
|
||||||
name='test_consistencygroup',
|
name='test_consistencygroup',
|
||||||
|
user_id=fake.USER_ID,
|
||||||
|
project_id=fake.PROJECT_ID,
|
||||||
description='this is a test consistency group',
|
description='this is a test consistency group',
|
||||||
volume_type_id=fake.VOLUME_TYPE_ID,
|
volume_type_id=fake.VOLUME_TYPE_ID,
|
||||||
availability_zone='az1',
|
availability_zone='az1',
|
||||||
@ -63,8 +65,8 @@ class ConsistencyGroupsAPITestCase(test.TestCase):
|
|||||||
"""Create a consistency group object."""
|
"""Create a consistency group object."""
|
||||||
ctxt = ctxt or self.ctxt
|
ctxt = ctxt or self.ctxt
|
||||||
consistencygroup = objects.ConsistencyGroup(ctxt)
|
consistencygroup = objects.ConsistencyGroup(ctxt)
|
||||||
consistencygroup.user_id = fake.USER_ID
|
consistencygroup.user_id = user_id
|
||||||
consistencygroup.project_id = fake.PROJECT_ID
|
consistencygroup.project_id = project_id
|
||||||
consistencygroup.availability_zone = availability_zone
|
consistencygroup.availability_zone = availability_zone
|
||||||
consistencygroup.name = name
|
consistencygroup.name = name
|
||||||
consistencygroup.description = description
|
consistencygroup.description = description
|
||||||
@ -75,6 +77,33 @@ class ConsistencyGroupsAPITestCase(test.TestCase):
|
|||||||
consistencygroup.create()
|
consistencygroup.create()
|
||||||
return consistencygroup
|
return consistencygroup
|
||||||
|
|
||||||
|
def _create_group(
|
||||||
|
self,
|
||||||
|
ctxt=None,
|
||||||
|
name='test_group',
|
||||||
|
user_id=fake.USER_ID,
|
||||||
|
project_id=fake.PROJECT_ID,
|
||||||
|
description='this is a test group',
|
||||||
|
group_type_id=fake.VOLUME_TYPE_ID,
|
||||||
|
availability_zone='az1',
|
||||||
|
host='fakehost',
|
||||||
|
status=fields.GroupStatus.CREATING,
|
||||||
|
**kwargs):
|
||||||
|
"""Create a consistency group object."""
|
||||||
|
ctxt = ctxt or self.ctxt
|
||||||
|
group = objects.Group(ctxt)
|
||||||
|
group.user_id = user_id
|
||||||
|
group.project_id = project_id
|
||||||
|
group.availability_zone = availability_zone
|
||||||
|
group.name = name
|
||||||
|
group.description = description
|
||||||
|
group.group_type_id = group_type_id
|
||||||
|
group.host = host
|
||||||
|
group.status = status
|
||||||
|
group.update(kwargs)
|
||||||
|
group.create()
|
||||||
|
return group
|
||||||
|
|
||||||
def test_show_consistencygroup(self):
|
def test_show_consistencygroup(self):
|
||||||
consistencygroup = self._create_consistencygroup()
|
consistencygroup = self._create_consistencygroup()
|
||||||
req = webob.Request.blank('/v2/%s/consistencygroups/%s' %
|
req = webob.Request.blank('/v2/%s/consistencygroups/%s' %
|
||||||
@ -294,6 +323,37 @@ class ConsistencyGroupsAPITestCase(test.TestCase):
|
|||||||
consistencygroup2.destroy()
|
consistencygroup2.destroy()
|
||||||
consistencygroup3.destroy()
|
consistencygroup3.destroy()
|
||||||
|
|
||||||
|
@ddt.data(False, True)
|
||||||
|
def test_list_consistencygroups_with_project_id(self, is_detail):
|
||||||
|
consistencygroup1 = self._create_consistencygroup()
|
||||||
|
consistencygroup2 = self._create_consistencygroup(
|
||||||
|
name="group", project_id=fake.PROJECT2_ID)
|
||||||
|
|
||||||
|
group1 = self._create_group()
|
||||||
|
group2 = self._create_group(name="group", project_id=fake.PROJECT2_ID)
|
||||||
|
url = ('/v2/%s/consistencygroups?'
|
||||||
|
'all_tenants=True&project_id=%s') % (fake.PROJECT_ID,
|
||||||
|
fake.PROJECT2_ID)
|
||||||
|
if is_detail:
|
||||||
|
url = ('/v2/%s/consistencygroups/detail?'
|
||||||
|
'all_tenants=True&project_id=%s') % (fake.PROJECT_ID,
|
||||||
|
fake.PROJECT2_ID)
|
||||||
|
req = webob.Request.blank(url)
|
||||||
|
req.method = 'GET'
|
||||||
|
req.headers['Content-Type'] = 'application/json'
|
||||||
|
res = req.get_response(fakes.wsgi_app(fake_auth_context=self.ctxt))
|
||||||
|
res_dict = jsonutils.loads(res.body)
|
||||||
|
self.assertEqual(200, res.status_int)
|
||||||
|
self.assertEqual(2, len(res_dict['consistencygroups']))
|
||||||
|
self.assertEqual("group",
|
||||||
|
res_dict['consistencygroups'][0]['name'])
|
||||||
|
self.assertEqual("group",
|
||||||
|
res_dict['consistencygroups'][1]['name'])
|
||||||
|
consistencygroup1.destroy()
|
||||||
|
consistencygroup2.destroy()
|
||||||
|
group1.destroy()
|
||||||
|
group2.destroy()
|
||||||
|
|
||||||
@ddt.data(False, True)
|
@ddt.data(False, True)
|
||||||
def test_list_consistencygroups_with_sort(self, is_detail):
|
def test_list_consistencygroups_with_sort(self, is_detail):
|
||||||
consistencygroup1 = self._create_consistencygroup()
|
consistencygroup1 = self._create_consistencygroup()
|
||||||
|
6
releasenotes/notes/bug-1671220-4d521be71d0b8aa4.yaml
Normal file
6
releasenotes/notes/bug-1671220-4d521be71d0b8aa4.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixed consistency groups API which was always returning groups
|
||||||
|
scoped to project ID from user context instead of given input
|
||||||
|
project ID.
|
Loading…
x
Reference in New Issue
Block a user