]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Use the new class for database access to Events
authorZane Bitter <zbitter@redhat.com>
Thu, 22 Nov 2012 10:06:57 +0000 (11:06 +0100)
committerZane Bitter <zbitter@redhat.com>
Thu, 22 Nov 2012 13:13:58 +0000 (14:13 +0100)
Change-Id: I6c02cf47869aaa1d293cb1b528ed967397c47208
Signed-off-by: Zane Bitter <zbitter@redhat.com>
heat/engine/api.py
heat/engine/resources/resource.py
heat/engine/service.py

index 86ad9984c7f1544e29a1e5ef1d0a78e92ac5795f..f53c16d399599b0b8e3a0e206da9e4b1d72b7d3b 100644 (file)
@@ -166,18 +166,19 @@ EVENT_KEYS = (
 )
 
 
-def format_event(context, event):
-    stack = parser.Stack.load(context, stack=event.stack)
+def format_event(event):
+    stack_identifier = event.stack.identifier()
+
     result = {
         EVENT_ID: event.id,
-        EVENT_STACK_ID: dict(stack.identifier()),
-        EVENT_STACK_NAME: stack.name,
-        EVENT_TIMESTAMP: timeutils.isotime(event.created_at),
-        EVENT_RES_NAME: event.logical_resource_id,
+        EVENT_STACK_ID: dict(stack_identifier),
+        EVENT_STACK_NAME: stack_identifier.stack_name,
+        EVENT_TIMESTAMP: timeutils.isotime(event.timestamp),
+        EVENT_RES_NAME: event.resource.name,
         EVENT_RES_PHYSICAL_ID: event.physical_resource_id,
-        EVENT_RES_STATUS: event.name,
-        EVENT_RES_STATUS_DATA: event.resource_status_reason,
-        EVENT_RES_TYPE: event.resource_type,
+        EVENT_RES_STATUS: event.new_state,
+        EVENT_RES_STATUS_DATA: event.reason,
+        EVENT_RES_TYPE: event.resource.type(),
         EVENT_RES_PROPERTIES: event.resource_properties,
     }
 
index 45031299342a26810901ec04384ff65ceaf43b14..a8a35c9af0e7941d3993a9172db831cfa4f71d16 100644 (file)
@@ -16,6 +16,7 @@
 import base64
 from datetime import datetime
 
+from heat.engine.resources import event
 from heat.common import exception
 from heat.db import api as db_api
 from heat.engine import identifier
@@ -331,17 +332,12 @@ class Resource(object):
 
     def _add_event(self, new_state, reason):
         '''Add a state change event to the database'''
-        ev = {'logical_resource_id': self.name,
-              'physical_resource_id': self.resource_id,
-              'stack_id': self.stack.id,
-              'stack_name': self.stack.name,
-              'resource_status': new_state,
-              'name': new_state,
-              'resource_status_reason': reason,
-              'resource_type': self.type(),
-              'resource_properties': dict(self.properties)}
+        ev = event.Event(self.context, self.stack, self,
+                         new_state, reason,
+                         self.resource_id, self.properties)
+
         try:
-            db_api.event_create(self.context, ev)
+            ev.store()
         except Exception as ex:
             logger.error('DB error %s' % str(ex))
 
index 3597462e58b24702dc69e9143b022d4615d15f3b..6c172e32b4249678f9796a863453483a93409535 100644 (file)
@@ -19,6 +19,7 @@ import webob
 from heat.common import context
 from heat.db import api as db_api
 from heat.engine import api
+from heat.engine.resources.event import Event
 from heat.engine import identifier
 from heat.engine import parser
 from heat.engine import watchrule
@@ -338,7 +339,9 @@ class EngineService(service.Service):
         else:
             events = db_api.event_get_all_by_tenant(context)
 
-        return {'events': [api.format_event(context, e) for e in events]}
+        output = [api.format_event(Event.load(context, e.id)) for e in events]
+
+        return {'events': output}
 
     @request_context
     def describe_stack_resource(self, context, stack_identity, resource_name):