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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//! Wire response types shared by both binaries.
//!
//! The CLI (in `manta_cli::http_client::*` and `manta_cli::output::*`)
//! deserializes responses from the manta-server using these types;
//! the server serializes them back over HTTP via the service layer.
//!
//! `NodeDetails` is mirrored locally (rather than re-exporting from
//! `csm-rs`) so `manta-shared` — and therefore `manta-cli` — does not
//! transitively depend on `csm-rs`. No in-process conversion is
//! needed: the type boundary is HTTP, and the JSON wire shape is
//! byte-identical between `csm_rs::node::types::NodeDetails` and the
//! mirror below (same field names, no `#[serde(rename)]`), so the CLI
//! just deserializes the response directly into this struct.
//!
//! The remaining re-exports come from the lightweight
//! `manta-backend-dispatcher` crate (types + traits only, no csm-rs
//! / ochami-rs deps). Mirroring those too is a separate, optional
//! follow-up.
pub use ;
use ;
use ToSchema;
/// Per-node details returned by `GET /api/v1/nodes`.
///
/// Mirror of `csm_rs::node::types::NodeDetails` with identical fields
/// and identical JSON wire format. No conversion impl is needed in
/// the server crate — the response is serialised straight from the
/// csm-rs type and the CLI deserialises it into this mirror.
///
/// All fields are wire-stringified (CSM serializes them that way);
/// callers parse them as needed for display or comparison. The empty
/// string is the conventional "unset" sentinel — see
/// `cluster_status::compute_summary_status` for case-insensitive
/// matching on the status fields.
///
/// # Wire shape
///
/// ```json
/// {
/// "xname": "x3000c0s1b0n0",
/// "nid": "nid001313",
/// "hsm": "alps,zinal",
/// "power_status": "On",
/// "desired_configuration": "cos-2.5",
/// "configuration_status": "configured",
/// "enabled": "true",
/// "error_count": "0",
/// "boot_image_id": "0a1b2c3d-...",
/// "boot_configuration": "cos-2.5",
/// "kernel_params": "console=ttyS0 ..."
/// }
/// ```