1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use crate::models::alloc_deployment_status::AllocDeploymentStatus;
use crate::models::reschedule_tracker::RescheduleTracker;
use crate::models::task_state::TaskState;
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AllocationListStub {
#[serde(rename = "ID")]
pub id: Option<String>,
#[serde(rename = "EvalID")]
pub eval_id: Option<String>,
pub name: Option<String>,
pub namespace: Option<String>,
#[serde(rename = "NodeID")]
pub node_id: Option<String>,
pub node_name: Option<String>,
#[serde(rename = "JobID")]
pub job_id: Option<String>,
pub job_type: Option<String>,
pub job_version: Option<i32>,
pub task_group: Option<String>,
pub desired_status: Option<String>,
pub desired_description: Option<String>,
pub client_status: Option<String>,
pub client_description: Option<String>,
pub task_states: Option<HashMap<String, TaskState>>,
pub deployment_status: Option<AllocDeploymentStatus>,
#[serde(rename = "FollowupEvalID")]
pub followup_eval_id: Option<String>,
pub reschedule_tracker: Option<RescheduleTracker>,
pub preempted_allocations: Option<Vec<String>>,
pub preempted_by_allocation: Option<String>,
pub create_index: Option<i32>,
pub modify_index: Option<i32>,
pub create_time: Option<i64>,
pub modify_time: Option<i64>,
}
impl AllocationListStub {
pub fn get_task_state(&self, name: &str) -> Option<&TaskState> {
match self.task_states {
Some(ref state) => {
match state.get(name) {
Some(task_state) => Some(task_state),
None => None
}
}
None => None
}
}
}