summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-09-28 17:05:58 +0000
committerGerrit Code Review <review@openstack.org>2012-09-28 17:05:58 +0000
commitd68151723c106989077be7e3e4db766c28b64362 (patch)
treec77f3fd95b1756728d5ed7cf385165db51c6b523 /nova/tests
parent6bb02e91de87c05adee66decce84c21a5d4ee6da (diff)
parent818fa7e26d9e7af0fe5716755a56f7fe2f13a890 (diff)
Merge "Added compute node stats to HostState"
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/scheduler/test_filter_scheduler.py17
-rw-r--r--nova/tests/scheduler/test_host_manager.py56
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)