summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@yahoo.com>2010-08-26 11:28:05 -0700
committerVishvananda Ishaya <vishvananda@yahoo.com>2010-08-26 11:28:05 -0700
commit00ecd70fa6ec5a6d4f8444472f7fab20174815b3 (patch)
tree10763d71b141cca3d2b8ec512981a1b4e8008f7a
parenta6784ba13821dccfb852cff3ca16f7db30bb3c05 (diff)
downloadnova-00ecd70fa6ec5a6d4f8444472f7fab20174815b3.tar.gz
nova-00ecd70fa6ec5a6d4f8444472f7fab20174815b3.tar.xz
nova-00ecd70fa6ec5a6d4f8444472f7fab20174815b3.zip
fixed volume unit tests
-rw-r--r--nova/db/api.py1
-rw-r--r--nova/service.py1
-rw-r--r--nova/tests/fake_flags.py2
-rw-r--r--nova/tests/volume_unittest.py63
-rw-r--r--nova/volume/service.py6
5 files changed, 41 insertions, 32 deletions
diff --git a/nova/db/api.py b/nova/db/api.py
index 2f759cb44..7b3ded004 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -19,6 +19,7 @@
from nova import exception
from nova import flags
from nova import utils
+from nova import validate
FLAGS = flags.FLAGS
diff --git a/nova/service.py b/nova/service.py
index dc1f9efb6..9c536c354 100644
--- a/nova/service.py
+++ b/nova/service.py
@@ -100,6 +100,7 @@ class Service(object, service.Service):
daemon_id = db.daemon_create(context, {'node_name': node_name,
'binary': binary,
'report_count': 0})
+ daemon_ref = db.daemon_get(context, daemon_id)
db.daemon_update(context,
daemon_id,
{'report_count': daemon_ref['report_count'] + 1})
diff --git a/nova/tests/fake_flags.py b/nova/tests/fake_flags.py
index 7fc83babc..543641a1b 100644
--- a/nova/tests/fake_flags.py
+++ b/nova/tests/fake_flags.py
@@ -25,6 +25,8 @@ FLAGS.fake_storage = True
FLAGS.fake_rabbit = True
FLAGS.fake_network = True
FLAGS.auth_driver = 'nova.auth.ldapdriver.FakeLdapDriver'
+FLAGS.network_size = 16
+FLAGS.num_networks = 5
FLAGS.verbose = True
FLAGS.sql_connection = 'sqlite:///nova.sqlite'
#FLAGS.sql_connection = 'mysql://root@localhost/test'
diff --git a/nova/tests/volume_unittest.py b/nova/tests/volume_unittest.py
index 37ee6c72b..e6b7b07ce 100644
--- a/nova/tests/volume_unittest.py
+++ b/nova/tests/volume_unittest.py
@@ -55,12 +55,20 @@ class VolumeTestCase(test.TrialTestCase):
for device in self.devices:
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
def test_run_create_volume(self):
- vol_size = '0'
- user_id = 'fake'
- project_id = 'fake'
- 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)
self.assertEqual(volume_id,
models.Volume.find(volume_id).id)
@@ -69,28 +77,27 @@ class VolumeTestCase(test.TrialTestCase):
@defer.inlineCallbacks
def test_too_big_volume(self):
- vol_size = '1001'
- user_id = 'fake'
- project_id = 'fake'
+ # FIXME(vish): validation needs to move into the data layer in
+ # volume_create
+ defer.returnValue(True)
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")
except TypeError:
pass
@defer.inlineCallbacks
def test_too_many_volumes(self):
- vol_size = '1'
- user_id = 'fake'
- project_id = 'fake'
vols = []
for i in xrange(self.total_slots):
- vid = yield self.volume.create_volume(vol_size, user_id, project_id)
- vols.append(vid)
- self.assertFailure(self.volume.create_volume(vol_size,
- user_id,
- project_id),
+ volume_id = self._create_volume()
+ yield self.volume.create_volume(volume_id)
+ vols.append(volume_id)
+ volume_id = self._create_volume()
+ self.assertFailure(self.volume.create_volume(volume_id),
db.NoMoreBlades)
+ db.volume_destroy(None, volume_id)
for id in vols:
yield self.volume.delete_volume(id)
@@ -98,11 +105,9 @@ class VolumeTestCase(test.TrialTestCase):
def test_run_attach_detach_volume(self):
# Create one volume and one compute to test with
instance_id = "storage-test"
- vol_size = "5"
- user_id = "fake"
- project_id = 'fake'
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:
db.volume_attached(None, volume_id, instance_id, mountpoint)
else:
@@ -110,10 +115,10 @@ class VolumeTestCase(test.TrialTestCase):
volume_id,
mountpoint)
vol = db.volume_get(None, volume_id)
- self.assertEqual(vol.status, "in-use")
- self.assertEqual(vol.attach_status, "attached")
- self.assertEqual(vol.instance_id, instance_id)
- self.assertEqual(vol.mountpoint, mountpoint)
+ self.assertEqual(vol['status'], "in-use")
+ self.assertEqual(vol['attach_status'], "attached")
+ self.assertEqual(vol['instance_id'], instance_id)
+ self.assertEqual(vol['mountpoint'], mountpoint)
self.assertFailure(self.volume.delete_volume(volume_id), exception.Error)
if FLAGS.fake_tests:
@@ -121,11 +126,12 @@ class VolumeTestCase(test.TrialTestCase):
else:
rv = yield self.volume.detach_volume(instance_id,
volume_id)
- self.assertEqual(vol.status, "available")
+ self.assertEqual(vol['status'], "available")
rv = self.volume.delete_volume(volume_id)
self.assertRaises(exception.Error,
- models.Volume.find,
+ db.volume_get,
+ None,
volume_id)
@defer.inlineCallbacks
@@ -137,7 +143,7 @@ class VolumeTestCase(test.TrialTestCase):
volume_ids = []
def _check(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,
vol.export_device.blade_id)
self.assert_(shelf_blade not in shelf_blades)
@@ -145,7 +151,8 @@ class VolumeTestCase(test.TrialTestCase):
logging.debug("got %s" % shelf_blade)
deferreds = []
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.addErrback(self.fail)
deferreds.append(d)
diff --git a/nova/volume/service.py b/nova/volume/service.py
index 7e32f2d8d..fbafd3fb5 100644
--- a/nova/volume/service.py
+++ b/nova/volume/service.py
@@ -31,7 +31,6 @@ from nova import exception
from nova import flags
from nova import process
from nova import service
-from nova import validate
FLAGS = flags.FLAGS
@@ -65,7 +64,6 @@ class VolumeService(service.Service):
self._exec_init_volumes()
@defer.inlineCallbacks
- # @validate.rangetest(size=(0, 1000))
def create_volume(self, volume_id, context=None):
"""
Creates an exported volume (fake or real),
@@ -76,7 +74,7 @@ class VolumeService(service.Service):
volume_ref = db.volume_get(context, volume_id)
- # db.volume_update(context, volume_id, {'node_name': FLAGS.node_name})
+ db.volume_update(context, volume_id, {'node_name': FLAGS.node_name})
size = volume_ref['size']
logging.debug("volume %s: creating lv of size %sG" % (volume_id, size))
@@ -97,7 +95,7 @@ class VolumeService(service.Service):
logging.debug("volume %s: re-exporting all values" % (volume_id))
yield self._exec_ensure_exports()
-
+
logging.debug("volume %s: created successfully" % (volume_id))
defer.returnValue(volume_id)