diff --git a/nova/compute/api.py b/nova/compute/api.py index 37457c4f34da..69837f62d760 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -3074,7 +3074,7 @@ class API(base.Base): # NOTE(melwitt): We don't check instance lock for snapshot because lock is # intended to prevent accidental change/delete of instances @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, extra_properties=None): """Snapshot the given volume-backed instance. diff --git a/nova/tests/unit/compute/test_compute_api.py b/nova/tests/unit/compute/test_compute_api.py index 36c0bfd89b50..d17a9b54925f 100644 --- a/nova/tests/unit/compute/test_compute_api.py +++ b/nova/tests/unit/compute/test_compute_api.py @@ -3297,6 +3297,11 @@ class _ComputeAPIUnitTestMixIn(object): quiesce_unsupported=True, 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(objects.BlockDeviceMapping, 'get_by_volume') def test_get_bdm_by_volume_id(self, mock_get_by_volume,