fixed volume unit tests
This commit is contained in:
@@ -25,6 +25,8 @@ FLAGS.fake_storage = True
|
|||||||
FLAGS.fake_rabbit = True
|
FLAGS.fake_rabbit = True
|
||||||
FLAGS.fake_network = True
|
FLAGS.fake_network = True
|
||||||
FLAGS.auth_driver = 'nova.auth.ldapdriver.FakeLdapDriver'
|
FLAGS.auth_driver = 'nova.auth.ldapdriver.FakeLdapDriver'
|
||||||
|
FLAGS.network_size = 16
|
||||||
|
FLAGS.num_networks = 5
|
||||||
FLAGS.verbose = True
|
FLAGS.verbose = True
|
||||||
FLAGS.sql_connection = 'sqlite:///nova.sqlite'
|
FLAGS.sql_connection = 'sqlite:///nova.sqlite'
|
||||||
#FLAGS.sql_connection = 'mysql://root@localhost/test'
|
#FLAGS.sql_connection = 'mysql://root@localhost/test'
|
||||||
|
|||||||
@@ -55,12 +55,20 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
for device in self.devices:
|
for device in self.devices:
|
||||||
device.delete()
|
device.delete()
|
||||||
|
|
||||||
|
def _create_volume(self, size='0'):
|
||||||
|
vol = {}
|
||||||
|
vol['size'] = '0'
|
||||||
|
vol['user_id'] = 'fake'
|
||||||
|
vol['project_id'] = 'fake'
|
||||||
|
vol['availability_zone'] = FLAGS.storage_availability_zone
|
||||||
|
vol['status'] = "creating"
|
||||||
|
vol['attach_status'] = "detached"
|
||||||
|
return db.volume_create(None, vol)
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def test_run_create_volume(self):
|
def test_run_create_volume(self):
|
||||||
vol_size = '0'
|
volume_id = self._create_volume()
|
||||||
user_id = 'fake'
|
yield self.volume.create_volume(volume_id)
|
||||||
project_id = 'fake'
|
|
||||||
volume_id = yield self.volume.create_volume(vol_size, user_id, project_id)
|
|
||||||
self.assertEqual(volume_id,
|
self.assertEqual(volume_id,
|
||||||
models.Volume.find(volume_id).id)
|
models.Volume.find(volume_id).id)
|
||||||
|
|
||||||
@@ -69,28 +77,27 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def test_too_big_volume(self):
|
def test_too_big_volume(self):
|
||||||
vol_size = '1001'
|
# FIXME(vish): validation needs to move into the data layer in
|
||||||
user_id = 'fake'
|
# volume_create
|
||||||
project_id = 'fake'
|
defer.returnValue(True)
|
||||||
try:
|
try:
|
||||||
yield self.volume.create_volume(vol_size, user_id, project_id)
|
volume_id = self._create_volume('1001')
|
||||||
|
yield self.volume.create_volume(volume_id)
|
||||||
self.fail("Should have thrown TypeError")
|
self.fail("Should have thrown TypeError")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def test_too_many_volumes(self):
|
def test_too_many_volumes(self):
|
||||||
vol_size = '1'
|
|
||||||
user_id = 'fake'
|
|
||||||
project_id = 'fake'
|
|
||||||
vols = []
|
vols = []
|
||||||
for i in xrange(self.total_slots):
|
for i in xrange(self.total_slots):
|
||||||
vid = yield self.volume.create_volume(vol_size, user_id, project_id)
|
volume_id = self._create_volume()
|
||||||
vols.append(vid)
|
yield self.volume.create_volume(volume_id)
|
||||||
self.assertFailure(self.volume.create_volume(vol_size,
|
vols.append(volume_id)
|
||||||
user_id,
|
volume_id = self._create_volume()
|
||||||
project_id),
|
self.assertFailure(self.volume.create_volume(volume_id),
|
||||||
db.NoMoreBlades)
|
db.NoMoreBlades)
|
||||||
|
db.volume_destroy(None, volume_id)
|
||||||
for id in vols:
|
for id in vols:
|
||||||
yield self.volume.delete_volume(id)
|
yield self.volume.delete_volume(id)
|
||||||
|
|
||||||
@@ -98,11 +105,9 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
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
|
||||||
instance_id = "storage-test"
|
instance_id = "storage-test"
|
||||||
vol_size = "5"
|
|
||||||
user_id = "fake"
|
|
||||||
project_id = 'fake'
|
|
||||||
mountpoint = "/dev/sdf"
|
mountpoint = "/dev/sdf"
|
||||||
volume_id = yield self.volume.create_volume(vol_size, user_id, project_id)
|
volume_id = self._create_volume()
|
||||||
|
yield self.volume.create_volume(volume_id)
|
||||||
if FLAGS.fake_tests:
|
if FLAGS.fake_tests:
|
||||||
db.volume_attached(None, volume_id, instance_id, mountpoint)
|
db.volume_attached(None, volume_id, instance_id, mountpoint)
|
||||||
else:
|
else:
|
||||||
@@ -110,10 +115,10 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
volume_id,
|
volume_id,
|
||||||
mountpoint)
|
mountpoint)
|
||||||
vol = db.volume_get(None, volume_id)
|
vol = db.volume_get(None, volume_id)
|
||||||
self.assertEqual(vol.status, "in-use")
|
self.assertEqual(vol['status'], "in-use")
|
||||||
self.assertEqual(vol.attach_status, "attached")
|
self.assertEqual(vol['attach_status'], "attached")
|
||||||
self.assertEqual(vol.instance_id, instance_id)
|
self.assertEqual(vol['instance_id'], instance_id)
|
||||||
self.assertEqual(vol.mountpoint, mountpoint)
|
self.assertEqual(vol['mountpoint'], mountpoint)
|
||||||
|
|
||||||
self.assertFailure(self.volume.delete_volume(volume_id), exception.Error)
|
self.assertFailure(self.volume.delete_volume(volume_id), exception.Error)
|
||||||
if FLAGS.fake_tests:
|
if FLAGS.fake_tests:
|
||||||
@@ -121,11 +126,12 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
else:
|
else:
|
||||||
rv = yield self.volume.detach_volume(instance_id,
|
rv = yield self.volume.detach_volume(instance_id,
|
||||||
volume_id)
|
volume_id)
|
||||||
self.assertEqual(vol.status, "available")
|
self.assertEqual(vol['status'], "available")
|
||||||
|
|
||||||
rv = self.volume.delete_volume(volume_id)
|
rv = self.volume.delete_volume(volume_id)
|
||||||
self.assertRaises(exception.Error,
|
self.assertRaises(exception.Error,
|
||||||
models.Volume.find,
|
db.volume_get,
|
||||||
|
None,
|
||||||
volume_id)
|
volume_id)
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@@ -137,7 +143,7 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
volume_ids = []
|
volume_ids = []
|
||||||
def _check(volume_id):
|
def _check(volume_id):
|
||||||
volume_ids.append(volume_id)
|
volume_ids.append(volume_id)
|
||||||
vol = models.Volume.find(volume_id)
|
vol = db.volume_get(None, volume_id)
|
||||||
shelf_blade = '%s.%s' % (vol.export_device.shelf_id,
|
shelf_blade = '%s.%s' % (vol.export_device.shelf_id,
|
||||||
vol.export_device.blade_id)
|
vol.export_device.blade_id)
|
||||||
self.assert_(shelf_blade not in shelf_blades)
|
self.assert_(shelf_blade not in shelf_blades)
|
||||||
@@ -145,7 +151,8 @@ class VolumeTestCase(test.TrialTestCase):
|
|||||||
logging.debug("got %s" % shelf_blade)
|
logging.debug("got %s" % shelf_blade)
|
||||||
deferreds = []
|
deferreds = []
|
||||||
for i in range(self.total_slots):
|
for i in range(self.total_slots):
|
||||||
d = self.volume.create_volume(vol_size, user_id, project_id)
|
volume_id = self._create_volume()
|
||||||
|
d = self.volume.create_volume(volume_id)
|
||||||
d.addCallback(_check)
|
d.addCallback(_check)
|
||||||
d.addErrback(self.fail)
|
d.addErrback(self.fail)
|
||||||
deferreds.append(d)
|
deferreds.append(d)
|
||||||
|
|||||||
Reference in New Issue
Block a user