Merge "Fix get_all API to pass search option filter to cinder api"

This commit is contained in:
Jenkins 2014-12-23 06:21:13 +00:00 committed by Gerrit Code Review
commit 680354b5a0
2 changed files with 17 additions and 3 deletions

View File

@ -27,8 +27,11 @@ class FakeCinderClient(object):
def get(self, volume_id):
return {'id': volume_id}
def list(self, detailed):
return [{'id': 'id1'}, {'id': 'id2'}]
def list(self, detailed, search_opts=None):
if search_opts is not None and 'id' in search_opts:
return [{'id': search_opts['id']}]
else:
return [{'id': 'id1'}, {'id': 'id2'}]
def create(self, *args, **kwargs):
return {'id': 'created_id'}
@ -128,6 +131,15 @@ class CinderApiTestCase(test.NoDBTestCase):
self.assertEqual(['id1', 'id2'], self.api.get_all(self.ctx))
def test_get_all_with_search(self):
cinder.cinderclient(self.ctx).AndReturn(self.cinderclient)
cinder._untranslate_volume_summary_view(self.ctx,
{'id': 'id1'}).AndReturn('id1')
self.mox.ReplayAll()
self.assertEqual(['id1'], self.api.get_all(self.ctx,
search_opts={'id': 'id1'}))
def test_check_attach_volume_status_error(self):
volume = {'id': 'fake', 'status': 'error'}
self.assertRaises(exception.InvalidVolume,

View File

@ -286,7 +286,9 @@ class API(object):
def get_all(self, context, search_opts=None):
search_opts = search_opts or {}
items = cinderclient(context).volumes.list(detailed=True)
items = cinderclient(context).volumes.list(detailed=True,
search_opts=search_opts)
rval = []
for item in items: