Assume virt disk size is consumed by instances.
Use disk_available_least other than free_disk_gb to consume. assume virt disk size is consumed by instances when calculate the available disk size. fix bug lp:1042071 Change-Id: I82dc3bcfd97219085c624c81dfa47cbf0bcd4504
This commit is contained in:
@@ -122,7 +122,10 @@ class HostState(object):
|
|||||||
all_disk_mb = compute['local_gb'] * 1024
|
all_disk_mb = compute['local_gb'] * 1024
|
||||||
all_ram_mb = compute['memory_mb']
|
all_ram_mb = compute['memory_mb']
|
||||||
|
|
||||||
free_disk_mb = compute['free_disk_gb'] * 1024
|
# Assume virtual size is all consumed by instances if use qcow2 disk.
|
||||||
|
least = compute.get('disk_available_least')
|
||||||
|
free_disk_mb = least if least is not None else compute['free_disk_gb']
|
||||||
|
free_disk_mb *= 1024
|
||||||
free_ram_mb = compute['free_ram_mb']
|
free_ram_mb = compute['free_ram_mb']
|
||||||
|
|
||||||
if FLAGS.reserved_host_disk_mb > 0:
|
if FLAGS.reserved_host_disk_mb > 0:
|
||||||
|
|||||||
@@ -27,17 +27,17 @@ from nova.scheduler import host_manager
|
|||||||
|
|
||||||
COMPUTE_NODES = [
|
COMPUTE_NODES = [
|
||||||
dict(id=1, local_gb=1024, memory_mb=1024, vcpus=1,
|
dict(id=1, local_gb=1024, memory_mb=1024, vcpus=1,
|
||||||
free_disk_gb=512, free_ram_mb=512, vcpus_used=1,
|
disk_available_least=512, free_ram_mb=512, vcpus_used=1,
|
||||||
service=dict(host='host1', disabled=False)),
|
free_disk_mb=512, service=dict(host='host1', disabled=False)),
|
||||||
dict(id=2, local_gb=2048, memory_mb=2048, vcpus=2,
|
dict(id=2, local_gb=2048, memory_mb=2048, vcpus=2,
|
||||||
free_disk_gb=1024, free_ram_mb=1024, vcpus_used=2,
|
disk_available_least=1024, free_ram_mb=1024, vcpus_used=2,
|
||||||
service=dict(host='host2', disabled=True)),
|
free_disk_mb=1024, service=dict(host='host2', disabled=True)),
|
||||||
dict(id=3, local_gb=4096, memory_mb=4096, vcpus=4,
|
dict(id=3, local_gb=4096, memory_mb=4096, vcpus=4,
|
||||||
free_disk_gb=3072, free_ram_mb=3072, vcpus_used=1,
|
disk_available_least=3072, free_ram_mb=3072, vcpus_used=1,
|
||||||
service=dict(host='host3', disabled=False)),
|
free_disk_mb=3072, service=dict(host='host3', disabled=False)),
|
||||||
dict(id=4, local_gb=8192, memory_mb=8192, vcpus=8,
|
dict(id=4, local_gb=8192, memory_mb=8192, vcpus=8,
|
||||||
free_disk_gb=8192, free_ram_mb=8192, vcpus_used=0,
|
disk_available_least=8192, free_ram_mb=8192, vcpus_used=0,
|
||||||
service=dict(host='host4', disabled=False)),
|
free_disk_mb=8192, service=dict(host='host4', disabled=False)),
|
||||||
# Broken entry
|
# Broken entry
|
||||||
dict(id=5, local_gb=1024, memory_mb=1024, vcpus=1, service=None),
|
dict(id=5, local_gb=1024, memory_mb=1024, vcpus=1, service=None),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -203,8 +203,8 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
|
|||||||
self.assertEquals(weight, -1.0)
|
self.assertEquals(weight, -1.0)
|
||||||
hostinfo = host_manager.HostState('host', 'compute')
|
hostinfo = host_manager.HostState('host', 'compute')
|
||||||
hostinfo.update_from_compute_node(dict(memory_mb=1000,
|
hostinfo.update_from_compute_node(dict(memory_mb=1000,
|
||||||
local_gb=0, vcpus=1, free_disk_gb=1000, free_ram_mb=1000,
|
local_gb=0, vcpus=1, disk_available_least=1000,
|
||||||
vcpus_used=0))
|
free_disk_mb=1000, free_ram_mb=1000, vcpus_used=0))
|
||||||
self.assertEquals(1000 - 128, fn(hostinfo, {}))
|
self.assertEquals(1000 - 128, fn(hostinfo, {}))
|
||||||
|
|
||||||
def test_max_attempts(self):
|
def test_max_attempts(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user