summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatt.dietz@rackspace.com <>2011-03-23 18:56:23 +0000
committermatt.dietz@rackspace.com <>2011-03-23 18:56:23 +0000
commitc3d47689a762bfa4aa38c7d4700bb1969d37d1d1 (patch)
treec6d7513c4264ba3a2d6ee48336c6e02be091b59e
parent8792383dfbd630388e6a51a76910e73203a3793f (diff)
merge prop changes
-rw-r--r--nova/api/openstack/views/servers.py9
-rw-r--r--nova/compute/api.py13
-rw-r--r--nova/compute/manager.py8
3 files changed, 19 insertions, 11 deletions
diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py
index 709052f22..a21a6e7ff 100644
--- a/nova/api/openstack/views/servers.py
+++ b/nova/api/openstack/views/servers.py
@@ -18,6 +18,7 @@
import hashlib
from nova.compute import power_state
+import nova.compute.api
import nova.context
from nova import db
from nova.api.openstack import common
@@ -87,14 +88,10 @@ class ViewBuilder(object):
for k, v in mapped_keys.iteritems():
inst_dict[k] = inst[v]
+ ctxt = nova.context.get_admin_context()
inst_dict['status'] = power_mapping[inst_dict['status']]
- try:
- ctxt = nova.context.get_admin_context()
- migration = db.migration_get_by_instance_and_status(ctxt,
- inst['id'], 'finished')
+ if nova.compute.api.has_finished_migration(ctxt, inst['id']):
inst_dict['status'] = 'resize-confirm'
- except:
- pass
inst_dict['addresses'] = self.addresses_builder.build(inst)
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 748aba004..78110c048 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -253,6 +253,16 @@ class API(base.Base):
return [dict(x.iteritems()) for x in instances]
+ def has_finished_migration(self, context, instance_id):
+ """Retrieves whether or not a finished migration exists for
+ an instance"""
+ try:
+ db.migration_get_by_instance_and_status(ctxt, inst['id'],
+ 'finished')
+ return True
+ except Exception, e:
+ return False
+
def ensure_default_security_group(self, context):
""" Create security group for the security context if it
does not already exist
@@ -499,7 +509,8 @@ class API(base.Base):
LOG.debug(_("Old instance type %(current_instance_type_name)s, "
" new instance type %(new_instance_type_name)s") % locals())
if not new_instance_type:
- raise exception.ApiError(_("Requested flavor does not exist"))
+ raise exception.ApiError(_("Requested flavor %(flavor_id)d "
+ "does not exist") % locals())
if current_instance_type['memory_mb'] >= \
new_instance_type['memory_mb']:
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 78ef33ac2..ac63f68ea 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -458,8 +458,8 @@ class ComputeManager(manager.Manager):
instance_type = self.db.instance_type_get_by_flavor_id(context,
migration_ref['old_flavor_id'])
- #Just roll back the record. There's no need to resize down since
- #the 'old' VM already has the preferred attributes
+ # Just roll back the record. There's no need to resize down since
+ # the 'old' VM already has the preferred attributes
self.db.instance_update(context, instance_id,
dict(memory_mb=instance_type['memory_mb'],
vcpus=instance_type['vcpus'],
@@ -536,8 +536,8 @@ class ComputeManager(manager.Manager):
migration_ref = self.db.migration_get(context, migration_id)
instance_ref = self.db.instance_get(context,
migration_ref['instance_id'])
- #TODO(mdietz): apply the rest of the instance_type attributes going
- #after they're supported
+ # TODO(mdietz): apply the rest of the instance_type attributes going
+ # after they're supported
instance_type = self.db.instance_type_get_by_flavor_id(context,
migration_ref['new_flavor_id'])
self.db.instance_update(context, instance_id,