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