Skip to main content

plexus_substrate/activations/chaos/
types.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4/// A running node found across all active graphs
5#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
6pub struct RunningNode {
7    pub graph_id: String,
8    pub node_id: String,
9    pub spec_type: String,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
13#[serde(tag = "type", rename_all = "snake_case")]
14pub enum ListRunningResult {
15    #[serde(rename = "node")]
16    Node(RunningNode),
17    #[serde(rename = "done")]
18    Done { count: usize },
19    #[serde(rename = "error")]
20    Err { message: String },
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
24#[serde(tag = "type", rename_all = "snake_case")]
25pub enum InjectResult {
26    #[serde(rename = "ok")]
27    Ok { graph_id: String, node_id: String, action: String },
28    #[serde(rename = "skipped")]
29    Skipped { reason: String },
30    #[serde(rename = "error")]
31    Err { message: String },
32}
33
34/// A process found on the system
35#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
36pub struct ProcessInfo {
37    pub pid: u32,
38    pub cmdline: String,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
42#[serde(tag = "type", rename_all = "snake_case")]
43pub enum ListProcessesResult {
44    #[serde(rename = "process")]
45    Process(ProcessInfo),
46    #[serde(rename = "done")]
47    Done { count: usize },
48    #[serde(rename = "error")]
49    Err { message: String },
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
53#[serde(tag = "type", rename_all = "snake_case")]
54pub enum KillProcessResult {
55    #[serde(rename = "killed")]
56    Killed { pid: u32 },
57    #[serde(rename = "not_found")]
58    NotFound,
59    #[serde(rename = "error")]
60    Err { message: String },
61}
62
63/// Per-node status snapshot
64#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
65pub struct NodeSnapshot {
66    pub node_id: String,
67    pub status: String,
68    pub spec_type: String,
69    pub error: Option<String>,
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
73#[serde(tag = "type", rename_all = "snake_case")]
74pub enum GraphSnapshotResult {
75    #[serde(rename = "node")]
76    Node(NodeSnapshot),
77    #[serde(rename = "summary")]
78    Summary {
79        graph_id: String,
80        graph_status: String,
81        total: usize,
82        pending: usize,
83        ready: usize,
84        running: usize,
85        complete: usize,
86        failed: usize,
87    },
88    #[serde(rename = "error")]
89    Err { message: String },
90}