Merge "Fix issue of getting detail backups list info"
This commit is contained in:
commit
0c53b47eb7
@ -31,7 +31,8 @@ class ViewBuilder(common.ViewBuilder):
|
|||||||
|
|
||||||
def detail_list(self, request, backups, backup_count=None):
|
def detail_list(self, request, backups, backup_count=None):
|
||||||
"""Detailed view of a list of backups ."""
|
"""Detailed view of a list of backups ."""
|
||||||
return self._list_view(self.detail, request, backups, backup_count)
|
return self._list_view(self.detail, request, backups, backup_count,
|
||||||
|
self._collection_name + '/detail')
|
||||||
|
|
||||||
def summary(self, request, backup):
|
def summary(self, request, backup):
|
||||||
"""Generic, non-detailed view of a backup."""
|
"""Generic, non-detailed view of a backup."""
|
||||||
@ -80,12 +81,13 @@ class ViewBuilder(common.ViewBuilder):
|
|||||||
|
|
||||||
return backup_dict
|
return backup_dict
|
||||||
|
|
||||||
def _list_view(self, func, request, backups, backup_count):
|
def _list_view(self, func, request, backups, backup_count,
|
||||||
|
coll_name=_collection_name):
|
||||||
"""Provide a view for a list of backups."""
|
"""Provide a view for a list of backups."""
|
||||||
backups_list = [func(request, backup)['backup'] for backup in backups]
|
backups_list = [func(request, backup)['backup'] for backup in backups]
|
||||||
backups_links = self._get_collection_links(request,
|
backups_links = self._get_collection_links(request,
|
||||||
backups,
|
backups,
|
||||||
self._collection_name,
|
coll_name,
|
||||||
backup_count)
|
backup_count)
|
||||||
backups_dict = dict(backups=backups_list)
|
backups_dict = dict(backups=backups_list)
|
||||||
|
|
||||||
|
@ -257,6 +257,45 @@ class BackupsAPITestCase(test.TestCase):
|
|||||||
backup2.destroy()
|
backup2.destroy()
|
||||||
backup1.destroy()
|
backup1.destroy()
|
||||||
|
|
||||||
|
def test_list_all_backups_detail_json_over_limit(self):
|
||||||
|
self.override_config('osapi_max_limit', 2)
|
||||||
|
backup1 = utils.create_backup(self.context, availability_zone='az1',
|
||||||
|
container='volumebackups', size=1)
|
||||||
|
backup2 = utils.create_backup(self.context, availability_zone='az1',
|
||||||
|
container='volumebackups', size=1)
|
||||||
|
backup3 = utils.create_backup(self.context, availability_zone='az1',
|
||||||
|
container='volumebackups', size=1)
|
||||||
|
|
||||||
|
req = webob.Request.blank('/v2/%s/backups/detail' % fake.PROJECT_ID)
|
||||||
|
req.method = 'GET'
|
||||||
|
req.headers['Content-Type'] = 'application/json'
|
||||||
|
req.headers['Accept'] = 'application/json'
|
||||||
|
res = req.get_response(fakes.wsgi_app(
|
||||||
|
fake_auth_context=self.user_context))
|
||||||
|
res_dict = jsonutils.loads(res.body)
|
||||||
|
|
||||||
|
self.assertEqual(http_client.OK, res.status_int)
|
||||||
|
self.assertEqual(NUM_ELEMENTS_IN_BACKUP, len(res_dict['backups'][0]))
|
||||||
|
self.assertEqual(NUM_ELEMENTS_IN_BACKUP, len(res_dict['backups'][1]))
|
||||||
|
self.assertEqual(2, len(res_dict['backups']))
|
||||||
|
|
||||||
|
self.assertIn('backups_links', res_dict)
|
||||||
|
links = res_dict['backups_links']
|
||||||
|
next_url = links[0]['href']
|
||||||
|
req = webob.Request.blank(next_url)
|
||||||
|
req.method = 'GET'
|
||||||
|
req.headers['Content-Type'] = 'application/json'
|
||||||
|
req.headers['Accept'] = 'application/json'
|
||||||
|
res = req.get_response(fakes.wsgi_app(
|
||||||
|
fake_auth_context=self.user_context))
|
||||||
|
res_dict = jsonutils.loads(res.body)
|
||||||
|
|
||||||
|
self.assertEqual(NUM_ELEMENTS_IN_BACKUP, len(res_dict['backups'][0]))
|
||||||
|
|
||||||
|
backup3.destroy()
|
||||||
|
backup2.destroy()
|
||||||
|
backup1.destroy()
|
||||||
|
|
||||||
def test_list_backups_detail_json(self):
|
def test_list_backups_detail_json(self):
|
||||||
backup1 = utils.create_backup(self.context, availability_zone='az1',
|
backup1 = utils.create_backup(self.context, availability_zone='az1',
|
||||||
container='volumebackups', size=1)
|
container='volumebackups', size=1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user