From 4ee98501a1c1a45ec478fad8f62d2bd972f6fcea Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Thu, 14 May 2015 11:20:04 -0700 Subject: [PATCH] Set migration_type for existing cold migrations and resizes Related to blueprint robustify-evacuate Change-Id: I7393df1d8fc751295c744805ac53f0cf5c61fcd5 --- nova/compute/api.py | 3 +++ nova/compute/resource_tracker.py | 3 +++ nova/tests/unit/compute/test_compute.py | 1 + nova/tests/unit/compute/test_compute_api.py | 4 ++++ 4 files changed, 11 insertions(+) diff --git a/nova/compute/api.py b/nova/compute/api.py index aee3b2ec533c..f7f2d00ec538 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -2549,6 +2549,9 @@ class API(base.Base): mig.old_instance_type_id = current_instance_type['id'] mig.new_instance_type_id = new_instance_type['id'] mig.status = 'finished' + mig.migration_type = ( + mig.old_instance_type_id != mig.new_instance_type_id and + 'resize' or 'migration') mig.create() @wrap_check_policy diff --git a/nova/compute/resource_tracker.py b/nova/compute/resource_tracker.py index 20f03edd60fa..1f402f9864bc 100644 --- a/nova/compute/resource_tracker.py +++ b/nova/compute/resource_tracker.py @@ -206,6 +206,9 @@ class ResourceTracker(object): migration.instance_uuid = instance['uuid'] migration.source_compute = instance['host'] migration.source_node = instance['node'] + migration.migration_type = ( + migration.old_instance_type_id != migration.new_instance_type_id + and 'resize' or 'migration') migration.create() return migration diff --git a/nova/tests/unit/compute/test_compute.py b/nova/tests/unit/compute/test_compute.py index 972db97ebb89..083b7ca76b36 100644 --- a/nova/tests/unit/compute/test_compute.py +++ b/nova/tests/unit/compute/test_compute.py @@ -7001,6 +7001,7 @@ class ComputeTestCase(BaseTestCase): migration = objects.Migration(context=self.context.elevated()) migration.instance_uuid = instance.uuid migration.status = 'finished' + migration.migration_type = 'resize' migration.create() instance.task_state = task_states.DELETING diff --git a/nova/tests/unit/compute/test_compute_api.py b/nova/tests/unit/compute/test_compute_api.py index 340bf3b55153..c6f6c1fb3781 100644 --- a/nova/tests/unit/compute/test_compute_api.py +++ b/nova/tests/unit/compute/test_compute_api.py @@ -1329,6 +1329,10 @@ class _ComputeAPIUnitTestMixIn(object): self.assertEqual(new_flavor.id, mig.new_instance_type_id) self.assertEqual('finished', mig.status) + if new_flavor.id != current_flavor.id: + self.assertEqual('resize', mig.migration_type) + else: + self.assertEqual('migration', mig.migration_type) self.stubs.Set(objects, 'Migration', _get_migration) self.mox.StubOutWithMock(self.context, 'elevated')