get_node_details

Function get_node_details 

Source
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.