summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-09-08 14:02:49 +0000
committerGerrit Code Review <review@openstack.org>2016-09-08 14:02:49 +0000
commit573f49ea5b21d261437773e15571acc7b6c370ab (patch)
tree5b38f05b1bc82fdeb73f81d7a68ab44ec855f8b1
parentc8b8365d311f76c041da49aa7255ea19a5a093ce (diff)
parent8f20e7067fbd2c784cd65876f58dd3cde59f966c (diff)
downloadnova-573f49ea5b21d261437773e15571acc7b6c370ab.tar.gz
Merge "HyperV: remove instance snapshot lock" into stable/mitaka
-rw-r--r--nova/tests/unit/virt/hyperv/test_snapshotops.py17
-rw-r--r--nova/virt/hyperv/snapshotops.py16
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