mirror of
https://github.com/logos-blockchain/logos-blockchain-testing.git
synced 2026-03-31 08:13:48 +00:00
Drop unused source readiness policy
This commit is contained in:
parent
3f8e287c68
commit
3ea3fffd1f
@ -6,7 +6,6 @@ use tracing::{debug, info};
|
||||
use super::{
|
||||
Application, AttachSource, DeploymentPolicy, DynError, ExternalNodeSource,
|
||||
HttpReadinessRequirement, NodeControlCapability, ObservabilityCapability, ScenarioSources,
|
||||
SourceReadinessPolicy,
|
||||
builder_ops::CoreBuilderAccess,
|
||||
expectation::Expectation,
|
||||
runtime::{
|
||||
@ -44,7 +43,6 @@ pub struct Scenario<E: Application, Caps = ()> {
|
||||
expectation_cooldown: Duration,
|
||||
deployment_policy: DeploymentPolicy,
|
||||
sources: ScenarioSources,
|
||||
source_readiness_policy: SourceReadinessPolicy,
|
||||
source_orchestration_plan: SourceOrchestrationPlan,
|
||||
capabilities: Caps,
|
||||
}
|
||||
@ -58,7 +56,6 @@ impl<E: Application, Caps> Scenario<E, Caps> {
|
||||
expectation_cooldown: Duration,
|
||||
deployment_policy: DeploymentPolicy,
|
||||
sources: ScenarioSources,
|
||||
source_readiness_policy: SourceReadinessPolicy,
|
||||
source_orchestration_plan: SourceOrchestrationPlan,
|
||||
capabilities: Caps,
|
||||
) -> Self {
|
||||
@ -70,7 +67,6 @@ impl<E: Application, Caps> Scenario<E, Caps> {
|
||||
expectation_cooldown,
|
||||
deployment_policy,
|
||||
sources,
|
||||
source_readiness_policy,
|
||||
source_orchestration_plan,
|
||||
capabilities,
|
||||
}
|
||||
@ -116,15 +112,6 @@ impl<E: Application, Caps> Scenario<E, Caps> {
|
||||
self.deployment_policy
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
/// Selected source readiness policy.
|
||||
///
|
||||
/// This is currently reserved for future mixed-source orchestration and
|
||||
/// does not change runtime behavior yet.
|
||||
pub const fn source_readiness_policy(&self) -> SourceReadinessPolicy {
|
||||
self.source_readiness_policy
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn sources(&self) -> &ScenarioSources {
|
||||
&self.sources
|
||||
@ -151,7 +138,6 @@ pub struct Builder<E: Application, Caps = ()> {
|
||||
expectation_cooldown: Option<Duration>,
|
||||
deployment_policy: DeploymentPolicy,
|
||||
sources: ScenarioSources,
|
||||
source_readiness_policy: SourceReadinessPolicy,
|
||||
capabilities: Caps,
|
||||
}
|
||||
|
||||
@ -256,11 +242,6 @@ macro_rules! impl_common_builder_methods {
|
||||
self.map_core_builder(|builder| builder.with_external_node(node))
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn with_source_readiness_policy(self, policy: SourceReadinessPolicy) -> Self {
|
||||
self.map_core_builder(|builder| builder.with_source_readiness_policy(policy))
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn with_external_only_sources(self) -> Self {
|
||||
self.map_core_builder(|builder| builder.with_external_only_sources())
|
||||
@ -350,7 +331,6 @@ impl<E: Application, Caps: Default> Builder<E, Caps> {
|
||||
expectation_cooldown: None,
|
||||
deployment_policy: DeploymentPolicy::default(),
|
||||
sources: ScenarioSources::default(),
|
||||
source_readiness_policy: SourceReadinessPolicy::default(),
|
||||
capabilities: Caps::default(),
|
||||
}
|
||||
}
|
||||
@ -453,7 +433,6 @@ impl<E: Application, Caps> Builder<E, Caps> {
|
||||
expectation_cooldown,
|
||||
deployment_policy,
|
||||
sources,
|
||||
source_readiness_policy,
|
||||
..
|
||||
} = self;
|
||||
|
||||
@ -466,7 +445,6 @@ impl<E: Application, Caps> Builder<E, Caps> {
|
||||
expectation_cooldown,
|
||||
deployment_policy,
|
||||
sources,
|
||||
source_readiness_policy,
|
||||
capabilities,
|
||||
}
|
||||
}
|
||||
@ -579,16 +557,6 @@ impl<E: Application, Caps> Builder<E, Caps> {
|
||||
self
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
/// Configure source readiness policy metadata.
|
||||
///
|
||||
/// This is currently reserved for future mixed-source orchestration and
|
||||
/// does not change runtime behavior yet.
|
||||
pub fn with_source_readiness_policy(mut self, policy: SourceReadinessPolicy) -> Self {
|
||||
self.source_readiness_policy = policy;
|
||||
self
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn with_external_only_sources(mut self) -> Self {
|
||||
self.sources = self.sources.into_external_only();
|
||||
@ -612,8 +580,7 @@ impl<E: Application, Caps> Builder<E, Caps> {
|
||||
let descriptors = parts.resolve_deployment()?;
|
||||
let run_plan = parts.run_plan();
|
||||
let run_metrics = RunMetrics::new(run_plan.duration);
|
||||
let source_orchestration_plan =
|
||||
build_source_orchestration_plan(parts.sources(), parts.source_readiness_policy)?;
|
||||
let source_orchestration_plan = build_source_orchestration_plan(parts.sources())?;
|
||||
|
||||
initialize_components(
|
||||
&descriptors,
|
||||
@ -640,7 +607,6 @@ impl<E: Application, Caps> Builder<E, Caps> {
|
||||
run_plan.expectation_cooldown,
|
||||
parts.deployment_policy,
|
||||
parts.sources,
|
||||
parts.source_readiness_policy,
|
||||
source_orchestration_plan,
|
||||
parts.capabilities,
|
||||
))
|
||||
@ -661,7 +627,6 @@ struct BuilderParts<E: Application, Caps> {
|
||||
expectation_cooldown: Option<Duration>,
|
||||
deployment_policy: DeploymentPolicy,
|
||||
sources: ScenarioSources,
|
||||
source_readiness_policy: SourceReadinessPolicy,
|
||||
capabilities: Caps,
|
||||
}
|
||||
|
||||
@ -676,7 +641,6 @@ impl<E: Application, Caps> BuilderParts<E, Caps> {
|
||||
expectation_cooldown,
|
||||
deployment_policy,
|
||||
sources,
|
||||
source_readiness_policy,
|
||||
capabilities,
|
||||
..
|
||||
} = builder;
|
||||
@ -690,7 +654,6 @@ impl<E: Application, Caps> BuilderParts<E, Caps> {
|
||||
expectation_cooldown,
|
||||
deployment_policy,
|
||||
sources,
|
||||
source_readiness_policy,
|
||||
capabilities,
|
||||
}
|
||||
}
|
||||
@ -715,10 +678,8 @@ impl<E: Application, Caps> BuilderParts<E, Caps> {
|
||||
|
||||
fn build_source_orchestration_plan(
|
||||
sources: &ScenarioSources,
|
||||
readiness_policy: SourceReadinessPolicy,
|
||||
) -> Result<SourceOrchestrationPlan, ScenarioBuildError> {
|
||||
SourceOrchestrationPlan::try_from_sources(sources, readiness_policy)
|
||||
.map_err(source_plan_error_to_build_error)
|
||||
SourceOrchestrationPlan::try_from_sources(sources).map_err(source_plan_error_to_build_error)
|
||||
}
|
||||
|
||||
fn source_plan_error_to_build_error(error: SourceOrchestrationPlanError) -> ScenarioBuildError {
|
||||
|
||||
@ -51,7 +51,7 @@ pub use runtime::{
|
||||
wait_for_http_ports_with_host_and_requirement, wait_for_http_ports_with_requirement,
|
||||
wait_http_readiness, wait_until_stable,
|
||||
};
|
||||
pub use sources::{AttachSource, ExternalNodeSource, ScenarioSources, SourceReadinessPolicy};
|
||||
pub use sources::{AttachSource, ExternalNodeSource, ScenarioSources};
|
||||
pub use workload::Workload;
|
||||
|
||||
pub use crate::env::Application;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
use crate::scenario::{AttachSource, ExternalNodeSource, ScenarioSources, SourceReadinessPolicy};
|
||||
use crate::scenario::{AttachSource, ExternalNodeSource, ScenarioSources};
|
||||
|
||||
/// Explicit descriptor for managed node sourcing.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
@ -33,7 +33,6 @@ pub(crate) enum SourceOrchestrationMode {
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
pub struct SourceOrchestrationPlan {
|
||||
mode: SourceOrchestrationMode,
|
||||
readiness_policy: SourceReadinessPolicy,
|
||||
}
|
||||
|
||||
/// Validation failure while building orchestration plan from sources.
|
||||
@ -46,14 +45,10 @@ pub enum SourceOrchestrationPlanError {
|
||||
impl SourceOrchestrationPlan {
|
||||
pub fn try_from_sources(
|
||||
sources: &ScenarioSources,
|
||||
readiness_policy: SourceReadinessPolicy,
|
||||
) -> Result<Self, SourceOrchestrationPlanError> {
|
||||
let mode = mode_from_sources(sources);
|
||||
|
||||
Ok(Self {
|
||||
mode,
|
||||
readiness_policy,
|
||||
})
|
||||
Ok(Self { mode })
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
@ -74,14 +69,13 @@ impl SourceOrchestrationPlan {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::{SourceOrchestrationMode, SourceOrchestrationPlan};
|
||||
use crate::scenario::{AttachSource, ScenarioSources, SourceReadinessPolicy};
|
||||
use crate::scenario::{AttachSource, ScenarioSources};
|
||||
|
||||
#[test]
|
||||
fn attached_sources_are_planned() {
|
||||
let sources = ScenarioSources::attached(AttachSource::compose(vec!["node-0".to_string()]));
|
||||
let plan =
|
||||
SourceOrchestrationPlan::try_from_sources(&sources, SourceReadinessPolicy::AllReady)
|
||||
.expect("attached sources should build a source orchestration plan");
|
||||
let plan = SourceOrchestrationPlan::try_from_sources(&sources)
|
||||
.expect("attached sources should build a source orchestration plan");
|
||||
|
||||
assert!(matches!(
|
||||
plan.mode(),
|
||||
|
||||
@ -41,10 +41,7 @@ pub enum SourceResolveError {
|
||||
pub fn build_source_orchestration_plan<E: Application, Caps>(
|
||||
scenario: &Scenario<E, Caps>,
|
||||
) -> Result<SourceOrchestrationPlan, SourceOrchestrationPlanError> {
|
||||
SourceOrchestrationPlan::try_from_sources(
|
||||
scenario.sources(),
|
||||
scenario.source_readiness_policy(),
|
||||
)
|
||||
SourceOrchestrationPlan::try_from_sources(scenario.sources())
|
||||
}
|
||||
|
||||
/// Resolves runtime source nodes via unified providers from orchestration plan.
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
mod model;
|
||||
|
||||
pub use model::{AttachSource, ExternalNodeSource, ScenarioSources, SourceReadinessPolicy};
|
||||
pub use model::{AttachSource, ExternalNodeSource, ScenarioSources};
|
||||
|
||||
@ -70,19 +70,6 @@ impl ExternalNodeSource {
|
||||
}
|
||||
}
|
||||
|
||||
/// Planned readiness strategy for mixed managed/attached/external sources.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq, Default)]
|
||||
pub enum SourceReadinessPolicy {
|
||||
/// Phase 1 default: require every known node to pass readiness checks.
|
||||
#[default]
|
||||
AllReady,
|
||||
/// Optional relaxed policy for large/partial environments.
|
||||
Quorum,
|
||||
/// Future policy for per-source constraints (for example managed minimum
|
||||
/// plus overall quorum).
|
||||
SourceAware,
|
||||
}
|
||||
|
||||
/// Source model that makes invalid managed+attached combinations
|
||||
/// unrepresentable by type.
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user