refactor coordinator to use shared lib models and client
This commit is contained in:
@@ -1,62 +0,0 @@
|
||||
use std::collections::HashMap;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{models::ScriptType, time::Timestamp};
|
||||
|
||||
#[derive(Clone, Serialize, Deserialize)]
|
||||
pub struct Job {
|
||||
/// Job Id, this is given by the actor who created the job
|
||||
pub id: u32,
|
||||
/// Actor ID which created this job
|
||||
pub caller_id: u32,
|
||||
/// Context in which the job is executed
|
||||
pub context_id: u32,
|
||||
pub script: String,
|
||||
pub script_type: ScriptType,
|
||||
/// Timeout in seconds for this job
|
||||
pub timeout: u32,
|
||||
/// Max amount of times to retry this job
|
||||
pub retries: u8,
|
||||
pub env_vars: HashMap<String, String>,
|
||||
pub result: HashMap<String, String>,
|
||||
pub prerequisites: Vec<String>,
|
||||
/// Ids of jobs this job depends on, i.e. this job can't start until those have finished
|
||||
pub depends: Vec<u32>,
|
||||
pub created_at: Timestamp,
|
||||
pub updated_at: Timestamp,
|
||||
pub status: JobStatus,
|
||||
}
|
||||
|
||||
#[derive(Clone, Serialize, Deserialize, PartialEq, Eq, Debug)]
|
||||
pub enum JobStatus {
|
||||
Dispatched,
|
||||
WaitingForPrerequisites,
|
||||
Started,
|
||||
Error,
|
||||
Finished,
|
||||
}
|
||||
|
||||
impl Job {
|
||||
pub fn id(&self) -> u32 {
|
||||
self.id
|
||||
}
|
||||
pub fn caller_id(&self) -> u32 {
|
||||
self.caller_id
|
||||
}
|
||||
pub fn context_id(&self) -> u32 {
|
||||
self.context_id
|
||||
}
|
||||
pub fn depends(&self) -> &[u32] {
|
||||
&self.depends
|
||||
}
|
||||
pub fn prerequisites(&self) -> &[String] {
|
||||
&self.prerequisites
|
||||
}
|
||||
pub fn script_type(&self) -> ScriptType {
|
||||
self.script_type.clone()
|
||||
}
|
||||
pub fn status(&self) -> JobStatus {
|
||||
self.status.clone()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user