From 7832f6ea816b1b79251d06abbf38772894e74e2f Mon Sep 17 00:00:00 2001 From: Lucian Petrut Date: Fri, 26 Feb 2016 17:21:44 +0200 Subject: [PATCH] objects: add HyperVLiveMigrateData stub This class seems to have been considered a base class, supposed to be inherited by driver specific implementation, not being registered within the versioned object registry. Hyper-V does not use this object, so it does not have a driver specific implementation. During live migration, a LiveMigrateData object will be passed via RPC, which will fail as it can't be deserialized. As a result, this issue breaks Hyper-V live migration. This patch adds the HyperVLiveMigrateData object in order to avoid this issue. Change-Id: I0bd1c21334a2a21afadb6608edca1f81987b32d4 Closes-bug: #1550391 --- nova/objects/migrate_data.py | 5 +++++ nova/tests/unit/objects/test_objects.py | 1 + nova/virt/hyperv/livemigrationops.py | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nova/objects/migrate_data.py b/nova/objects/migrate_data.py index 08951a24f136..44dce4f4852c 100644 --- a/nova/objects/migrate_data.py +++ b/nova/objects/migrate_data.py @@ -252,3 +252,8 @@ class XenapiLiveMigrateData(LiveMigrateData): if 'pre_live_migration_result' in legacy: self.sr_uuid_map = \ legacy['pre_live_migration_result']['sr_uuid_map'] + + +@obj_base.NovaObjectRegistry.register +class HyperVLiveMigrateData(LiveMigrateData): + VERSION = '1.0' diff --git a/nova/tests/unit/objects/test_objects.py b/nova/tests/unit/objects/test_objects.py index 94691935b3ee..02d889f23e54 100644 --- a/nova/tests/unit/objects/test_objects.py +++ b/nova/tests/unit/objects/test_objects.py @@ -1122,6 +1122,7 @@ object_data = { 'FloatingIP': '1.10-52a67d52d85eb8b3f324a5b7935a335b', 'FloatingIPList': '1.11-7f2ba670714e1b7bab462ab3290f7159', 'HostMapping': '1.0-1a3390a696792a552ab7bd31a77ba9ac', + 'HyperVLiveMigrateData': '1.0-0b868dd6228a09c3f3e47016dddf6a1c', 'HVSpec': '1.2-db672e73304da86139086d003f3977e7', 'ImageMeta': '1.8-642d1b2eb3e880a367f37d72dd76162d', 'ImageMetaProps': '1.12-6a132dee47931447bf86c03c7006d96c', diff --git a/nova/virt/hyperv/livemigrationops.py b/nova/virt/hyperv/livemigrationops.py index 6654df4eb5e1..2a0bf5f53761 100644 --- a/nova/virt/hyperv/livemigrationops.py +++ b/nova/virt/hyperv/livemigrationops.py @@ -93,7 +93,7 @@ class LiveMigrationOps(object): block_migration=False, disk_over_commit=False): LOG.debug("check_can_live_migrate_destination called", instance_ref) - return migrate_data_obj.LiveMigrateData() + return migrate_data_obj.HyperVLiveMigrateData() def check_can_live_migrate_destination_cleanup(self, ctxt, dest_check_data):