From c25f7e7e832472ea2b5801d041cbf126333b1aaa Mon Sep 17 00:00:00 2001 From: Johannes Erdfelt Date: Thu, 17 Nov 2011 16:17:50 +0000 Subject: Implement resize down for XenAPI This patch implements resizing an instance to a smaller disk. It implements this by copying the VDI and running e2resize, before transferring to the new host. Change-Id: Ic901a59cb6cdb79605c70528cf85064d8335ee2f --- nova/compute/api.py | 2 -- nova/compute/manager.py | 5 ++++- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'nova/compute') diff --git a/nova/compute/api.py b/nova/compute/api.py index c7cf2a1e9..787817e31 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -1275,8 +1275,6 @@ class API(base.Base): current_memory_mb = current_instance_type['memory_mb'] new_memory_mb = new_instance_type['memory_mb'] - if current_memory_mb > new_memory_mb: - raise exception.CannotResizeToSmallerSize() if (current_memory_mb == new_memory_mb) and flavor_id: raise exception.CannotResizeToSameSize() diff --git a/nova/compute/manager.py b/nova/compute/manager.py index aac163fd0..9f2a99709 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -1069,6 +1069,8 @@ class ComputeManager(manager.SchedulerDependentManager): migration_ref = self.db.migration_get(context, migration_id) instance_ref = self.db.instance_get_by_uuid(context, migration_ref.instance_uuid) + instance_type_ref = self.db.instance_type_get(context, + migration_ref.new_instance_type_id) self.db.migration_update(context, migration_id, @@ -1076,7 +1078,8 @@ class ComputeManager(manager.SchedulerDependentManager): try: disk_info = self.driver.migrate_disk_and_power_off( - context, instance_ref, migration_ref['dest_host']) + context, instance_ref, migration_ref['dest_host'], + instance_type_ref) except exception.MigrationError, error: LOG.error(_('%s. Setting instance vm_state to ERROR') % (error,)) self._instance_update(context, -- cgit