fuel-plugin-xenserver/plugin_source/deployment_scripts/patchset/live-migration-vifmapping-c...

50 lines
2.0 KiB
Diff

diff --git a/nova/objects/migrate_data.py b/nova/objects/migrate_data.py
index 44dce4f..07a16ea 100644
--- a/nova/objects/migrate_data.py
+++ b/nova/objects/migrate_data.py
@@ -210,7 +210,9 @@ class LibvirtLiveMigrateData(LiveMigrateData):
@obj_base.NovaObjectRegistry.register
class XenapiLiveMigrateData(LiveMigrateData):
- VERSION = '1.0'
+ # Version 1.0: Initial version
+ # Version 1.1: Added vif_uuid_map
+ VERSION = '1.1'
fields = {
'block_migration': fields.BooleanField(nullable=True),
@@ -219,6 +221,7 @@ class XenapiLiveMigrateData(LiveMigrateData):
'sr_uuid_map': fields.DictOfStringsField(),
'kernel_file': fields.StringField(),
'ramdisk_file': fields.StringField(),
+ 'vif_uuid_map': fields.DictOfStringsField(),
}
def to_legacy_dict(self, pre_migration_result=False):
@@ -233,6 +236,8 @@ class XenapiLiveMigrateData(LiveMigrateData):
live_result = {
'sr_uuid_map': ('sr_uuid_map' in self and self.sr_uuid_map
or {}),
+ 'vif_uuid_map': ('vif_uuid_map' in self and self.vif_uuid_map
+ or {}),
}
if pre_migration_result:
legacy['pre_live_migration_result'] = live_result
@@ -252,6 +257,16 @@ class XenapiLiveMigrateData(LiveMigrateData):
if 'pre_live_migration_result' in legacy:
self.sr_uuid_map = \
legacy['pre_live_migration_result']['sr_uuid_map']
+ self.vif_uuid_map = \
+ legacy['pre_live_migration_result'].get('vif_uuid_map', {})
+
+ def obj_make_compatible(self, primitive, target_version):
+ super(XenapiLiveMigrateData, self).obj_make_compatible(
+ primitive, target_version)
+ target_version = versionutils.convert_version_to_tuple(target_version)
+ if target_version < (1, 1):
+ if 'vif_uuid_map' in primitive:
+ del primitive['vif_uuid_map']
@obj_base.NovaObjectRegistry.register