Merge "Correct host managers free disk calculation"
This commit is contained in:
commit
7d95d729a3
|
@ -183,8 +183,15 @@ class HostState(object):
|
|||
all_ram_mb = compute['memory_mb']
|
||||
|
||||
# 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_gb = compute.get('free_disk_gb')
|
||||
least_gb = compute.get('disk_available_least')
|
||||
if least_gb > free_gb and free_gb:
|
||||
# can occur when an instance in database is not on host
|
||||
LOG.warn(_("Host has more disk space than database expected"
|
||||
" (%(physical)sgb > %(database)sgb)") %
|
||||
{'physical': least_gb, 'database': free_gb})
|
||||
free_disk_mb = min(val for val in [least_gb,
|
||||
free_gb] if val is not None)
|
||||
free_disk_mb *= 1024
|
||||
|
||||
self.disk_mb_used = compute['local_gb_used'] * 1024
|
||||
|
|
|
@ -27,26 +27,26 @@ from nova.scheduler import host_manager
|
|||
|
||||
COMPUTE_NODES = [
|
||||
dict(id=1, local_gb=1024, memory_mb=1024, vcpus=1,
|
||||
disk_available_least=512, free_ram_mb=512, vcpus_used=1,
|
||||
free_disk_mb=512, local_gb_used=0, updated_at=None,
|
||||
disk_available_least=None, free_ram_mb=512, vcpus_used=1,
|
||||
free_disk_gb=512, local_gb_used=0, updated_at=None,
|
||||
service=dict(host='host1', disabled=False),
|
||||
hypervisor_hostname='node1', host_ip='127.0.0.1',
|
||||
hypervisor_version=0),
|
||||
dict(id=2, local_gb=2048, memory_mb=2048, vcpus=2,
|
||||
disk_available_least=1024, free_ram_mb=1024, vcpus_used=2,
|
||||
free_disk_mb=1024, local_gb_used=0, updated_at=None,
|
||||
free_disk_gb=None, local_gb_used=0, updated_at=None,
|
||||
service=dict(host='host2', disabled=True),
|
||||
hypervisor_hostname='node2', host_ip='127.0.0.1',
|
||||
hypervisor_version=0),
|
||||
dict(id=3, local_gb=4096, memory_mb=4096, vcpus=4,
|
||||
disk_available_least=3072, free_ram_mb=3072, vcpus_used=1,
|
||||
free_disk_mb=3072, local_gb_used=0, updated_at=None,
|
||||
disk_available_least=3333, free_ram_mb=3072, vcpus_used=1,
|
||||
free_disk_gb=3072, local_gb_used=0, updated_at=None,
|
||||
service=dict(host='host3', disabled=False),
|
||||
hypervisor_hostname='node3', host_ip='127.0.0.1',
|
||||
hypervisor_version=0),
|
||||
dict(id=4, local_gb=8192, memory_mb=8192, vcpus=8,
|
||||
disk_available_least=8192, free_ram_mb=8192, vcpus_used=0,
|
||||
free_disk_mb=8192, local_gb_used=0, updated_at=None,
|
||||
free_disk_gb=8888, local_gb_used=0, updated_at=None,
|
||||
service=dict(host='host4', disabled=False),
|
||||
hypervisor_hostname='node4', host_ip='127.0.0.1',
|
||||
hypervisor_version=0),
|
||||
|
|
|
@ -274,6 +274,9 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||
self.mox.StubOutWithMock(host_manager.LOG, 'warn')
|
||||
|
||||
db.compute_node_get_all(context).AndReturn(fakes.COMPUTE_NODES)
|
||||
# node 3 host physical disk space is greater than database
|
||||
host_manager.LOG.warn("Host has more disk space than database expected"
|
||||
" (3333gb > 3072gb)")
|
||||
# Invalid service
|
||||
host_manager.LOG.warn("No service for compute ID 5")
|
||||
|
||||
|
|
Loading…
Reference in New Issue