Example #1
0
 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)
Example #2
0
 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)
Example #3
0
 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'])
Example #4
0
 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)
Example #5
0
    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)
Example #6
0
 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)
Example #7
0
    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)
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
    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()
Example #12
0
    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'])
Example #13
0
    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'], '')