File size: 556 Bytes
4bf781a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from __future__ import annotations

from abc import ABC, abstractmethod


class BaseTask(ABC):
    task_id: str
    difficulty: str
    incident_summary: str
    all_services: list[str]
    root_cause_service: str
    affected_services: list[str]
    dependency_graph: dict[str, list[str]]
    resolution_actions: list[dict]
    red_herring_services: list[str]

    @abstractmethod
    def initial_state(self) -> dict:
        raise NotImplementedError

    @abstractmethod
    def is_resolved(self, state: dict) -> bool:
        raise NotImplementedError