Merge "Add test case: retype volume when driver not initialized"

This commit is contained in:
Zuul 2019-02-15 20:41:19 +00:00 committed by Gerrit Code Review
commit dcfab3107a
2 changed files with 22 additions and 1 deletions

View File

@ -147,3 +147,22 @@ class VolumeRetypeTestCase(base.BaseVolumeTestCase):
mock_authorize.assert_has_calls(
[mock.call(vol_action_policies.RETYPE_POLICY, target_obj=mock.ANY)
])
def test_retype_driver_not_initialized(self):
volume = tests_utils.create_volume(
self.context,
host=CONF.host,
status='available',
volume_type_id=self.default_vol_type.id)
host_obj = {'host': CONF.host, 'capabilities': {}}
self.volume.driver._initialized = False
self.assertRaises(exception.DriverNotInitialized,
self.volume.retype,
self.context, volume,
self.multiattach_type.id, host_obj,
migration_policy='on-demand')
volume.refresh()
self.assertEqual('available', volume.status)

View File

@ -2782,7 +2782,9 @@ class VolumeManager(manager.CleanableManager,
if new_reservations:
QUOTAS.rollback(context, new_reservations)
status_update = {'status': volume.previous_status}
previous_status = (
volume.previous_status or volume.status)
status_update = {'status': previous_status}
if context.project_id != volume.project_id:
project_id = volume.project_id
else: