Browse Source

Merge "compute: Lock by instance.uuid lock during swap_volume" into stable/train

changes/87/752487/2
Zuul 1 month ago
committed by Gerrit Code Review
parent
commit
7139634863
1 changed files with 26 additions and 2 deletions
  1. +26
    -2
      nova/compute/manager.py

+ 26
- 2
nova/compute/manager.py View File

@ -6462,9 +6462,33 @@ class ComputeManager(manager.Manager):
@wrap_instance_fault
def swap_volume(self, context, old_volume_id, new_volume_id, instance,
new_attachment_id):
"""Swap volume for an instance."""
context = context.elevated()
"""Replace the old volume with the new volume within the active server
:param context: User request context
:param old_volume_id: Original volume id
:param new_volume_id: New volume id being swapped to
:param instance: Instance with original_volume_id attached
:param new_attachment_id: ID of the new attachment for new_volume_id
"""
@utils.synchronized(instance.uuid)
def _do_locked_swap_volume(context, old_volume_id, new_volume_id,
instance, new_attachment_id):
self._do_swap_volume(context, old_volume_id, new_volume_id,
instance, new_attachment_id)
_do_locked_swap_volume(context, old_volume_id, new_volume_id, instance,
new_attachment_id)
def _do_swap_volume(self, context, old_volume_id, new_volume_id,
instance, new_attachment_id):
"""Replace the old volume with the new volume within the active server
:param context: User request context
:param old_volume_id: Original volume id
:param new_volume_id: New volume id being swapped to
:param instance: Instance with original_volume_id attached
:param new_attachment_id: ID of the new attachment for new_volume_id
"""
context = context.elevated()
compute_utils.notify_about_volume_swap(
context, instance, self.host,
fields.NotificationPhase.START,


Loading…
Cancel
Save