diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-09-08 14:02:49 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-09-08 14:02:49 +0000 |
commit | 573f49ea5b21d261437773e15571acc7b6c370ab (patch) | |
tree | 5b38f05b1bc82fdeb73f81d7a68ab44ec855f8b1 | |
parent | c8b8365d311f76c041da49aa7255ea19a5a093ce (diff) | |
parent | 8f20e7067fbd2c784cd65876f58dd3cde59f966c (diff) | |
download | nova-573f49ea5b21d261437773e15571acc7b6c370ab.tar.gz |
Merge "HyperV: remove instance snapshot lock" into stable/mitaka
-rw-r--r-- | nova/tests/unit/virt/hyperv/test_snapshotops.py | 17 | ||||
-rw-r--r-- | nova/virt/hyperv/snapshotops.py | 16 |
2 files changed, 0 insertions, 33 deletions
diff --git a/nova/tests/unit/virt/hyperv/test_snapshotops.py b/nova/tests/unit/virt/hyperv/test_snapshotops.py index c5d0fc0b69..b072c06b34 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 d453362a45..cfdac30ba0 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): glance_image_service.update(context, image_id, image_metadata, f) 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 |