use crate::plan::{
BackupPlan, ControlAuthorityPreflightRequest, ControlAuthorityPreflightTarget,
QuiescencePreflightRequest, QuiescencePreflightTarget, SnapshotReadAuthorityPreflightRequest,
SnapshotReadAuthorityPreflightTarget, TopologyPreflightRequest, TopologyPreflightTarget,
};
impl BackupPlan {
#[must_use]
pub fn control_authority_preflight_request(&self) -> ControlAuthorityPreflightRequest {
ControlAuthorityPreflightRequest {
plan_id: self.plan_id.clone(),
run_id: self.run_id.clone(),
fleet: self.fleet.clone(),
network: self.network.clone(),
root_canister_id: self.root_canister_id.clone(),
requires_root_controller: self.requires_root_controller,
targets: self
.targets
.iter()
.map(ControlAuthorityPreflightTarget::from)
.collect(),
}
}
#[must_use]
pub fn snapshot_read_authority_preflight_request(
&self,
) -> SnapshotReadAuthorityPreflightRequest {
SnapshotReadAuthorityPreflightRequest {
plan_id: self.plan_id.clone(),
run_id: self.run_id.clone(),
fleet: self.fleet.clone(),
network: self.network.clone(),
root_canister_id: self.root_canister_id.clone(),
targets: self
.targets
.iter()
.map(SnapshotReadAuthorityPreflightTarget::from)
.collect(),
}
}
#[must_use]
pub fn topology_preflight_request(&self) -> TopologyPreflightRequest {
TopologyPreflightRequest {
plan_id: self.plan_id.clone(),
run_id: self.run_id.clone(),
fleet: self.fleet.clone(),
network: self.network.clone(),
root_canister_id: self.root_canister_id.clone(),
selected_subtree_root: self.selected_subtree_root.clone(),
selected_scope_kind: self.selected_scope_kind.clone(),
topology_hash_before_quiesce: self.topology_hash_before_quiesce.clone(),
targets: self
.targets
.iter()
.map(TopologyPreflightTarget::from)
.collect(),
}
}
#[must_use]
pub fn quiescence_preflight_request(&self) -> QuiescencePreflightRequest {
QuiescencePreflightRequest {
plan_id: self.plan_id.clone(),
run_id: self.run_id.clone(),
fleet: self.fleet.clone(),
network: self.network.clone(),
root_canister_id: self.root_canister_id.clone(),
selected_subtree_root: self.selected_subtree_root.clone(),
quiescence_policy: self.quiescence_policy.clone(),
targets: self
.targets
.iter()
.map(QuiescencePreflightTarget::from)
.collect(),
}
}
}