Xenapi: Don't resize down if not auto_disk_config
It is not safe to resize down an instance if the filesystem has not been resized first, but with auto_disk_config == False there's no guarantee that it has happened. And not resizing down the disk space with the instance allows for users to have more space on their instance than the type should allow. Fixes bug 1081225 Change-Id: I980c0699dfc272155e274a96d6e08e131c1372d9
This commit is contained in:
parent
d121d7573c
commit
12ed134f9e
@ -865,6 +865,10 @@ class CannotResizeToSameFlavor(NovaException):
|
|||||||
message = _("When resizing, instances must change flavor!")
|
message = _("When resizing, instances must change flavor!")
|
||||||
|
|
||||||
|
|
||||||
|
class ResizeError(NovaException):
|
||||||
|
message = _("Resize error: %(reason)s")
|
||||||
|
|
||||||
|
|
||||||
class ImageTooLarge(NovaException):
|
class ImageTooLarge(NovaException):
|
||||||
message = _("Image is larger than instance type allows")
|
message = _("Image is larger than instance type allows")
|
||||||
|
|
||||||
|
@ -1254,6 +1254,20 @@ class XenAPIMigrateInstance(stubs.XenAPITestBase):
|
|||||||
dict(base_copy='hurr', cow='durr'),
|
dict(base_copy='hurr', cow='durr'),
|
||||||
network_info, image_meta, resize_instance=False)
|
network_info, image_meta, resize_instance=False)
|
||||||
|
|
||||||
|
def test_migrate_no_auto_disk_config_no_resize_down(self):
|
||||||
|
"""Resize down should fail when auto_disk_config not set"""
|
||||||
|
instance_values = self.instance_values
|
||||||
|
instance_values['root_gb'] = 40
|
||||||
|
instance_values['auto_disk_config'] = False
|
||||||
|
instance = db.instance_create(self.context, instance_values)
|
||||||
|
xenapi_fake.create_vm(instance.name, 'Running')
|
||||||
|
instance_type = db.instance_type_get_by_name(self.context, 'm1.small')
|
||||||
|
conn = xenapi_conn.XenAPIDriver(fake.FakeVirtAPI(), False)
|
||||||
|
self.assertRaises(exception.ResizeError,
|
||||||
|
conn.migrate_disk_and_power_off,
|
||||||
|
self.context, instance,
|
||||||
|
'127.0.0.1', instance_type, None)
|
||||||
|
|
||||||
|
|
||||||
class XenAPIImageTypeTestCase(test.TestCase):
|
class XenAPIImageTypeTestCase(test.TestCase):
|
||||||
"""Test ImageType class."""
|
"""Test ImageType class."""
|
||||||
|
Loading…
Reference in New Issue
Block a user