diff options
| author | Rick Harris <rconradharris@gmail.com> | 2012-06-29 21:26:42 +0000 |
|---|---|---|
| committer | Rick Harris <rconradharris@gmail.com> | 2012-06-29 21:36:54 +0000 |
| commit | 1dea34fa1ab15ef2bef9811ef585c8b3bf5c0d22 (patch) | |
| tree | 6f323f72f5c5f8c6e78851601c09b4ea9cccc08b /nova | |
| parent | 019d953ef5b4bed7c53401375bfd7aa890fc0c1d (diff) | |
Refactoring code to kernel Dom0 plugin.
The kernel and ramdisk VDI manipulation code really has nothing to do
with Glance so it doesn't make a lot of sense for it to exist in the
Glance Dom0 plugin.
This patch refactors the code out to its own plugin and then applies a
few misc cleanups.
Change-Id: I363d54ea3c2d51aa6a6c1635b4fb59ebb9ce1fc0
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/virt/xenapi/fake.py | 8 | ||||
| -rw-r--r-- | nova/virt/xenapi/vm_utils.py | 17 | ||||
| -rw-r--r-- | nova/virt/xenapi/vmops.py | 15 |
3 files changed, 21 insertions, 19 deletions
diff --git a/nova/virt/xenapi/fake.py b/nova/virt/xenapi/fake.py index 081d3c89e..5df0c2aea 100644 --- a/nova/virt/xenapi/fake.py +++ b/nova/virt/xenapi/fake.py @@ -498,13 +498,13 @@ class SessionBase(object): return as_json(returncode='0', message='success') elif (plugin, method) == ('agent', 'resetnetwork'): return as_json(returncode='0', message='success') - elif (plugin, method) == ('glance', 'copy_kernel_vdi'): - return '' elif (plugin, method) == ('glance', 'upload_vhd'): return '' - elif (plugin, method) == ('glance', 'create_kernel_ramdisk'): + elif (plugin, method) == ('kernel', 'copy_vdi'): + return '' + elif (plugin, method) == ('kernel', 'create_kernel_ramdisk'): return '' - elif (plugin, method) == ('glance', 'remove_kernel_ramdisk'): + elif (plugin, method) == ('kernel', 'remove_kernel_ramdisk'): return '' elif (plugin, method) == ('migration', 'move_vhds_into_sr'): return '' diff --git a/nova/virt/xenapi/vm_utils.py b/nova/virt/xenapi/vm_utils.py index cbc7a70ce..9c7399606 100644 --- a/nova/virt/xenapi/vm_utils.py +++ b/nova/virt/xenapi/vm_utils.py @@ -600,8 +600,8 @@ def create_kernel_image(context, session, instance, image_id, user_id, args = {} args['cached-image'] = image_id args['new-image-uuid'] = str(uuid.uuid4()) - filename = session.call_plugin('glance', 'create_kernel_ramdisk', - args) + filename = session.call_plugin( + 'kernel', 'create_kernel_ramdisk', args) if filename == "": return _fetch_image(context, session, instance, image_id, image_type) @@ -610,6 +610,15 @@ def create_kernel_image(context, session, instance, image_id, user_id, return {vdi_type: dict(uuid=None, file=filename)} +def destroy_kernel_ramdisk(session, kernel, ramdisk): + args = {} + if kernel: + args['kernel-file'] = kernel + if ramdisk: + args['ramdisk-file'] = ramdisk + session.call_plugin('kernel', 'remove_kernel_ramdisk', args) + + def _create_cached_image(context, session, instance, image_id, image_type): sr_ref = safe_find_sr(session) sr_type = session.call_xenapi('SR.get_record', sr_ref)["type"] @@ -904,7 +913,7 @@ def _fetch_disk_image(context, session, instance, image_id, image_type): # content of the VDI into the proper path. LOG.debug(_("Copying VDI %s to /boot/guest on dom0"), vdi_ref, instance=instance) - fn = "copy_kernel_vdi" + args = {} args['vdi-ref'] = vdi_ref @@ -912,7 +921,7 @@ def _fetch_disk_image(context, session, instance, image_id, image_type): args['image-size'] = str(vdi_size) if FLAGS.cache_images: args['cached-image'] = image_id - filename = session.call_plugin('glance', fn, args) + filename = session.call_plugin('kernel', 'copy_vdi', args) # Remove the VDI as it is not needed anymore. destroy_vdi(session, vdi_ref) diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py index 475e8264f..5797557fe 100644 --- a/nova/virt/xenapi/vmops.py +++ b/nova/virt/xenapi/vmops.py @@ -292,8 +292,9 @@ class VMOps(object): if kernel_file or ramdisk_file: LOG.debug(_("Removing kernel/ramdisk files from dom0"), instance=instance) - self._destroy_kernel_ramdisk_plugin_call(kernel_file, - ramdisk_file) + vm_utils.destroy_kernel_ramdisk( + self._session, kernel_file, ramdisk_file) + undo_mgr.undo_with(undo_create_kernel_ramdisk) return kernel_file, ramdisk_file @@ -1001,14 +1002,6 @@ class VMOps(object): except volume_utils.StorageError as exc: LOG.error(exc) - def _destroy_kernel_ramdisk_plugin_call(self, kernel, ramdisk): - args = {} - if kernel: - args['kernel-file'] = kernel - if ramdisk: - args['ramdisk-file'] = ramdisk - self._session.call_plugin('glance', 'remove_kernel_ramdisk', args) - def _destroy_kernel_ramdisk(self, instance, vm_ref): """Three situations can occur: @@ -1038,7 +1031,7 @@ class VMOps(object): (kernel, ramdisk) = vm_utils.lookup_kernel_ramdisk(self._session, vm_ref) - self._destroy_kernel_ramdisk_plugin_call(kernel, ramdisk) + vm_utils.destroy_kernel_ramdisk(self._session, kernel, ramdisk) LOG.debug(_("kernel/ramdisk files removed"), instance=instance) def _destroy_vm(self, instance, vm_ref): |
