summaryrefslogtreecommitdiffstats
path: root/nova/virt
diff options
context:
space:
mode:
authorChris Behrens <cbehrens@codestud.com>2011-05-23 16:51:28 -0500
committerChris Behrens <cbehrens@codestud.com>2011-05-23 16:51:28 -0500
commit42c209d90f491d19b3aabc70f8dafc33b76cf20d (patch)
treea521166ff42a92e331923a0cf20c12597c9d7218 /nova/virt
parent94766fac0f5fdb3c7847b1129a8f05948a97f887 (diff)
fix tests, have glance plugin return json encoded string of vdi uuids
Diffstat (limited to 'nova/virt')
-rw-r--r--nova/virt/xenapi/vm_utils.py6
-rw-r--r--nova/virt/xenapi/vmops.py4
2 files changed, 7 insertions, 3 deletions
diff --git a/nova/virt/xenapi/vm_utils.py b/nova/virt/xenapi/vm_utils.py
index f1f7b8249..3d980013a 100644
--- a/nova/virt/xenapi/vm_utils.py
+++ b/nova/virt/xenapi/vm_utils.py
@@ -19,6 +19,7 @@ Helper methods for operations related to the management of VM records and
their attributes like VDIs, VIFs, as well as their lookup functions.
"""
+import json
import os
import pickle
import re
@@ -408,7 +409,8 @@ class VMHelper(HelperBase):
kwargs = {'params': pickle.dumps(params)}
task = session.async_call_plugin('glance', 'download_vhd', kwargs)
- vdi_uuids = session.wait_for_task(task, instance_id)
+ result = session.wait_for_task(task, instance_id)
+ vdi_uuids = json.loads(result)
primary_vdi_uuid = vdi_uuids.get('primary_vdi_uuid')
swap_vdi_uuid = vdi_uuids.get('swap_vdi_uuid', None)
@@ -571,6 +573,8 @@ class VMHelper(HelperBase):
args['raw'] = 'true'
task = session.async_call_plugin('objectstore', fn, args)
uuid = session.wait_for_task(task, instance_id)
+ if image_type != ImageType.KERNEL_RAMDISK:
+ return {'primary_vdi_uuid': uuid}
return uuid
@classmethod
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index 0c30ad4cb..0d7ef5fac 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -91,7 +91,7 @@ class VMOps(object):
def finish_resize(self, instance, disk_info):
vdi_uuid = self.link_disks(instance, disk_info['base_copy'],
disk_info['cow'])
- vm_ref = self._create_vm(instance, vdi_uuid)
+ vm_ref = self._create_vm(instance, {'primary_vdi_uuid': vdi_uuid})
self.resize_instance(instance, vdi_uuid)
self._spawn(instance, vm_ref)
@@ -144,7 +144,7 @@ class VMOps(object):
# Are we building from a pre-existing disk?
primary_vdi_ref = self._session.call_xenapi('VDI.get_by_uuid',
- vdi_uuids['primary_vdi_uuid'])
+ vdi_uuids.get('primary_vdi_uuid'))
swap_vdi_uuid = vdi_uuids.get('swap_vdi_uuid', None)
if swap_vdi_uuid:
swap_vdi_ref = self._session.call_xenapi('VDI.get_by_uuid', swap_vdi_uuid)