def dehydrate_events(self, obj): """Dehydrate the node events. The latests 50 not including DEBUG events will be dehydrated. The `EventsHandler` needs to be used if more are required. """ events = ( Event.objects.filter(node=obj) .exclude(type__level=logging.DEBUG) .select_related("type") .order_by("-id")[:50] ) return [ { "id": event.id, "type": { "id": event.type.id, "name": event.type.name, "description": event.type.description, "level": dehydrate_event_type_level(event.type.level), }, "description": event.description, "created": dehydrate_datetime(event.created), } for event in events ]
def dehydrate_event(self, event): data = { "id": event.id, "node_id": event.node.id, "action": event.action, "description": event.description, "type": { "level": dehydrate_event_type_level(event.type.level), "name": event.type.name, "description": event.type.description, }, "updated": dehydrate_datetime(event.updated), "created": dehydrate_datetime(event.created), } return data
def dehydrate_event(self, event): data = { "id": event.id, "node_id": event.node.id, "node_hostname": event.node_hostname, "user": event.user.id, "username": event.username, "ip_address": event.ip_address, "endpoint": event.endpoint, "user_agent": event.user_agent, "action": event.action, "description": event.description, "type": { "level": dehydrate_event_type_level(event.type.level), "name": event.type.name, "description": event.type.description, }, "updated": dehydrate_datetime(event.updated), "created": dehydrate_datetime(event.created), } return data