26 lines
730 B
Python
26 lines
730 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import List, Dict, Any
|
|
import time
|
|
|
|
|
|
@dataclass
|
|
class AuditLogEntry:
|
|
entry_id: str
|
|
fleet_id: str
|
|
event: str
|
|
details: Dict[str, Any] = field(default_factory=dict)
|
|
timestamp: float = field(default_factory=time.time)
|
|
|
|
|
|
class AuditLog:
|
|
def __init__(self) -> None:
|
|
self._entries: List[AuditLogEntry] = []
|
|
|
|
def add(self, fleet_id: str, event: str, details: Dict[str, Any] | None = None) -> None:
|
|
self._entries.append(AuditLogEntry(entry_id=str(len(self._entries) + 1), fleet_id=fleet_id, event=event, details=details or {}))
|
|
|
|
def all(self) -> List[AuditLogEntry]:
|
|
return list(self._entries)
|