diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-02-06 03:49:29 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-02-06 03:49:29 +0000 |
| commit | cfec3e765816a3329f4477e71784cc4f36ff4cad (patch) | |
| tree | 6cd9d567645702b5b662eb8f5f0d598d337be129 /nova/tests | |
| parent | fc7cece8392e66f7e0d11959bc7df7be8bf1a3d8 (diff) | |
| parent | 1b65fb08f2845fe1ab525709d7a5d76f91985cea (diff) | |
Merge "Refactor instance usage notifications for compute manager"
Diffstat (limited to 'nova/tests')
| -rw-r--r-- | nova/tests/compute/test_compute.py | 20 | ||||
| -rw-r--r-- | nova/tests/conductor/test_conductor.py | 32 |
2 files changed, 52 insertions, 0 deletions
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index 8b38b51f2..1584cde34 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -3473,6 +3473,26 @@ class ComputeTestCase(BaseTestCase): result = self.compute._get_instances_on_driver(fake_context) self.assertEqual(driver_instances, result) + def test_instance_usage_audit(self): + instances = [{'uuid': 'foo'}] + self.flags(instance_usage_audit=True) + self.stubs.Set(compute_utils, 'has_audit_been_run', + lambda *a, **k: False) + self.stubs.Set(self.compute.conductor_api, + 'instance_get_active_by_window_joined', + lambda *a, **k: instances) + self.stubs.Set(compute_utils, 'start_instance_usage_audit', + lambda *a, **k: None) + self.stubs.Set(compute_utils, 'finish_instance_usage_audit', + lambda *a, **k: None) + + self.mox.StubOutWithMock(self.compute.conductor_api, + 'notify_usage_exists') + self.compute.conductor_api.notify_usage_exists( + self.context, instances[0], ignore_missing_network_data=False) + self.mox.ReplayAll() + self.compute._instance_usage_audit(self.context) + class ComputeAPITestCase(BaseTestCase): diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py index f21e67845..d9d6f2db5 100644 --- a/nova/tests/conductor/test_conductor.py +++ b/nova/tests/conductor/test_conductor.py @@ -17,6 +17,7 @@ import mox from nova.compute import instance_types +from nova.compute import utils as compute_utils from nova.compute import vm_states from nova import conductor from nova.conductor import api as conductor_api @@ -26,6 +27,7 @@ from nova import context from nova import db from nova.db.sqlalchemy import models from nova import exception as exc +from nova import notifications from nova.openstack.common import jsonutils from nova.openstack.common.rpc import common as rpc_common from nova.openstack.common import timeutils @@ -463,6 +465,36 @@ class _BaseTestCase(object): self.context, 'task', 'begin', 'end', 'host', 'errors', 'message') self.assertEqual(result, 'result') + def test_notify_usage_exists(self): + info = { + 'audit_period_beginning': 'start', + 'audit_period_ending': 'end', + 'bandwidth': 'bw_usage', + 'image_meta': {}, + 'extra': 'info', + } + instance = { + 'system_metadata': [], + } + + self.mox.StubOutWithMock(notifications, 'audit_period_bounds') + self.mox.StubOutWithMock(notifications, 'bandwidth_usage') + self.mox.StubOutWithMock(compute_utils, 'notify_about_instance_usage') + + notifications.audit_period_bounds(False).AndReturn(('start', 'end')) + notifications.bandwidth_usage(instance, 'start', True).AndReturn( + 'bw_usage') + compute_utils.notify_about_instance_usage(self.context, instance, + 'exists', + system_metadata={}, + extra_usage_info=info) + + self.mox.ReplayAll() + + self.conductor.notify_usage_exists(self.context, instance, + system_metadata={}, + extra_usage_info=dict(extra='info')) + class ConductorTestCase(_BaseTestCase, test.TestCase): """Conductor Manager Tests.""" |
