From 9c87d20cfdf84357fd1260e692634a3e5855804f Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 21 Mar 2012 23:53:43 +0000 Subject: Inlining some single-use methods in XenAPI vmops. Change-Id: I28247b6fe782f3a1007c6f47eb8e221cf885772f --- nova/virt/xenapi/vmops.py | 44 ++++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py index bd83ebf95..324ec6ca4 100644 --- a/nova/virt/xenapi/vmops.py +++ b/nova/virt/xenapi/vmops.py @@ -1077,13 +1077,6 @@ class VMOps(object): return self._session.call_xenapi("VBD.get_record", vbd_ref)["VDI"] - def _shutdown_rescue(self, rescue_vm_ref): - """Shutdown a rescue instance.""" - vm_rec = self._session.call_xenapi("VM.get_record", rescue_vm_ref) - state = VMHelper.compile_info(vm_rec)['state'] - if state != power_state.SHUTDOWN: - self._session.call_xenapi("VM.hard_shutdown", rescue_vm_ref) - def _safe_destroy_vdis(self, vdi_refs): """Destroys the requested VDIs, logging any StorageError exceptions.""" for vdi_ref in vdi_refs: @@ -1092,23 +1085,6 @@ class VMOps(object): except volume_utils.StorageError as exc: LOG.error(exc) - def _destroy_vdis(self, instance, vm_ref): - """Destroys all VDIs associated with a VM.""" - instance_uuid = instance['uuid'] - LOG.debug(_("Destroying VDIs for Instance %(instance_uuid)s") - % locals()) - - vdi_refs = VMHelper.lookup_vm_vdis(self._session, vm_ref) - self._safe_destroy_vdis(vdi_refs) - - def _destroy_rescue_vdis(self, rescue_vm_ref, except_vdi_ref): - """Destroys all VDIs associated with a rescued VM.""" - vdi_refs = VMHelper.lookup_vm_vdis(self._session, rescue_vm_ref) - if except_vdi_ref: - vdi_refs = [vdi_ref for vdi_ref in vdi_refs - if vdi_ref != except_vdi_ref] - self._safe_destroy_vdis(vdi_refs) - def _destroy_kernel_ramdisk_plugin_call(self, kernel, ramdisk): args = {} if kernel: @@ -1161,10 +1137,19 @@ class VMOps(object): def _destroy_rescue_instance(self, rescue_vm_ref, original_vm_ref): """Destroy a rescue instance.""" - vdi_ref = self._find_root_vdi_ref(original_vm_ref) - self._shutdown_rescue(rescue_vm_ref) - self._destroy_rescue_vdis(rescue_vm_ref, vdi_ref) + # Shutdown Rescue VM + vm_rec = self._session.call_xenapi("VM.get_record", rescue_vm_ref) + state = VMHelper.compile_info(vm_rec)['state'] + if state != power_state.SHUTDOWN: + self._session.call_xenapi("VM.hard_shutdown", rescue_vm_ref) + # Destroy Rescue VDIs + vdi_refs = VMHelper.lookup_vm_vdis(self._session, rescue_vm_ref) + root_vdi_ref = self._find_root_vdi_ref(original_vm_ref) + vdi_refs = [vdi_ref for vdi_ref in vdi_refs if vdi_ref != root_vdi_ref] + self._safe_destroy_vdis(vdi_refs) + + # Destroy Rescue VM self._session.call_xenapi("VM.destroy", rescue_vm_ref) def destroy(self, instance, network_info): @@ -1203,7 +1188,10 @@ class VMOps(object): if shutdown: self._shutdown(instance, vm_ref) - self._destroy_vdis(instance, vm_ref) + # Destroy VDIs + vdi_refs = VMHelper.lookup_vm_vdis(self._session, vm_ref) + self._safe_destroy_vdis(vdi_refs) + if destroy_kernel_ramdisk: self._destroy_kernel_ramdisk(instance, vm_ref) -- cgit