diff options
| -rw-r--r-- | nova/api/openstack/views/servers.py | 9 | ||||
| -rw-r--r-- | nova/compute/api.py | 13 | ||||
| -rw-r--r-- | nova/compute/manager.py | 8 |
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, |
