From e2cc275063658b23ed88824100919a6dfccb760d Mon Sep 17 00:00:00 2001 From: int32bit Date: Mon, 22 Jan 2018 20:15:21 +0800 Subject: [PATCH] Refix disk size during live migration with disk over-commit Currently available disk of targer host is calculated based on local_gb, not available disk(free_disk_gb). This check can be negative if the target host has no free disk. Change-Id: Iec50269ef31dfe090f0cd4db95a37909661bd910 closes-bug: 1744079 --- nova/tests/unit/virt/libvirt/test_driver.py | 4 ++-- nova/virt/libvirt/driver.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index cbd87fd5cf41..a58744f33697 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -7749,7 +7749,7 @@ class LibvirtConnTestCase(test.NoDBTestCase, instance_ref.vcpu_model = test_vcpu_model.fake_vcpumodel drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False) compute_info = {'disk_available_least': -1000, - 'local_gb': 100, + 'free_disk_gb': 50, 'cpu_info': 'asdf', } filename = "file" @@ -7766,7 +7766,7 @@ class LibvirtConnTestCase(test.NoDBTestCase, return_value.is_volume_backed = False self.assertThat({"filename": "file", 'image_type': 'default', - 'disk_available_mb': 102400, + 'disk_available_mb': 51200, "disk_over_commit": True, "block_migration": True, "is_volume_backed": False}, diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 101d0bb6ddcb..885aa858ba34 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -6327,7 +6327,7 @@ class LibvirtDriver(driver.ComputeDriver): :returns: a LibvirtLiveMigrateData object """ if disk_over_commit: - disk_available_gb = dst_compute_info['local_gb'] + disk_available_gb = dst_compute_info['free_disk_gb'] else: disk_available_gb = dst_compute_info['disk_available_least'] disk_available_mb = (