diff --git a/nova/tests/unit/virt/hyperv/test_snapshotops.py b/nova/tests/unit/virt/hyperv/test_snapshotops.py index d95006cb79fe..4f4cf592e15f 100644 --- a/nova/tests/unit/virt/hyperv/test_snapshotops.py +++ b/nova/tests/unit/virt/hyperv/test_snapshotops.py @@ -16,10 +16,8 @@ import os import mock -from os_win import exceptions as os_win_exc from nova.compute import task_states -from nova import exception from nova.tests.unit import fake_instance from nova.tests.unit.virt.hyperv import test_base from nova.virt.hyperv import snapshotops @@ -121,18 +119,3 @@ class SnapshotOpsTestCase(test_base.HyperVBaseTestCase): def test_snapshot_no_base_disk(self): self._test_snapshot(base_disk_path=None) - - @mock.patch.object(snapshotops.SnapshotOps, '_snapshot') - def test_snapshot_instance_not_found(self, mock_snapshot): - mock_instance = fake_instance.fake_instance_obj(self.context) - mock_snapshot.side_effect = os_win_exc.HyperVVMNotFoundException( - vm_name=mock_instance.name) - - self.assertRaises(exception.InstanceNotFound, - self._snapshotops.snapshot, - self.context, mock_instance, mock.sentinel.image_id, - mock.sentinel.update_task_state) - - mock_snapshot.assert_called_once_with(self.context, mock_instance, - mock.sentinel.image_id, - mock.sentinel.update_task_state) diff --git a/nova/virt/hyperv/snapshotops.py b/nova/virt/hyperv/snapshotops.py index 4a7629457223..27431cdedd6e 100644 --- a/nova/virt/hyperv/snapshotops.py +++ b/nova/virt/hyperv/snapshotops.py @@ -18,15 +18,12 @@ Management class for VM snapshot operations. """ import os -from os_win import exceptions as os_win_exc from os_win import utilsfactory from oslo_log import log as logging from nova.compute import task_states -from nova import exception from nova.i18n import _LE from nova.image import glance -from nova import utils from nova.virt.hyperv import pathutils LOG = logging.getLogger(__name__) @@ -49,19 +46,6 @@ class SnapshotOps(object): purge_props=False) def snapshot(self, context, instance, image_id, update_task_state): - # While the snapshot operation is not synchronized within the manager, - # attempting to destroy an instance while it's being snapshoted fails. - @utils.synchronized(instance.uuid) - def instance_synchronized_snapshot(): - self._snapshot(context, instance, image_id, update_task_state) - - try: - instance_synchronized_snapshot() - except os_win_exc.HyperVVMNotFoundException: - # the instance might disappear before starting the operation. - raise exception.InstanceNotFound(instance_id=instance.uuid) - - def _snapshot(self, context, instance, image_id, update_task_state): """Create snapshot from a running VM instance.""" instance_name = instance.name