@@ -694,6 +694,7 @@ def _create_test_instance():
694
694
'numa_topology': None,
695
695
'config_drive': None,
696
696
'vm_mode': None,
697
+ 'vm_state': None,
697
698
'kernel_id': None,
698
699
'ramdisk_id': None,
699
700
'os_type': 'linux',
@@ -12170,7 +12171,7 @@ def test_live_migration_update_volume_xml(self, mock_xml,
12170
12171
mock_updated_guest_xml,
12171
12172
mock_migrateToURI3):
12172
12173
self.compute = manager.ComputeManager()
12173
- instance_ref = self.test_instance
12174
+ instance_ref = objects.Instance(** self.test_instance)
12174
12175
target_connection = '127.0.0.2'
12175
12176
12176
12177
target_xml = self.device_xml_tmpl.format(
@@ -12339,7 +12340,7 @@ def test_live_migration_with_valid_target_connect_addr(self, mock_xml,
12339
12340
mock_migrateToURI3,
12340
12341
mock_min_version):
12341
12342
self.compute = manager.ComputeManager()
12342
- instance_ref = self.test_instance
12343
+ instance_ref = objects.Instance(** self.test_instance)
12343
12344
target_connection = '127.0.0.2'
12344
12345
12345
12346
target_xml = self.device_xml_tmpl.format(
@@ -12954,6 +12955,33 @@ def test_block_live_migration_tunnelled_migrateToURI3(
12954
12955
drvr._live_migration_uri(target_connection),
12955
12956
params=params, flags=expected_flags)
12956
12957
12958
+ @mock.patch.object(host.Host, 'has_min_version', return_value=True)
12959
+ @mock.patch.object(fakelibvirt.virDomain, "migrateToURI3")
12960
+ @mock.patch('nova.virt.libvirt.migration.get_updated_guest_xml',
12961
+ return_value='')
12962
+ def test_live_migration_paused_instance_postcopy(self, mock_new_xml,
12963
+ mock_migrateToURI3,
12964
+ mock_min_version):
12965
+ disk_paths = []
12966
+ params = {'bandwidth': CONF.libvirt.live_migration_bandwidth}
12967
+ migrate_data = objects.LibvirtLiveMigrateData(block_migration=False,
12968
+ serial_listen_addr=False)
12969
+ dom = fakelibvirt.virDomain
12970
+ guest = libvirt_guest.Guest(dom)
12971
+ drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
12972
+ drvr._parse_migration_flags()
12973
+ instance = objects.Instance(**self.test_instance)
12974
+ instance.vm_state = vm_states.PAUSED
12975
+
12976
+ drvr._live_migration_operation(self.context, instance, 'dest',
12977
+ True, migrate_data, guest,
12978
+ disk_paths)
12979
+
12980
+ # Verify VIR_MIGRATE_POSTCOPY flag was not set
12981
+ self.assertEqual(drvr._live_migration_flags, 27)
12982
+ mock_migrateToURI3.assert_called_once_with(
12983
+ drvr._live_migration_uri('dest'), params=params, flags=27)
12984
+
12957
12985
@mock.patch.object(host.Host, 'has_min_version', return_value=True)
12958
12986
@mock.patch.object(fakelibvirt.virDomain, "migrateToURI3")
12959
12987
@mock.patch('nova.virt.libvirt.migration.get_updated_guest_xml',
@@ -12963,7 +12991,6 @@ def test_block_live_migration_native_tls(
12963
12991
self, mock_old_xml, mock_new_xml,
12964
12992
mock_migrateToURI3, mock_min_version):
12965
12993
self.flags(live_migration_with_native_tls=True, group='libvirt')
12966
-
12967
12994
target_connection = None
12968
12995
disk_paths = ['vda', 'vdb']
12969
12996
0 commit comments