summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorRick Harris <rconradharris@gmail.com>2012-06-29 21:26:42 +0000
committerRick Harris <rconradharris@gmail.com>2012-06-29 21:36:54 +0000
commit1dea34fa1ab15ef2bef9811ef585c8b3bf5c0d22 (patch)
tree6f323f72f5c5f8c6e78851601c09b4ea9cccc08b /nova
parent019d953ef5b4bed7c53401375bfd7aa890fc0c1d (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.py8
-rw-r--r--nova/virt/xenapi/vm_utils.py17
-rw-r--r--nova/virt/xenapi/vmops.py15
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):