pub async fn get_node_details(
infra: &InfraContext<'_>,
token: &str,
xnames: &[String],
) -> Result<Vec<NodeDetails>, Error>Expand description
Return one NodeDetails per xname in xnames.
Xnames that are present in xnames but missing from any one of
the five backend responses still get a row; the affected fields
are filled with "Not found" so the per-row position in the
returned vector matches xnames after sorting.
The caller is expected to have already validated group access to every xname; this helper does no authorization of its own.
The five backend calls โ CFS components (filtered to the requested
xname set), BSS boot parameters, full HSM-component metadata,
successful CFS sessions (for the image โ CFS-config map), and the
full group list (for membership labels) โ are issued through
[tokio::try_join!] so they overlap on the wire. The join is
purely in-memory and the result is sorted by xname for stable
rendering.
ยงErrors
[Error::NetError] / [Error::CsmError] propagated from any of
the five concurrent backend calls; the first error short-circuits
the join.