summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorKei Masumoto <masumotok@nttdata.co.jp>2011-08-02 18:43:30 +0900
committerKei Masumoto <masumotok@nttdata.co.jp>2011-08-02 18:43:30 +0900
commitc75e2ee89f5510cab8d6da886cbcbbe850ccfd31 (patch)
tree8ddba4d2e1c2703d70e2921746acd32e7d101dd0 /nova/compute
parent79283cbb13d91e3c25e42af765f9da627813a6d8 (diff)
parentbdcfaa5b927a096f507fb0f7e2d81989173957f8 (diff)
downloadnova-c75e2ee89f5510cab8d6da886cbcbbe850ccfd31.tar.gz
nova-c75e2ee89f5510cab8d6da886cbcbbe850ccfd31.tar.xz
nova-c75e2ee89f5510cab8d6da886cbcbbe850ccfd31.zip
merged trunk rev1348
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/api.py2
-rw-r--r--nova/compute/instance_types.py9
-rw-r--r--nova/compute/manager.py24
3 files changed, 19 insertions, 16 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index d1e5647d2..8f7b3c3ef 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -689,7 +689,7 @@ class API(base.Base):
raise
instances = None
elif project_id or not context.is_admin:
- if not context.project:
+ if not context.project_id:
instances = self.db.instance_get_all_by_user(
context, context.user_id)
else:
diff --git a/nova/compute/instance_types.py b/nova/compute/instance_types.py
index c13a629a9..824416514 100644
--- a/nova/compute/instance_types.py
+++ b/nova/compute/instance_types.py
@@ -132,11 +132,8 @@ def get_instance_type_by_name(name):
# flavors.
def get_instance_type_by_flavor_id(flavor_id):
"""Retrieve instance type by flavor_id."""
- if flavor_id is None:
- return get_default_instance_type()
+ ctxt = context.get_admin_context()
try:
- ctxt = context.get_admin_context()
return db.instance_type_get_by_flavor_id(ctxt, flavor_id)
- except exception.DBError, e:
- LOG.exception(_('DB error: %s') % e)
- raise exception.ApiError(_("Unknown flavor: %s") % flavor_id)
+ except ValueError:
+ raise exception.FlavorNotFound(flavor_id=flavor_id)
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 8aee456fc..bb765db25 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -747,7 +747,7 @@ class ComputeManager(manager.SchedulerDependentManager):
local_gb=instance_type['local_gb'],
instance_type_id=instance_type['id']))
- self.driver.revert_resize(instance_ref)
+ self.driver.revert_migration(instance_ref)
self.db.migration_update(context, migration_id,
{'status': 'reverted'})
usage_info = utils.usage_from_instance(instance_ref)
@@ -845,20 +845,26 @@ class ComputeManager(manager.SchedulerDependentManager):
"""
migration_ref = self.db.migration_get(context, migration_id)
+
+ resize_instance = False
instance_ref = self.db.instance_get_by_uuid(context,
migration_ref.instance_uuid)
- instance_type = self.db.instance_type_get_by_flavor_id(context,
- migration_ref['new_flavor_id'])
- self.db.instance_update(context, instance_ref.uuid,
- dict(instance_type_id=instance_type['id'],
- memory_mb=instance_type['memory_mb'],
- vcpus=instance_type['vcpus'],
- local_gb=instance_type['local_gb']))
+ if migration_ref['old_flavor_id'] != migration_ref['new_flavor_id']:
+ instance_type = self.db.instance_type_get_by_flavor_id(context,
+ migration_ref['new_flavor_id'])
+ self.db.instance_update(context, instance_ref.uuid,
+ dict(instance_type_id=instance_type['id'],
+ memory_mb=instance_type['memory_mb'],
+ vcpus=instance_type['vcpus'],
+ local_gb=instance_type['local_gb']))
+ resize_instance = True
instance_ref = self.db.instance_get_by_uuid(context,
instance_ref.uuid)
+
network_info = self._get_instance_nw_info(context, instance_ref)
- self.driver.finish_resize(instance_ref, disk_info, network_info)
+ self.driver.finish_migration(instance_ref, disk_info, network_info,
+ resize_instance)
self.db.migration_update(context, migration_id,
{'status': 'finished', })