Merge "compute: Allow snapshots to be created from PAUSED volume backed instances" into stable/stein

This commit is contained in:
Zuul 2020-07-24 02:30:13 +00:00 committed by Gerrit Code Review
commit e91540f965
2 changed files with 6 additions and 1 deletions

View File

@ -3152,7 +3152,7 @@ class API(base.Base):
# NOTE(melwitt): We don't check instance lock for snapshot because lock is # NOTE(melwitt): We don't check instance lock for snapshot because lock is
# intended to prevent accidental change/delete of instances # intended to prevent accidental change/delete of instances
@check_instance_state(vm_state=[vm_states.ACTIVE, vm_states.STOPPED, @check_instance_state(vm_state=[vm_states.ACTIVE, vm_states.STOPPED,
vm_states.SUSPENDED]) vm_states.PAUSED, vm_states.SUSPENDED])
def snapshot_volume_backed(self, context, instance, name, def snapshot_volume_backed(self, context, instance, name,
extra_properties=None): extra_properties=None):
"""Snapshot the given volume-backed instance. """Snapshot the given volume-backed instance.

View File

@ -3450,6 +3450,11 @@ class _ComputeAPIUnitTestMixIn(object):
quiesce_unsupported=True, quiesce_unsupported=True,
vm_state=vm_states.SUSPENDED) vm_state=vm_states.SUSPENDED)
def test_snapshot_volume_backed_with_pause(self):
self._test_snapshot_volume_backed(quiesce_required=False,
quiesce_unsupported=True,
vm_state=vm_states.PAUSED)
@mock.patch.object(context, 'set_target_cell') @mock.patch.object(context, 'set_target_cell')
@mock.patch.object(objects.BlockDeviceMapping, 'get_by_volume') @mock.patch.object(objects.BlockDeviceMapping, 'get_by_volume')
def test_get_bdm_by_volume_id(self, mock_get_by_volume, def test_get_bdm_by_volume_id(self, mock_get_by_volume,