def _get_transfers(self, req, is_detail):
"""Returns a list of transfers, transformed through view builder."""
context = req.environ['cinder.context']
+ filters = req.params.copy()
LOG.debug('Listing volume transfers')
- transfers = self.transfer_api.get_all(context)
+ transfers = self.transfer_api.get_all(context, filters=filters)
limited_list = common.limited(transfers, req)
if is_detail:
import webob
+from cinder.api.contrib import volume_transfer
from cinder import context
from cinder import db
from cinder import exception
def setUp(self):
super(VolumeTransferAPITestCase, self).setUp()
self.volume_transfer_api = API()
+ self.controller = volume_transfer.VolumeTransferController()
def _create_transfer(self, volume_id=1,
display_name='test_transfer'):
def _create_volume(display_name='test_volume',
display_description='this is a test volume',
status='available',
- size=1):
+ size=1,
+ project_id='fake'):
"""Create a volume object."""
vol = {}
vol['host'] = 'fake_host'
vol['size'] = size
vol['user_id'] = 'fake'
- vol['project_id'] = 'fake'
+ vol['project_id'] = project_id
vol['status'] = status
vol['display_name'] = display_name
vol['display_description'] = display_description
db.volume_destroy(context.get_admin_context(), volume_id_2)
db.volume_destroy(context.get_admin_context(), volume_id_1)
+ def test_list_transfers_with_all_tenants(self):
+ volume_id_1 = self._create_volume(size=5)
+ volume_id_2 = self._create_volume(size=5, project_id='fake1')
+ transfer1 = self._create_transfer(volume_id_1)
+ transfer2 = self._create_transfer(volume_id_2)
+
+ req = fakes.HTTPRequest.blank('/v2/fake/os-volume-transfer?'
+ 'all_tenants=1',
+ use_admin_context=True)
+ res_dict = self.controller.index(req)
+
+ expected = [(transfer1['id'], 'test_transfer'),
+ (transfer2['id'], 'test_transfer')]
+ ret = []
+ for item in res_dict['transfers']:
+ ret.append((item['id'], item['name']))
+ self.assertEqual(set(expected), set(ret))
+
+ db.transfer_destroy(context.get_admin_context(), transfer2['id'])
+ db.transfer_destroy(context.get_admin_context(), transfer1['id'])
+ db.volume_destroy(context.get_admin_context(), volume_id_1)
+
def test_create_transfer_json(self):
volume_id = self._create_volume(status='available', size=5)
body = {"transfer": {"display_name": "transfer1",