diff --git a/compute_tools/src/http/api.rs b/compute_tools/src/http/api.rs index af35f71bf2..0b43d42a8d 100644 --- a/compute_tools/src/http/api.rs +++ b/compute_tools/src/http/api.rs @@ -84,8 +84,9 @@ async fn routes(req: Request, compute: &Arc) -> Response, compute: &Arc) -> Response, compute: &Arc) -> Response, compute: &Arc) -> Response) -> Result<(), (Str if state.status == ComputeStatus::Terminated { return Ok(()); } - if state.status != ComputeStatus::Empty && state.status != ComputeStatus::Running { + if !matches!(state.status, ComputeStatus::Empty | ComputeStatus::Running) { let msg = format!( - "invalid compute status for termination request: {}", - state.status + "invalid compute status for termination request: {}, cannot be {} or {}", + state.status, + ComputeStatus::Empty, + ComputeStatus::Running, ); return Err((msg, StatusCode::PRECONDITION_FAILED)); } diff --git a/libs/compute_api/src/responses.rs b/libs/compute_api/src/responses.rs index 79234be720..1eba8cab6e 100644 --- a/libs/compute_api/src/responses.rs +++ b/libs/compute_api/src/responses.rs @@ -66,14 +66,15 @@ pub enum ComputeStatus { impl Display for ComputeStatus { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + // snake_case matches the serde implementation match self { ComputeStatus::Empty => f.write_str("empty"), - ComputeStatus::ConfigurationPending => f.write_str("configuration-pending"), + ComputeStatus::ConfigurationPending => f.write_str("configuration_pending"), ComputeStatus::Init => f.write_str("init"), ComputeStatus::Running => f.write_str("running"), ComputeStatus::Configuration => f.write_str("configuration"), ComputeStatus::Failed => f.write_str("failed"), - ComputeStatus::TerminationPending => f.write_str("termination-pending"), + ComputeStatus::TerminationPending => f.write_str("termination_pending"), ComputeStatus::Terminated => f.write_str("terminated"), } }