diff options
| author | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-08-26 11:28:05 -0700 |
|---|---|---|
| committer | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-08-26 11:28:05 -0700 |
| commit | 00ecd70fa6ec5a6d4f8444472f7fab20174815b3 (patch) | |
| tree | 10763d71b141cca3d2b8ec512981a1b4e8008f7a | |
| parent | a6784ba13821dccfb852cff3ca16f7db30bb3c05 (diff) | |
| download | nova-00ecd70fa6ec5a6d4f8444472f7fab20174815b3.tar.gz nova-00ecd70fa6ec5a6d4f8444472f7fab20174815b3.tar.xz nova-00ecd70fa6ec5a6d4f8444472f7fab20174815b3.zip | |
fixed volume unit tests
| -rw-r--r-- | nova/db/api.py | 1 | ||||
| -rw-r--r-- | nova/service.py | 1 | ||||
| -rw-r--r-- | nova/tests/fake_flags.py | 2 | ||||
| -rw-r--r-- | nova/tests/volume_unittest.py | 63 | ||||
| -rw-r--r-- | nova/volume/service.py | 6 |
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) |
