def test_attach_volume_attached_incorrect(self): fake_server = fake_compute.FakeServer() attached_volume = fake_volume.FakeVolume(status='in-use') anoter_volume = fake_volume.FakeVolume(id='fake_id2', status='in-use') self.stubs.Set(self._driver.compute_api, 'instance_volumes_list', mock.Mock(return_value=[anoter_volume])) self.assertRaises(exception.ManilaException, self._driver._attach_volume, self._context, self.share, fake_server, attached_volume)
def test_attach_volume_error(self): fake_server = fake_compute.FakeServer() availiable_volume = fake_volume.FakeVolume() error_volume = fake_volume.FakeVolume(status='error') self.stubs.Set(self._driver.compute_api, 'instance_volume_attach', mock.Mock()) self.stubs.Set(self._driver.volume_api, 'get', mock.Mock(return_value=error_volume)) self.assertRaises(exception.ManilaException, self._driver._attach_volume, self._context, self.share, fake_server, availiable_volume)
def test_get_volume_error(self): volume = fake_volume.FakeVolume( display_name=CONF.volume_name_template % self.share['id']) self.stubs.Set(self._driver.volume_api, 'get_all', mock.Mock(return_value=[volume, volume])) self.assertRaises(exception.ManilaException, self._driver._get_volume, self._context, self.share['id'])
def test_get_volume(self): volume = fake_volume.FakeVolume( display_name=CONF.volume_name_template % self.share['id']) self.stubs.Set(self._driver.volume_api, 'get_all', mock.Mock(return_value=[volume])) result = self._driver._get_volume(self._context, self.share['id']) self.assertEqual(result, volume)
def test_allocate_container_error(self): fake_vol = fake_volume.FakeVolume(status='error') self.stubs.Set(self._driver.volume_api, 'create', mock.Mock(return_value=fake_vol)) self.assertRaises(exception.ManilaException, self._driver._allocate_container, self._context, self.share)
def test_attach_volume_failed_attach(self): fake_server = fake_compute.FakeServer() availiable_volume = fake_volume.FakeVolume() self.stubs.Set(self._driver.compute_api, 'instance_volume_attach', mock.Mock(side_effect=exception.ManilaException)) self.assertRaises(exception.ManilaException, self._driver._attach_volume, self._context, self.share, fake_server, availiable_volume)
def test_attach_volume_not_attached(self): availiable_volume = fake_volume.FakeVolume() attached_volume = fake_volume.FakeVolume(status='in-use') self.stubs.Set(self._driver.compute_api, 'instance_volume_attach', mock.Mock()) self.stubs.Set(self._driver.volume_api, 'get', mock.Mock(return_value=attached_volume)) result = self._driver._attach_volume(self._context, self.share, 'fake_inst_id', availiable_volume) self._driver.compute_api.instance_volume_attach.\ assert_called_once_with(self._context, 'fake_inst_id', availiable_volume['id']) self._driver.volume_api.get.assert_called_once_with( self._context, attached_volume['id']) self.assertEqual(result, attached_volume)
def test_detach_volume_detached(self): availiable_volume = fake_volume.FakeVolume() attached_volume = fake_volume.FakeVolume(status='in-use') self.stubs.Set(self._driver, '_get_volume', mock.Mock(return_value=attached_volume)) self.stubs.Set(self._driver.compute_api, 'instance_volumes_list', mock.Mock(return_value=[])) self.stubs.Set(self._driver.volume_api, 'get', mock.Mock(return_value=availiable_volume)) self.stubs.Set(self._driver.compute_api, 'instance_volume_detach', mock.Mock()) self._driver._detach_volume(self._context, self.share, self.server['backend_details']) self.assertFalse(self._driver.volume_api.get.called) self.assertFalse( self._driver.compute_api.instance_volume_detach.called)
def test_attach_volume_attached_correct(self): fake_server = fake_compute.FakeServer() attached_volume = fake_volume.FakeVolume(status='in-use') self.stubs.Set(self._driver.compute_api, 'instance_volumes_list', mock.Mock(return_value=[attached_volume])) result = self._driver._attach_volume(self._context, self.share, fake_server, attached_volume) self.assertEqual(result, attached_volume)
def test_allocate_container(self): fake_vol = fake_volume.FakeVolume() self.stubs.Set(self._driver.volume_api, 'create', mock.Mock(return_value=fake_vol)) result = self._driver._allocate_container(self._context, self.share) self.assertEqual(result, fake_vol) self._driver.volume_api.create.assert_called_once_with( self._context, self.share['size'], CONF.volume_name_template % self.share['id'], '', snapshot=None)
def test_deallocate_container(self): fake_vol = fake_volume.FakeVolume() self.stubs.Set(self._driver, '_get_volume', mock.Mock(return_value=fake_vol)) self.stubs.Set(self._driver.volume_api, 'delete', mock.Mock()) self.stubs.Set(self._driver.volume_api, 'get', mock.Mock( side_effect=exception.VolumeNotFound(volume_id=fake_vol['id']))) self._driver._deallocate_container(self._context, self.share) self._driver._get_volume.assert_called_once() self._driver.volume_api.delete.assert_called_once() self._driver.volume_api.get.assert_called_once()
def test_detach_volume(self): fake_server = fake_compute.FakeServer() availiable_volume = fake_volume.FakeVolume() attached_volume = fake_volume.FakeVolume(status='in-use') self.stubs.Set(self._driver, '_get_volume', mock.Mock(return_value=attached_volume)) self.stubs.Set(self._driver.compute_api, 'instance_volumes_list', mock.Mock(return_value=[attached_volume])) self.stubs.Set(self._driver.compute_api, 'instance_volume_detach', mock.Mock()) self.stubs.Set(self._driver.volume_api, 'get', mock.Mock(return_value=availiable_volume)) self._driver._detach_volume(self._context, self.share, self.server['backend_details']) self._driver.compute_api.instance_volume_detach.\ assert_called_once_with( self._context, self.server['backend_details']['instance_id'], availiable_volume['id']) self._driver.volume_api.get.\ assert_called_once_with(self._context, availiable_volume['id'])
def test_create_snapshot(self): fake_vol = fake_volume.FakeVolume() fake_vol_snap = fake_volume.FakeVolumeSnapshot() self.stubs.Set(self._driver, '_get_volume', mock.Mock(return_value=fake_vol)) self.stubs.Set(self._driver.volume_api, 'create_snapshot_force', mock.Mock(return_value=fake_vol_snap)) self._driver.create_snapshot(self._context, self.snapshot, share_server=self.server) self._driver._get_volume.assert_called_once() self._driver.volume_api.create_snapshot_force.assert_called_once_with( self._context, fake_vol['id'], CONF.volume_snapshot_name_template % self.snapshot['id'], '')