Merge "xenapi: fix spawn servers with ephemeral disks"

This commit is contained in:
Jenkins
2014-03-11 02:55:33 +00:00
committed by Gerrit Code Review
2 changed files with 17 additions and 1 deletions

View File

@@ -850,6 +850,14 @@ class ResizeVdisTestCase(VMOpsTestBase):
self.vmops._resize_up_vdis(instance, {"root": {}})
self.assertFalse(mock_resize.called)
def test_resize_up_vdis_no_vdis_like_initial_spawn(self, mock_resize):
instance = {"root_gb": 0, "ephemeral_gb": 3000}
vdis = {}
self.vmops._resize_up_vdis(instance, vdis)
self.assertFalse(mock_resize.called)
@mock.patch.object(vm_utils, 'get_ephemeral_disk_sizes')
def test_resize_up_vdis_ephemeral(self, mock_sizes, mock_resize):
mock_sizes.return_value = [2000, 1000]

View File

@@ -1080,10 +1080,18 @@ class VMOps(object):
vm_utils.update_vdi_virtual_size(self._session, instance,
vdi_ref, new_root_gb)
ephemeral_vdis = vdis.get('ephemerals')
if not ephemeral_vdis:
# NOTE(johngarbutt) no existing (migrated) ephemeral disks
# to resize, so nothing more to do here.
return
total_ephemeral_gb = instance['ephemeral_gb']
if total_ephemeral_gb:
sizes = vm_utils.get_ephemeral_disk_sizes(total_ephemeral_gb)
ephemeral_vdis = vdis.get('ephemerals')
# resize existing (migrated) ephemeral disks,
# and add any extra disks if required due to a
# larger total_ephemeral_gb (resize down is not supported).
for userdevice, new_size in enumerate(sizes,
start=int(DEVICE_EPHEMERAL)):
vdi = ephemeral_vdis.get(str(userdevice))