summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-06-19 16:56:09 +0000
committerGerrit Code Review <review@openstack.org>2012-06-19 16:56:09 +0000
commit635f8e137b4e311fbf5d2b248148a72c4359c44c (patch)
tree6a414cd490c0ffd1d4bf8f4f17017a15ca31ccdd
parent225f6f21b1f4158e635f06b4d040b41fa21be09d (diff)
parent468e64d019f51d364afb30b0eed2ad09483e0b98 (diff)
downloadnova-635f8e137b4e311fbf5d2b248148a72c4359c44c.tar.gz
nova-635f8e137b4e311fbf5d2b248148a72c4359c44c.tar.xz
nova-635f8e137b4e311fbf5d2b248148a72c4359c44c.zip
Merge "Fix missing import in compute/utils.py"
-rw-r--r--nova/compute/utils.py1
-rw-r--r--nova/tests/test_compute_utils.py26
2 files changed, 27 insertions, 0 deletions
diff --git a/nova/compute/utils.py b/nova/compute/utils.py
index 67a174f51..d5905f7e7 100644
--- a/nova/compute/utils.py
+++ b/nova/compute/utils.py
@@ -17,6 +17,7 @@
"""Compute-related Utilities and helpers."""
from nova import db
+from nova import exception
from nova import flags
from nova import log
from nova.network import model as network_model
diff --git a/nova/tests/test_compute_utils.py b/nova/tests/test_compute_utils.py
index 5fbf2e80c..50c85073f 100644
--- a/nova/tests/test_compute_utils.py
+++ b/nova/tests/test_compute_utils.py
@@ -112,3 +112,29 @@ class UsageInfoTestCase(test.TestCase):
image_ref_url = "%s/images/1" % utils.generate_glance_url()
self.assertEquals(payload['image_ref_url'], image_ref_url)
self.compute.terminate_instance(self.context, instance['uuid'])
+
+ def test_notify_usage_exists_instance_not_found(self):
+ """Ensure 'exists' notification generates appropriate usage data."""
+ instance_id = self._create_instance()
+ instance = db.instance_get(self.context, instance_id)
+ self.compute.terminate_instance(self.context, instance['uuid'])
+ compute_utils.notify_usage_exists(self.context, instance)
+ msg = test_notifier.NOTIFICATIONS[-1]
+ self.assertEquals(msg['priority'], 'INFO')
+ self.assertEquals(msg['event_type'], 'compute.instance.exists')
+ payload = msg['payload']
+ self.assertEquals(payload['tenant_id'], self.project_id)
+ self.assertEquals(payload['user_id'], self.user_id)
+ self.assertEquals(payload['instance_id'], instance.uuid)
+ self.assertEquals(payload['instance_type'], 'm1.tiny')
+ type_id = instance_types.get_instance_type_by_name('m1.tiny')['id']
+ self.assertEquals(str(payload['instance_type_id']), str(type_id))
+ for attr in ('display_name', 'created_at', 'launched_at',
+ 'state', 'state_description',
+ 'bandwidth', 'audit_period_beginning',
+ 'audit_period_ending', 'image_meta'):
+ self.assertTrue(attr in payload,
+ msg="Key %s not in payload" % attr)
+ self.assertEquals(payload['image_meta'], {})
+ image_ref_url = "%s/images/1" % utils.generate_glance_url()
+ self.assertEquals(payload['image_ref_url'], image_ref_url)