From 34cc68ac6e1c1ba24fd70649e91938a3d70c773b Mon Sep 17 00:00:00 2001 From: Lee Yarwood Date: Wed, 19 Aug 2020 15:10:13 +0100 Subject: [PATCH] libvirt: Remove MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION I8e349849db0b1a540d295c903f1470917b82fd97 has bumped MIN_LIBVIRT_VERSION past this so remove the constant and associated logic. Change-Id: I952f36fe201aad37297c7630ed562b579c90f64a --- nova/objects/migrate_data.py | 4 +- nova/tests/unit/virt/libvirt/test_driver.py | 83 ------------------- .../tests/unit/virt/libvirt/test_migration.py | 74 +---------------- nova/virt/libvirt/driver.py | 8 +- nova/virt/libvirt/migration.py | 8 +- 5 files changed, 6 insertions(+), 171 deletions(-) diff --git a/nova/objects/migrate_data.py b/nova/objects/migrate_data.py index 073f6d5c10..fee578080c 100644 --- a/nova/objects/migrate_data.py +++ b/nova/objects/migrate_data.py @@ -241,10 +241,10 @@ class LibvirtLiveMigrateData(LiveMigrateData): 'bdms': fields.ListOfObjectsField('LibvirtLiveMigrateBDMInfo'), 'target_connect_addr': fields.StringField(nullable=True), 'supported_perf_events': fields.ListOfStringsField(), + # TODO(lyarwood): No longer used, drop in version 2.0 'src_supports_native_luks': fields.BooleanField(), 'dst_wants_file_backed_memory': fields.BooleanField(), - # file_backed_memory_discard is ignored unless - # dst_wants_file_backed_memory is set + # TODO(lyarwood): No longer used, drop in version 2.0 'file_backed_memory_discard': fields.BooleanField(), # TODO(artom) (src|dst)_supports_numa_live_migration are only used as # flags to indicate that the compute host is new enough to perform a diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index 1a7e7b7d59..a308666129 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -3423,32 +3423,6 @@ class LibvirtConnTestCase(test.NoDBTestCase, self.assertTrue(result.filesource) self.assertTrue(result.allocateimmediate) - @mock.patch.object(fakelibvirt.Connection, 'getLibVersion') - def test_get_guest_memory_backing_config_file_backed_discard(self, - mock_lib_version): - self.flags(file_backed_memory=1024, group='libvirt') - - mock_lib_version.return_value = versionutils.convert_version_to_int( - libvirt_driver.MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION) - - result = self._test_get_guest_memory_backing_config( - None, None, None - ) - self.assertTrue(result.discard) - - @mock.patch.object(fakelibvirt.Connection, 'getLibVersion') - def test_get_guest_memory_backing_config_file_backed_discard_libvirt(self, - mock_lib_version): - self.flags(file_backed_memory=1024, group='libvirt') - - mock_lib_version.return_value = versionutils.convert_version_to_int( - libvirt_driver.MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION) - 1 - - result = self._test_get_guest_memory_backing_config( - None, None, None - ) - self.assertFalse(result.discard) - def test_get_guest_memory_backing_config_file_backed_hugepages(self): self.flags(file_backed_memory=1024, group="libvirt") host_topology = objects.NUMATopology(cells=[ @@ -10747,7 +10721,6 @@ class LibvirtConnTestCase(test.NoDBTestCase, 'block_migration': True, 'is_volume_backed': False, 'dst_wants_file_backed_memory': False, - 'file_backed_memory_discard': False, 'graphics_listen_addr_spice': '127.0.0.1', 'graphics_listen_addr_vnc': '127.0.0.1', 'serial_listen_addr': None}, @@ -10784,7 +10757,6 @@ class LibvirtConnTestCase(test.NoDBTestCase, 'block_migration': True, 'is_volume_backed': False, 'dst_wants_file_backed_memory': False, - 'file_backed_memory_discard': False, 'graphics_listen_addr_spice': '127.0.0.1', 'graphics_listen_addr_vnc': '127.0.0.1', 'serial_listen_addr': None}, @@ -10818,7 +10790,6 @@ class LibvirtConnTestCase(test.NoDBTestCase, 'disk_available_mb': 409600, 'is_volume_backed': False, 'dst_wants_file_backed_memory': False, - 'file_backed_memory_discard': False, 'graphics_listen_addr_spice': '127.0.0.1', 'graphics_listen_addr_vnc': '127.0.0.1', 'serial_listen_addr': None}, @@ -10893,7 +10864,6 @@ class LibvirtConnTestCase(test.NoDBTestCase, 'disk_available_mb': 1024, 'is_volume_backed': False, 'dst_wants_file_backed_memory': False, - 'file_backed_memory_discard': False, 'graphics_listen_addr_spice': '127.0.0.1', 'graphics_listen_addr_vnc': '127.0.0.1', 'serial_listen_addr': None}, @@ -10959,7 +10929,6 @@ class LibvirtConnTestCase(test.NoDBTestCase, 'disk_available_mb': 1024, 'is_volume_backed': False, 'dst_wants_file_backed_memory': False, - 'file_backed_memory_discard': False, 'graphics_listen_addr_spice': '127.0.0.1', 'graphics_listen_addr_vnc': '127.0.0.1', 'serial_listen_addr': None}, @@ -10993,58 +10962,6 @@ class LibvirtConnTestCase(test.NoDBTestCase, self.assertTrue(return_value.dst_wants_file_backed_memory) - @mock.patch.object(fakelibvirt.Connection, 'getLibVersion') - @mock.patch.object(libvirt_driver.LibvirtDriver, - '_create_shared_storage_test_file') - @mock.patch.object(fakelibvirt.Connection, 'compareCPU') - def _test_check_can_live_migrate_dest_file_backed_discard( - self, libvirt_version, mock_cpu, mock_test_file, - mock_lib_version): - - self.flags(file_backed_memory=1024, group='libvirt') - - mock_lib_version.return_value = libvirt_version - - instance_ref = objects.Instance(**self.test_instance) - instance_ref.vcpu_model = test_vcpu_model.fake_vcpumodel - - drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False) - compute_info = {'disk_available_least': 400, - 'cpu_info': 'asdf', - } - - filename = "file" - - # _check_cpu_match - mock_cpu.return_value = 1 - # mounted_on_same_shared_storage - mock_test_file.return_value = filename - # No need for the src_compute_info - return_value = drvr.check_can_live_migrate_destination(self.context, - instance_ref, None, compute_info, False) - - return return_value - - def test_check_can_live_migrate_dest_file_backed_discard(self): - libvirt_version = versionutils.convert_version_to_int( - libvirt_driver.MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION) - - data = self._test_check_can_live_migrate_dest_file_backed_discard( - libvirt_version) - - self.assertTrue(data.dst_wants_file_backed_memory) - self.assertTrue(data.file_backed_memory_discard) - - def test_check_can_live_migrate_dest_file_backed_discard_bad_libvirt(self): - libvirt_version = versionutils.convert_version_to_int( - libvirt_driver.MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION) - 1 - - data = self._test_check_can_live_migrate_dest_file_backed_discard( - libvirt_version) - - self.assertTrue(data.dst_wants_file_backed_memory) - self.assertFalse(data.file_backed_memory_discard) - @mock.patch.object(fakelibvirt.Connection, 'compareCPU') def test_check_can_live_migrate_dest_incompatible_cpu_raises( self, mock_cpu): diff --git a/nova/tests/unit/virt/libvirt/test_migration.py b/nova/tests/unit/virt/libvirt/test_migration.py index d4fba48397..6166458ccc 100644 --- a/nova/tests/unit/virt/libvirt/test_migration.py +++ b/nova/tests/unit/virt/libvirt/test_migration.py @@ -656,6 +656,7 @@ class UtilityMigrationTestCase(test.NoDBTestCase): + """ doc = etree.fromstring(xml) @@ -679,6 +680,7 @@ class UtilityMigrationTestCase(test.NoDBTestCase): + """) @@ -691,78 +693,6 @@ class UtilityMigrationTestCase(test.NoDBTestCase): - -""" - doc = etree.fromstring(xml) - res = etree.tostring(migration._update_memory_backing_xml(doc, data), - encoding='unicode') - - self.assertXmlEqual(res, """ - - - - - -""") - - def test_update_memory_backing_discard_add(self): - data = objects.LibvirtLiveMigrateData( - dst_wants_file_backed_memory=True, file_backed_memory_discard=True) - - xml = """ - - - - - -""" - doc = etree.fromstring(xml) - res = etree.tostring(migration._update_memory_backing_xml(doc, data), - encoding='unicode') - - self.assertXmlEqual(res, """ - - - - - - -""") - - def test_update_memory_backing_discard_remove(self): - data = objects.LibvirtLiveMigrateData( - dst_wants_file_backed_memory=True, - file_backed_memory_discard=False) - - xml = """ - - - - - - -""" - doc = etree.fromstring(xml) - res = etree.tostring(migration._update_memory_backing_xml(doc, data), - encoding='unicode') - - self.assertXmlEqual(res, """ - - - - - -""") - - def test_update_memory_backing_discard_keep(self): - data = objects.LibvirtLiveMigrateData( - dst_wants_file_backed_memory=True, file_backed_memory_discard=True) - - xml = """ - - - - """ diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 4da0b5bff4..bacce2a0e1 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -249,7 +249,6 @@ VGPU_RESOURCE_SEMAPHORE = 'vgpu_resources' LIBVIRT_PERF_EVENT_PREFIX = 'VIR_PERF_PARAM_' -MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION = (4, 4, 0) MIN_LIBVIRT_NATIVE_TLS_VERSION = (4, 4, 0) MIN_QEMU_NATIVE_TLS_VERSION = (2, 11, 0) @@ -5652,9 +5651,7 @@ class LibvirtDriver(driver.ComputeDriver): membacking.filesource = True membacking.sharedaccess = True membacking.allocateimmediate = True - if self._host.has_min_version( - MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION): - membacking.discard = True + membacking.discard = True if self._sev_enabled(flavor, image_meta): if not membacking: membacking = vconfig.LibvirtConfigGuestMemoryBacking() @@ -8570,9 +8567,6 @@ class LibvirtDriver(driver.ComputeDriver): data.disk_over_commit = disk_over_commit data.disk_available_mb = disk_available_mb data.dst_wants_file_backed_memory = CONF.libvirt.file_backed_memory > 0 - data.file_backed_memory_discard = (CONF.libvirt.file_backed_memory and - self._host.has_min_version( - MIN_LIBVIRT_FILE_BACKED_DISCARD_VERSION)) # TODO(artom) Set to indicate that the destination (us) can perform a # NUMA-aware live migration. NUMA-aware live migration will become diff --git a/nova/virt/libvirt/migration.py b/nova/virt/libvirt/migration.py index 9543adda7a..36ee7168ef 100644 --- a/nova/virt/libvirt/migration.py +++ b/nova/virt/libvirt/migration.py @@ -296,16 +296,12 @@ def _update_memory_backing_xml(xml_doc, migrate_data): """ old_xml_has_memory_backing = True file_backed = False - discard = False memory_backing = xml_doc.findall('./memoryBacking') if 'dst_wants_file_backed_memory' in migrate_data: file_backed = migrate_data.dst_wants_file_backed_memory - if 'file_backed_memory_discard' in migrate_data: - discard = migrate_data.file_backed_memory_discard - if not memory_backing: # Create memoryBacking element memory_backing = etree.Element("memoryBacking") @@ -326,9 +322,7 @@ def _update_memory_backing_xml(xml_doc, migrate_data): memory_backing.append(etree.Element("source", type="file")) memory_backing.append(etree.Element("access", mode="shared")) memory_backing.append(etree.Element("allocation", mode="immediate")) - - if discard: - memory_backing.append(etree.Element("discard")) + memory_backing.append(etree.Element("discard")) if not old_xml_has_memory_backing: xml_doc.append(memory_backing)