tutti_core/supervisor/
commands.rs

1use tokio::sync::mpsc;
2use tutti_types::{Project, ProjectId};
3
4pub type UpResponse = mpsc::Sender<Result<(), ()>>;
5
6#[derive(Debug)]
7pub enum SupervisorCommand {
8    UpdateConfig {
9        project_id: ProjectId,
10        config: Project,
11    },
12    Up {
13        project_id: ProjectId,
14        services: Vec<String>,
15    },
16    Down {
17        project_id: ProjectId,
18    },
19    Shutdown,
20    EndOfLogs {
21        project_id: ProjectId,
22        service: String,
23    },
24    HealthCheckSuccess {
25        project_id: ProjectId,
26        service: String,
27    },
28    // HealthCheckFailure {
29    //     project_id: ProjectId,
30    //     service: String,
31    // },
32}
33
34#[derive(Debug)]
35pub enum SupervisorEvent {
36    Log {
37        project_id: ProjectId,
38        service: String,
39        message: String,
40    },
41    ProjectStopped {
42        project_id: ProjectId,
43    },
44    Error {
45        project_id: ProjectId,
46        message: String,
47    },
48}