summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-02-06 03:49:29 +0000
committerGerrit Code Review <review@openstack.org>2013-02-06 03:49:29 +0000
commitcfec3e765816a3329f4477e71784cc4f36ff4cad (patch)
tree6cd9d567645702b5b662eb8f5f0d598d337be129 /nova/tests
parentfc7cece8392e66f7e0d11959bc7df7be8bf1a3d8 (diff)
parent1b65fb08f2845fe1ab525709d7a5d76f91985cea (diff)
Merge "Refactor instance usage notifications for compute manager"
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/compute/test_compute.py20
-rw-r--r--nova/tests/conductor/test_conductor.py32
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."""