diff --git a/clients/wicketd-client/src/lib.rs b/clients/wicketd-client/src/lib.rs index 27369ec048c..53b272007a7 100644 --- a/clients/wicketd-client/src/lib.rs +++ b/clients/wicketd-client/src/lib.rs @@ -50,7 +50,7 @@ progenitor::generate_api!( BootstrapSledDescription = wicket_common::rack_setup::BootstrapSledDescription, CertificateUploadResponse = wicketd_commission_types_versions::latest::rack_setup::CertificateUploadResponse, ClearUpdateStateOptions = wicket_common::rack_update::ClearUpdateStateOptions, - ClearUpdateStateResponse = wicket_common::rack_update::ClearUpdateStateResponse, + ClearUpdateStateResponse = wicketd_commission_types_versions::latest::update::ClearUpdateStateResponse, CurrentRssUserConfigInsensitive = wicket_common::rack_setup::CurrentRssUserConfigInsensitive, Duration = std::time::Duration, EventReportForUplinkPreflightCheckSpec = wicket_common::preflight_check::EventReport, diff --git a/openapi/wicketd.json b/openapi/wicketd.json index 93dab1882af..d0b6c0b98a6 100644 --- a/openapi/wicketd.json +++ b/openapi/wicketd.json @@ -1483,6 +1483,7 @@ ] }, "ClearUpdateStateResponse": { + "description": "Response to an instruction to clear update data.", "type": "object", "properties": { "cleared": { diff --git a/wicket-common/src/rack_update.rs b/wicket-common/src/rack_update.rs index ee21ae10f52..65fe11058a6 100644 --- a/wicket-common/src/rack_update.rs +++ b/wicket-common/src/rack_update.rs @@ -2,7 +2,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. -use std::{collections::BTreeSet, time::Duration}; +use std::time::Duration; use semver::Version; @@ -80,17 +80,6 @@ pub struct AbortUpdateOptions { pub test_error: Option, } -#[derive( - Clone, Debug, Default, PartialEq, Eq, JsonSchema, Serialize, Deserialize, -)] -pub struct ClearUpdateStateResponse { - /// The SPs for which update data was cleared. - pub cleared: BTreeSet, - - /// The SPs that had no update state to clear. - pub no_update_data: BTreeSet, -} - #[derive( Copy, Clone, Debug, JsonSchema, Deserialize, Serialize, PartialEq, Eq, )] diff --git a/wicket/src/cli/rack_update.rs b/wicket/src/cli/rack_update.rs index c648e04ff62..149d7e72900 100644 --- a/wicket/src/cli/rack_update.rs +++ b/wicket/src/cli/rack_update.rs @@ -37,8 +37,8 @@ use tokio::{sync::watch, task::JoinHandle}; use wicket_common::{ WICKETD_TIMEOUT, rack_update::{ - ClearUpdateStateResponse, ComponentUpdateStatus, ExitMessage, - RackUpdateStatus, UpdateState, UpdateStateCounts, rollup_update_state, + ComponentUpdateStatus, ExitMessage, RackUpdateStatus, UpdateState, + UpdateStateCounts, rollup_update_state, }, update_events::{EventReport, WicketdEngineSpec}, }; @@ -46,7 +46,9 @@ use wicketd_client::types::{ ClearUpdateStateParams, GetArtifactsAndEventReportsResponse, StartUpdateParams, }; -use wicketd_commission_types::update::UpdateTargets; +use wicketd_commission_types::update::{ + ClearUpdateStateResponse, UpdateTargets, +}; use super::command::CommandOutput; diff --git a/wicketd-api/src/lib.rs b/wicketd-api/src/lib.rs index a935f84444b..6dd3cc61610 100644 --- a/wicketd-api/src/lib.rs +++ b/wicketd-api/src/lib.rs @@ -34,12 +34,12 @@ use wicket_common::rack_setup::CurrentRssUserConfigInsensitive; use wicket_common::rack_setup::GetBgpAuthKeyInfoResponse; use wicket_common::rack_update::AbortUpdateOptions; use wicket_common::rack_update::ClearUpdateStateOptions; -use wicket_common::rack_update::ClearUpdateStateResponse; use wicket_common::rack_update::StartUpdateOptions; use wicket_common::update_events::EventReport; use wicketd_commission_types::rack_setup::BgpAuthKeyId; use wicketd_commission_types::rack_setup::CertificateUploadResponse; use wicketd_commission_types::rack_setup::PutRssUserConfigInsensitive; +use wicketd_commission_types::update::ClearUpdateStateResponse; use wicketd_commission_types::update::UpdateTargets; /// Full release repositories are currently (Dec 2024) 1.8 GiB and are likely to diff --git a/wicketd-commission-types/versions/src/initial/update.rs b/wicketd-commission-types/versions/src/initial/update.rs index 4df7a577ee6..f0bb3856c75 100644 --- a/wicketd-commission-types/versions/src/initial/update.rs +++ b/wicketd-commission-types/versions/src/initial/update.rs @@ -71,6 +71,18 @@ impl JsonSchema for UpdateTargets { } } +/// Response to an instruction to clear update data. +#[derive( + Clone, Debug, Default, PartialEq, Eq, JsonSchema, Serialize, Deserialize, +)] +pub struct ClearUpdateStateResponse { + /// The SPs for which update data was cleared. + pub cleared: BTreeSet, + + /// The SPs that had no update state to clear. + pub no_update_data: BTreeSet, +} + /// Error returned when UpdateTargets is constructed from an empty set. #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct EmptyUpdateTargets; diff --git a/wicketd-commission-types/versions/src/latest.rs b/wicketd-commission-types/versions/src/latest.rs index 2b4383a8a1e..f433d8ddcf9 100644 --- a/wicketd-commission-types/versions/src/latest.rs +++ b/wicketd-commission-types/versions/src/latest.rs @@ -35,6 +35,7 @@ pub mod rack_setup { } pub mod update { + pub use crate::v1::update::ClearUpdateStateResponse; pub use crate::v1::update::EmptyUpdateTargets; pub use crate::v1::update::UpdateTargets; } diff --git a/wicketd/src/http_entrypoints.rs b/wicketd/src/http_entrypoints.rs index aa7a861c26c..bacc5210af2 100644 --- a/wicketd/src/http_entrypoints.rs +++ b/wicketd/src/http_entrypoints.rs @@ -41,11 +41,11 @@ use wicket_common::multirack_setup::CurrentMultirackJoinUserConfig; use wicket_common::multirack_setup::MultirackJoinConfigBaseUserInput; use wicket_common::rack_setup::GetBgpAuthKeyInfoResponse; use wicket_common::rack_update::AbortUpdateOptions; -use wicket_common::rack_update::ClearUpdateStateResponse; use wicket_common::update_events::EventReport; use wicketd_api::*; use wicketd_commission_types::rack_setup::CertificateUploadResponse; use wicketd_commission_types::rack_setup::PutRssUserConfigInsensitive; +use wicketd_commission_types::update::ClearUpdateStateResponse; use crate::ServerContext; diff --git a/wicketd/src/update_tracker.rs b/wicketd/src/update_tracker.rs index 7ba9dbc45c8..b5e241edcb8 100644 --- a/wicketd/src/update_tracker.rs +++ b/wicketd/src/update_tracker.rs @@ -72,7 +72,6 @@ use uuid::Uuid; use wicket_common::inventory::SpComponentCaboose; use wicket_common::inventory::SpIdentifier; use wicket_common::inventory::SpType; -use wicket_common::rack_update::ClearUpdateStateResponse; use wicket_common::rack_update::StartUpdateOptions; use wicket_common::rack_update::UpdateSimulatedResult; use wicket_common::update_events::ComponentRegistrar; @@ -98,6 +97,7 @@ use wicket_common::update_events::UpdateEngine; use wicket_common::update_events::UpdateStepId; use wicket_common::update_events::UpdateTerminalError; use wicketd_api::GetArtifactsAndEventReportsResponse; +use wicketd_commission_types::update::ClearUpdateStateResponse; use wicketd_commission_types::update::UpdateTargets; #[derive(Debug)] diff --git a/wicketd/tests/integration_tests/updates.rs b/wicketd/tests/integration_tests/updates.rs index c356716f580..ee8d6a85d55 100644 --- a/wicketd/tests/integration_tests/updates.rs +++ b/wicketd/tests/integration_tests/updates.rs @@ -36,8 +36,7 @@ use wicket::OutputKind; use wicket_common::{ inventory::{SpIdentifier, SpType}, rack_update::{ - ClearUpdateStateResponse, ExitMessage, RackUpdateStatus, - StartUpdateOptions, UpdateState, + ExitMessage, RackUpdateStatus, StartUpdateOptions, UpdateState, }, update_events::{StepEventKind, UpdateComponent}, }; @@ -45,7 +44,9 @@ use wicketd::{RunningUpdateState, StartUpdateError}; use wicketd_client::types::{ GetInventoryParams, GetInventoryResponse, StartUpdateParams, }; -use wicketd_commission_types::update::UpdateTargets; +use wicketd_commission_types::update::{ + ClearUpdateStateResponse, UpdateTargets, +}; /// The list of zone file names defined in fake-non-semver.toml. static FAKE_NON_SEMVER_ZONE_FILE_NAMES: &[&str] = &[