diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-09-28 17:05:58 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-09-28 17:05:58 +0000 |
| commit | d68151723c106989077be7e3e4db766c28b64362 (patch) | |
| tree | c77f3fd95b1756728d5ed7cf385165db51c6b523 /nova/tests | |
| parent | 6bb02e91de87c05adee66decce84c21a5d4ee6da (diff) | |
| parent | 818fa7e26d9e7af0fe5716755a56f7fe2f13a890 (diff) | |
Merge "Added compute node stats to HostState"
Diffstat (limited to 'nova/tests')
| -rw-r--r-- | nova/tests/scheduler/test_filter_scheduler.py | 17 | ||||
| -rw-r--r-- | nova/tests/scheduler/test_host_manager.py | 56 |
2 files changed, 65 insertions, 8 deletions
diff --git a/nova/tests/scheduler/test_filter_scheduler.py b/nova/tests/scheduler/test_filter_scheduler.py index 9e78f3a50..aeb4c6dfd 100644 --- a/nova/tests/scheduler/test_filter_scheduler.py +++ b/nova/tests/scheduler/test_filter_scheduler.py @@ -49,9 +49,10 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): uuid = 'fake-uuid1' fake_context = context.RequestContext('user', 'project') + instance_properties = {'project_id': 1, 'os_type': 'Linux'} request_spec = {'instance_type': {'memory_mb': 1, 'root_gb': 1, 'ephemeral_gb': 0}, - 'instance_properties': {'project_id': 1}, + 'instance_properties': instance_properties, 'instance_uuids': [uuid]} self.mox.StubOutWithMock(compute_utils, 'add_instance_fault_from_exc') @@ -80,8 +81,9 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): fake_context = context.RequestContext('user', 'project') uuid = 'fake-uuid1' + instance_properties = {'project_id': 1, 'os_type': 'Linux'} request_spec = {'instance_type': {'memory_mb': 1, 'local_gb': 1}, - 'instance_properties': {'project_id': 1}, + 'instance_properties': instance_properties, 'instance_uuids': [uuid]} self.mox.StubOutWithMock(compute_utils, 'add_instance_fault_from_exc') self.mox.StubOutWithMock(db, 'instance_update_and_get_original') @@ -180,7 +182,8 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): 'root_gb': 512, 'memory_mb': 512, 'ephemeral_gb': 0, - 'vcpus': 1}} + 'vcpus': 1, + 'os_type': 'Linux'}} self.mox.ReplayAll() weighted_hosts = sched._schedule(fake_context, 'compute', request_spec, {}) @@ -245,7 +248,7 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): self.flags(scheduler_max_attempts=1) sched = fakes.FakeFilterScheduler() - instance_properties = {} + instance_properties = {'project_id': '12345', 'os_type': 'Linux'} request_spec = dict(instance_properties=instance_properties) filter_properties = {} @@ -260,7 +263,7 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): self.flags(scheduler_max_attempts=2) sched = fakes.FakeFilterScheduler() - instance_properties = {} + instance_properties = {'project_id': '12345', 'os_type': 'Linux'} request_spec = dict(instance_properties=instance_properties) filter_properties = {} @@ -275,7 +278,7 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): self.flags(scheduler_max_attempts=2) sched = fakes.FakeFilterScheduler() - instance_properties = {} + instance_properties = {'project_id': '12345', 'os_type': 'Linux'} request_spec = dict(instance_properties=instance_properties) retry = dict(num_attempts=1) @@ -292,7 +295,7 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase): self.flags(scheduler_max_attempts=2) sched = fakes.FakeFilterScheduler() - instance_properties = {} + instance_properties = {'project_id': '12345', 'os_type': 'Linux'} request_spec = dict(instance_properties=instance_properties) retry = dict(num_attempts=2) diff --git a/nova/tests/scheduler/test_host_manager.py b/nova/tests/scheduler/test_host_manager.py index 2ca8f3ad9..5074d188a 100644 --- a/nova/tests/scheduler/test_host_manager.py +++ b/nova/tests/scheduler/test_host_manager.py @@ -17,6 +17,8 @@ Tests For HostManager """ +from nova.compute import task_states +from nova.compute import vm_states from nova import db from nova import exception from nova.openstack.common import timeutils @@ -67,7 +69,7 @@ class HostManagerTestCase(test.TestCase): fake_host1 = host_manager.HostState('host1', topic) fake_host2 = host_manager.HostState('host2', topic) hosts = [fake_host1, fake_host2] - filter_properties = 'fake_properties' + filter_properties = {'fake_prop': 'fake_val'} self.mox.StubOutWithMock(self.host_manager, '_choose_host_filters') @@ -247,3 +249,55 @@ class HostStateTestCase(test.TestCase): self.mox.ReplayAll() result = fake_host.passes_filters(filter_fns, filter_properties) self.assertTrue(result) + + def test_stat_consumption_from_compute_node(self): + stats = [ + dict(key='num_instances', value='5'), + dict(key='num_proj_12345', value='3'), + dict(key='num_proj_23456', value='1'), + dict(key='num_vm_%s' % vm_states.BUILDING, value='2'), + dict(key='num_vm_%s' % vm_states.SUSPENDED, value='1'), + dict(key='num_task_%s' % task_states.RESIZE_MIGRATING, value='1'), + dict(key='num_task_%s' % task_states.MIGRATING, value='2'), + dict(key='num_os_type_linux', value='4'), + dict(key='num_os_type_windoze', value='1'), + dict(key='io_workload', value='42'), + ] + compute = dict(stats=stats, memory_mb=0, free_disk_gb=0, local_gb=0, + local_gb_used=0, free_ram_mb=0, vcpus=0, vcpus_used=0) + + host = host_manager.HostState("fakehost", "faketopic") + host.update_from_compute_node(compute) + + self.assertEqual(5, host.num_instances) + self.assertEqual(3, host.num_instances_by_project['12345']) + self.assertEqual(1, host.num_instances_by_project['23456']) + self.assertEqual(2, host.vm_states[vm_states.BUILDING]) + self.assertEqual(1, host.vm_states[vm_states.SUSPENDED]) + self.assertEqual(1, host.task_states[task_states.RESIZE_MIGRATING]) + self.assertEqual(2, host.task_states[task_states.MIGRATING]) + self.assertEqual(4, host.num_instances_by_os_type['linux']) + self.assertEqual(1, host.num_instances_by_os_type['windoze']) + self.assertEqual(42, host.num_io_ops) + + def test_stat_consumption_from_instance(self): + host = host_manager.HostState("fakehost", "faketopic") + + instance = dict(root_gb=0, ephemeral_gb=0, memory_mb=0, vcpus=0, + project_id='12345', vm_state=vm_states.BUILDING, + task_state=task_states.SCHEDULING, os_type='Linux') + host.consume_from_instance(instance) + + instance = dict(root_gb=0, ephemeral_gb=0, memory_mb=0, vcpus=0, + project_id='12345', vm_state=vm_states.PAUSED, + task_state=None, os_type='Linux') + host.consume_from_instance(instance) + + self.assertEqual(2, host.num_instances) + self.assertEqual(2, host.num_instances_by_project['12345']) + self.assertEqual(1, host.vm_states[vm_states.BUILDING]) + self.assertEqual(1, host.vm_states[vm_states.PAUSED]) + self.assertEqual(1, host.task_states[task_states.SCHEDULING]) + self.assertEqual(1, host.task_states[None]) + self.assertEqual(2, host.num_instances_by_os_type['Linux']) + self.assertEqual(1, host.num_io_ops) |
