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

This commit is contained in:
Zuul 2020-07-21 04:01:36 +00:00 committed by Gerrit Code Review
commit 9633cd1cd2
2 changed files with 6 additions and 1 deletions

View File

@ -3074,7 +3074,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

@ -3297,6 +3297,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,