Skip to main content

consortium_slurm/
error.rs

1//! Error types for Slurm orchestration.
2
3#[derive(Debug, thiserror::Error)]
4pub enum SlurmError {
5    #[error("job environment build failed: {0}")]
6    EnvBuildFailed(String),
7
8    #[error("job submission failed for {job}: {message}")]
9    SubmitFailed { job: String, message: String },
10
11    #[error("job {job_id} failed: {message}")]
12    JobFailed { job_id: u64, message: String },
13
14    #[error("job {job_id} timed out after {elapsed_secs}s")]
15    JobTimeout { job_id: u64, elapsed_secs: u64 },
16
17    #[error("result collection failed for {job}: {message}")]
18    CollectFailed { job: String, message: String },
19
20    #[error("no slurm config in fleet configuration")]
21    NoConfig,
22
23    #[error("pipeline parse error: {0}")]
24    PipelineParse(String),
25
26    #[error("nix error: {0}")]
27    Nix(#[from] consortium_nix::NixError),
28
29    #[error("dag error: {0}")]
30    Dag(String),
31
32    #[error("{0}")]
33    General(String),
34}
35
36pub type Result<T> = std::result::Result<T, SlurmError>;