@@ -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',
@@ -12313,7 +12314,7 @@ def test_live_migration_update_volume_xml(self, mock_xml,
12313
12314
mock_updated_guest_xml,
12314
12315
mock_migrateToURI3):
12315
12316
self.compute = manager.ComputeManager()
12316
- instance_ref = self.test_instance
12317
+ instance_ref = objects.Instance(** self.test_instance)
12317
12318
target_connection = '127.0.0.2'
12318
12319
12319
12320
target_xml = self.device_xml_tmpl.format(
@@ -12482,7 +12483,7 @@ def test_live_migration_with_valid_target_connect_addr(self, mock_xml,
12482
12483
mock_migrateToURI3,
12483
12484
mock_min_version):
12484
12485
self.compute = manager.ComputeManager()
12485
- instance_ref = self.test_instance
12486
+ instance_ref = objects.Instance(** self.test_instance)
12486
12487
target_connection = '127.0.0.2'
12487
12488
12488
12489
target_xml = self.device_xml_tmpl.format(
@@ -13097,6 +13098,33 @@ def test_block_live_migration_tunnelled_migrateToURI3(
13097
13098
drvr._live_migration_uri(target_connection),
13098
13099
params=params, flags=expected_flags)
13099
13100
13101
+ @mock.patch.object(host.Host, 'has_min_version', return_value=True)
13102
+ @mock.patch.object(fakelibvirt.virDomain, "migrateToURI3")
13103
+ @mock.patch('nova.virt.libvirt.migration.get_updated_guest_xml',
13104
+ return_value='')
13105
+ def test_live_migration_paused_instance_postcopy(self, mock_new_xml,
13106
+ mock_migrateToURI3,
13107
+ mock_min_version):
13108
+ disk_paths = []
13109
+ params = {'bandwidth': CONF.libvirt.live_migration_bandwidth}
13110
+ migrate_data = objects.LibvirtLiveMigrateData(block_migration=False,
13111
+ serial_listen_addr=False)
13112
+ dom = fakelibvirt.virDomain
13113
+ guest = libvirt_guest.Guest(dom)
13114
+ drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
13115
+ drvr._parse_migration_flags()
13116
+ instance = objects.Instance(**self.test_instance)
13117
+ instance.vm_state = vm_states.PAUSED
13118
+
13119
+ drvr._live_migration_operation(self.context, instance, 'dest',
13120
+ True, migrate_data, guest,
13121
+ disk_paths)
13122
+
13123
+ # Verify VIR_MIGRATE_POSTCOPY flag was not set
13124
+ self.assertEqual(drvr._live_migration_flags, 27)
13125
+ mock_migrateToURI3.assert_called_once_with(
13126
+ drvr._live_migration_uri('dest'), params=params, flags=27)
13127
+
13100
13128
@mock.patch.object(host.Host, 'has_min_version', return_value=True)
13101
13129
@mock.patch.object(fakelibvirt.virDomain, "migrateToURI3")
13102
13130
@mock.patch('nova.virt.libvirt.migration.get_updated_guest_xml',
@@ -13106,7 +13134,6 @@ def test_block_live_migration_native_tls(
13106
13134
self, mock_old_xml, mock_new_xml,
13107
13135
mock_migrateToURI3, mock_min_version):
13108
13136
self.flags(live_migration_with_native_tls=True, group='libvirt')
13109
-
13110
13137
target_connection = None
13111
13138
disk_paths = ['vda', 'vdb']
13112
13139
0 commit comments