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