From 4e02fa1964f5de3a6ba345d858623f35b24beafd Mon Sep 17 00:00:00 2001 From: Ken'ichi Ohmichi Date: Tue, 8 Jan 2013 05:08:17 +0900 Subject: Add exception handler for previous deleted flavor. An exception happens if a previous flavor is deleted and 'nova resize-revert' run, because 'nova resize-revert' does not handle the deleted flavor. And also we have the same problem in _update_usage_from_migration(). This patch fixes the problems. How to reproduce the problem on DevStack: $ nova flavor-create sample 10 512 0 2 $ nova boot --image cirros-0.3.0-x86_64-uec --flavor sample test01 $ nova resize test01 m1.tiny $ nova flavor-delete 10 $ nova resize-revert test01 Before applying this patch: $ nova resize-revert test01 ERROR: The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400) (Request-ID: req-b0d3e016-9608-4a87-a0cc-44dfe00b25a1) $ After applying this patch: $ nova resize-revert test01 ERROR: Flavor used by the instance could not be found. (HTTP 400) (Request-ID: req-ed4ce174-33f2-4258-b522-674a1023ea74) $ Fixes bug 1091490 Change-Id: I39dd23a7565ae66544e8bc2aa7ad3299eb61bfcc --- nova/compute/resource_tracker.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'nova/compute') diff --git a/nova/compute/resource_tracker.py b/nova/compute/resource_tracker.py index c784fd83d..ba1915f42 100644 --- a/nova/compute/resource_tracker.py +++ b/nova/compute/resource_tracker.py @@ -453,7 +453,12 @@ class ResourceTracker(object): filtered[uuid] = migration for migration in filtered.values(): - self._update_usage_from_migration(resources, migration) + try: + self._update_usage_from_migration(resources, migration) + except exception.InstanceTypeNotFound: + LOG.warn(_("InstanceType could not be found, skipping " + "migration."), instance_uuid=uuid) + continue def _update_usage_from_instance(self, resources, instance): """Update usage for a single instance.""" -- cgit