Merge "compute node local_gb_used include swap disks"

This commit is contained in:
Zuul 2018-08-01 09:30:09 +00:00 committed by Gerrit Code Review
commit 6734eae416
3 changed files with 13 additions and 6 deletions

View File

@ -940,6 +940,7 @@ class ResourceTracker(object):
cn.memory_mb_used += sign * mem_usage
cn.local_gb_used += sign * disk_usage
cn.local_gb_used += sign * usage.get('ephemeral_gb', 0)
cn.local_gb_used += sign * usage.get('swap', 0) / 1024
cn.vcpus_used += sign * vcpus_usage
# free ram and disk may be negative, depending on policy:
@ -1461,6 +1462,7 @@ class ResourceTracker(object):
is_bfv = compute_utils.is_volume_backed_instance(
object_or_dict._context, object_or_dict)
usage = {'memory_mb': object_or_dict.flavor.memory_mb,
'swap': object_or_dict.flavor.swap,
'vcpus': object_or_dict.flavor.vcpus,
'root_gb': (0 if is_bfv else
object_or_dict.flavor.root_gb),

View File

@ -3649,9 +3649,7 @@ class VolumeBackedServerTest(integrated_helpers.ProviderUsageBaseTestCase):
self.assertEqual(expected_usage, resources['DISK_GB'])
# Ensure the compute node is reporting the correct disk usage
self.assertEqual(
# TODO(efried): Due to bug #1782386, swap is not being reported.
# expected_usage,
30,
expected_usage,
self.admin_api.get_hypervisor_stats()['local_gb_used'])
def test_volume_backed_no_disk_allocation(self):
@ -3664,9 +3662,7 @@ class VolumeBackedServerTest(integrated_helpers.ProviderUsageBaseTestCase):
self.assertEqual(expected_usage, resources['DISK_GB'])
# Ensure the compute node is reporting the correct disk usage
self.assertEqual(
# TODO(efried): Due to bug #1782386, swap is not being reported.
# expected_usage,
20,
expected_usage,
self.admin_api.get_hypervisor_stats()['local_gb_used'])
# Now let's hack the RequestSpec.is_bfv field to mimic migrating an

View File

@ -2684,6 +2684,15 @@ class TestUpdateUsageFromInstance(BaseTestCase):
result = self.rt._get_usage_dict(self.instance)
self.assertEqual(0, result['root_gb'])
@mock.patch('nova.compute.utils.is_volume_backed_instance')
def test_get_usage_dict_include_swap(
self, mock_check_bfv):
mock_check_bfv.return_value = False
instance_with_swap = self.instance.obj_clone()
instance_with_swap.flavor.swap = 10
result = self.rt._get_usage_dict(instance_with_swap)
self.assertEqual(10, result['swap'])
@mock.patch('nova.compute.utils.is_volume_backed_instance')
@mock.patch('nova.compute.resource_tracker.ResourceTracker.'
'_update_usage')