summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorJohannes Erdfelt <johannes.erdfelt@rackspace.com>2011-11-17 16:17:50 +0000
committerJohannes Erdfelt <johannes.erdfelt@rackspace.com>2011-12-02 15:58:58 +0000
commitc25f7e7e832472ea2b5801d041cbf126333b1aaa (patch)
tree03e671a832e88cda64c186dc0dcdf653e6d20ce0 /nova/compute
parentab215c42a2a31c8b4a6aa455911535183ab931af (diff)
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
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/api.py2
-rw-r--r--nova/compute/manager.py5
2 files changed, 4 insertions, 3 deletions
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,