merged from trunk
This commit is contained in:
@@ -295,17 +295,16 @@ class CloudController(object):
|
|||||||
return v
|
return v
|
||||||
|
|
||||||
@rbac.allow('projectmanager', 'sysadmin')
|
@rbac.allow('projectmanager', 'sysadmin')
|
||||||
|
@defer.inlineCallbacks
|
||||||
def create_volume(self, context, size, **kwargs):
|
def create_volume(self, context, size, **kwargs):
|
||||||
# TODO(vish): refactor this to create the volume object here and tell service to create it
|
# TODO(vish): refactor this to create the volume object here and tell service to create it
|
||||||
res = rpc.call(FLAGS.volume_topic, {"method": "create_volume",
|
result = yield rpc.call(FLAGS.volume_topic, {"method": "create_volume",
|
||||||
"args" : {"size": size,
|
"args" : {"size": size,
|
||||||
"user_id": context.user.id,
|
"user_id": context.user.id,
|
||||||
"project_id": context.project.id}})
|
"project_id": context.project.id}})
|
||||||
def _format_result(result):
|
# NOTE(vish): rpc returned value is in the result key in the dictionary
|
||||||
volume = self._get_volume(context, result['result'])
|
volume = self._get_volume(context, result['result'])
|
||||||
return {'volumeSet': [self.format_volume(context, volume)]}
|
defer.returnValue({'volumeSet': [self.format_volume(context, volume)]})
|
||||||
res.addCallback(_format_result)
|
|
||||||
return res
|
|
||||||
|
|
||||||
def _get_address(self, context, public_ip):
|
def _get_address(self, context, public_ip):
|
||||||
# FIXME(vish) this should move into network.py
|
# FIXME(vish) this should move into network.py
|
||||||
|
|||||||
@@ -42,15 +42,14 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
vol_size = '0'
|
vol_size = '0'
|
||||||
user_id = 'fake'
|
user_id = 'fake'
|
||||||
project_id = 'fake'
|
project_id = 'fake'
|
||||||
volume_id = self.volume.create_volume(vol_size, user_id, project_id)
|
volume_id = yield self.volume.create_volume(vol_size, user_id, project_id)
|
||||||
# TODO(termie): get_volume returns differently than create_volume
|
# TODO(termie): get_volume returns differently than create_volume
|
||||||
self.assertEqual(volume_id,
|
self.assertEqual(volume_id,
|
||||||
volume_service.get_volume(volume_id)['volume_id'])
|
volume_service.get_volume(volume_id)['volume_id'])
|
||||||
|
|
||||||
rv = self.volume.delete_volume(volume_id)
|
rv = self.volume.delete_volume(volume_id)
|
||||||
self.assertRaises(exception.Error,
|
self.assertFailure(volume_service.get_volume(volume_id),
|
||||||
volume_service.get_volume,
|
exception.Error)
|
||||||
volume_id)
|
|
||||||
|
|
||||||
def test_too_big_volume(self):
|
def test_too_big_volume(self):
|
||||||
vol_size = '1001'
|
vol_size = '1001'
|
||||||
@@ -68,13 +67,14 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
total_slots = FLAGS.slots_per_shelf * num_shelves
|
total_slots = FLAGS.slots_per_shelf * num_shelves
|
||||||
vols = []
|
vols = []
|
||||||
for i in xrange(total_slots):
|
for i in xrange(total_slots):
|
||||||
vid = self.volume.create_volume(vol_size, user_id, project_id)
|
vid = yield self.volume.create_volume(vol_size, user_id, project_id)
|
||||||
vols.append(vid)
|
vols.append(vid)
|
||||||
self.assertRaises(volume_service.NoMoreVolumes,
|
self.assertFailure(self.volume.create_volume(vol_size,
|
||||||
self.volume.create_volume,
|
user_id,
|
||||||
vol_size, user_id, project_id)
|
project_id),
|
||||||
|
volume_service.NoMoreVolumes)
|
||||||
for id in vols:
|
for id in vols:
|
||||||
self.volume.delete_volume(id)
|
yield self.volume.delete_volume(id)
|
||||||
|
|
||||||
def test_run_attach_detach_volume(self):
|
def test_run_attach_detach_volume(self):
|
||||||
# Create one volume and one compute to test with
|
# Create one volume and one compute to test with
|
||||||
@@ -83,7 +83,7 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
user_id = "fake"
|
user_id = "fake"
|
||||||
project_id = 'fake'
|
project_id = 'fake'
|
||||||
mountpoint = "/dev/sdf"
|
mountpoint = "/dev/sdf"
|
||||||
volume_id = self.volume.create_volume(vol_size, user_id, project_id)
|
volume_id = yield self.volume.create_volume(vol_size, user_id, project_id)
|
||||||
|
|
||||||
volume_obj = volume_service.get_volume(volume_id)
|
volume_obj = volume_service.get_volume(volume_id)
|
||||||
volume_obj.start_attach(instance_id, mountpoint)
|
volume_obj.start_attach(instance_id, mountpoint)
|
||||||
|
|||||||
Reference in New Issue
Block a user