)
-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,
}
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
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))
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
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):