From a76630d3e1fc499d33f79b1e0c868aa9a0adf7ba Mon Sep 17 00:00:00 2001 From: andrussal Date: Wed, 10 Dec 2025 08:29:41 +0100 Subject: [PATCH] Update topology imports to new module structure --- book/src/custom-workload-example.md | 2 +- book/src/extending.md | 2 +- testing-framework/core/src/scenario/cfgsync.rs | 2 +- testing-framework/core/src/scenario/definition.rs | 3 ++- .../core/src/scenario/expectation.rs | 2 +- .../core/src/scenario/runtime/context.rs | 4 +++- .../core/src/scenario/runtime/node_clients.rs | 2 +- testing-framework/core/src/scenario/workload.rs | 2 +- testing-framework/core/src/topology/config.rs | 4 ++-- testing-framework/core/src/topology/deployment.rs | 2 +- testing-framework/core/src/topology/generation.rs | 3 ++- testing-framework/core/src/topology/mod.rs | 15 +++------------ .../core/src/topology/readiness/balancer.rs | 2 +- .../core/src/topology/readiness/membership.rs | 2 +- .../core/src/topology/readiness/network.rs | 2 +- testing-framework/runners/compose/src/cfgsync.rs | 2 +- testing-framework/runners/compose/src/compose.rs | 4 ++-- testing-framework/runners/compose/src/deployer.rs | 6 ++++-- .../runners/compose/src/environment.rs | 4 +++- testing-framework/runners/compose/src/errors.rs | 2 +- testing-framework/runners/compose/src/ports.rs | 2 +- .../runners/compose/src/readiness.rs | 2 +- testing-framework/runners/k8s/src/assets.rs | 2 +- testing-framework/runners/k8s/src/cluster.rs | 2 +- testing-framework/runners/k8s/src/deployer.rs | 2 +- testing-framework/runners/local/src/runner.rs | 2 +- .../src/workloads/transaction/workload.rs | 2 +- 27 files changed, 40 insertions(+), 41 deletions(-) diff --git a/book/src/custom-workload-example.md b/book/src/custom-workload-example.md index 341527b..65aeff9 100644 --- a/book/src/custom-workload-example.md +++ b/book/src/custom-workload-example.md @@ -18,7 +18,7 @@ use async_trait::async_trait; use testing_framework_core::scenario::{ DynError, Expectation, RunContext, RunMetrics, Workload, }; -use testing_framework_core::topology::GeneratedTopology; +use testing_framework_core::topology::generation::GeneratedTopology; pub struct ReachabilityWorkload { target_idx: usize, diff --git a/book/src/extending.md b/book/src/extending.md index f96d9c2..5d45454 100644 --- a/book/src/extending.md +++ b/book/src/extending.md @@ -25,7 +25,7 @@ workloads can rely on consistent signals. ## Adding topology helpers -- Extend `testing_framework_core::topology::TopologyBuilder` with new layouts or +- Extend `testing_framework_core::topology::config::TopologyBuilder` with new layouts or configuration presets (e.g., specialized DA parameters). Keep defaults safe: ensure at least one participant and clamp dispersal factors as the current helpers do. diff --git a/testing-framework/core/src/scenario/cfgsync.rs b/testing-framework/core/src/scenario/cfgsync.rs index edda2f7..206e9ec 100644 --- a/testing-framework/core/src/scenario/cfgsync.rs +++ b/testing-framework/core/src/scenario/cfgsync.rs @@ -9,7 +9,7 @@ use serde_with::serde_as; use crate::{ constants::kzg_container_path, - topology::{GeneratedTopology, configs::wallet::WalletConfig}, + topology::{configs::wallet::WalletConfig, generation::GeneratedTopology}, }; #[serde_as] diff --git a/testing-framework/core/src/scenario/definition.rs b/testing-framework/core/src/scenario/definition.rs index 57ae299..ee1633d 100644 --- a/testing-framework/core/src/scenario/definition.rs +++ b/testing-framework/core/src/scenario/definition.rs @@ -5,8 +5,9 @@ use super::{ workload::Workload, }; use crate::topology::{ - GeneratedTopology, TopologyBuilder, TopologyConfig, + config::{TopologyBuilder, TopologyConfig}, configs::{network::Libp2pNetworkLayout, wallet::WalletConfig}, + generation::GeneratedTopology, }; const DEFAULT_FUNDS_PER_WALLET: u64 = 100; diff --git a/testing-framework/core/src/scenario/expectation.rs b/testing-framework/core/src/scenario/expectation.rs index 2fc0bc0..5634ab9 100644 --- a/testing-framework/core/src/scenario/expectation.rs +++ b/testing-framework/core/src/scenario/expectation.rs @@ -1,7 +1,7 @@ use async_trait::async_trait; use super::{DynError, RunContext, runtime::context::RunMetrics}; -use crate::topology::GeneratedTopology; +use crate::topology::generation::GeneratedTopology; #[async_trait] /// Defines a check evaluated during or after a scenario run. diff --git a/testing-framework/core/src/scenario/runtime/context.rs b/testing-framework/core/src/scenario/runtime/context.rs index 9262033..30f2a44 100644 --- a/testing-framework/core/src/scenario/runtime/context.rs +++ b/testing-framework/core/src/scenario/runtime/context.rs @@ -4,7 +4,9 @@ use super::{block_feed::BlockFeed, metrics::Metrics, node_clients::ClusterClient use crate::{ nodes::ApiClient, scenario::{NodeClients, NodeControlHandle}, - topology::{GeneratedTopology, Topology, configs::wallet::WalletAccount}, + topology::{ + configs::wallet::WalletAccount, deployment::Topology, generation::GeneratedTopology, + }, }; /// Shared runtime context available to workloads and expectations. diff --git a/testing-framework/core/src/scenario/runtime/node_clients.rs b/testing-framework/core/src/scenario/runtime/node_clients.rs index 48b4c1b..32ed57f 100644 --- a/testing-framework/core/src/scenario/runtime/node_clients.rs +++ b/testing-framework/core/src/scenario/runtime/node_clients.rs @@ -5,7 +5,7 @@ use rand::{Rng as _, seq::SliceRandom as _, thread_rng}; use crate::{ nodes::ApiClient, scenario::DynError, - topology::{GeneratedTopology, Topology}, + topology::{deployment::Topology, generation::GeneratedTopology}, }; /// Collection of API clients for the validator and executor set. diff --git a/testing-framework/core/src/scenario/workload.rs b/testing-framework/core/src/scenario/workload.rs index 950530e..872584e 100644 --- a/testing-framework/core/src/scenario/workload.rs +++ b/testing-framework/core/src/scenario/workload.rs @@ -1,7 +1,7 @@ use async_trait::async_trait; use super::{DynError, Expectation, RunContext, runtime::context::RunMetrics}; -use crate::topology::GeneratedTopology; +use crate::topology::generation::GeneratedTopology; #[async_trait] /// Describes an action sequence executed during a scenario run. diff --git a/testing-framework/core/src/topology/config.rs b/testing-framework/core/src/topology/config.rs index c9022c9..af21a9a 100644 --- a/testing-framework/core/src/topology/config.rs +++ b/testing-framework/core/src/topology/config.rs @@ -20,9 +20,9 @@ use testing_framework_config::topology::configs::{ }; use crate::topology::{ - GeneratedNodeConfig, GeneratedTopology, NodeRole, configs::{GeneralConfig, time::default_time_config}, - create_kms_configs, resolve_ids, resolve_ports, + generation::{GeneratedNodeConfig, GeneratedTopology, NodeRole}, + utils::{create_kms_configs, resolve_ids, resolve_ports}, }; /// High-level topology settings used to generate node configs for a scenario. diff --git a/testing-framework/core/src/topology/deployment.rs b/testing-framework/core/src/topology/deployment.rs index 58b1b17..6161844 100644 --- a/testing-framework/core/src/topology/deployment.rs +++ b/testing-framework/core/src/topology/deployment.rs @@ -8,7 +8,7 @@ use crate::{ validator::{Validator, create_validator_config}, }, topology::{ - TopologyBuilder, TopologyConfig, + config::{TopologyBuilder, TopologyConfig}, configs::GeneralConfig, generation::find_expected_peer_counts, readiness::{ diff --git a/testing-framework/core/src/topology/generation.rs b/testing-framework/core/src/topology/generation.rs index d9ffc47..20057d8 100644 --- a/testing-framework/core/src/topology/generation.rs +++ b/testing-framework/core/src/topology/generation.rs @@ -3,8 +3,9 @@ use std::{collections::HashSet, time::Duration}; use reqwest::{Client, Url}; use crate::topology::{ - Topology, TopologyConfig, + config::TopologyConfig, configs::{GeneralConfig, wallet::WalletAccount}, + deployment::Topology, readiness::{HttpMembershipReadiness, HttpNetworkReadiness, ReadinessCheck, ReadinessError}, }; diff --git a/testing-framework/core/src/topology/mod.rs b/testing-framework/core/src/topology/mod.rs index c93a843..34afbe8 100644 --- a/testing-framework/core/src/topology/mod.rs +++ b/testing-framework/core/src/topology/mod.rs @@ -2,17 +2,8 @@ pub mod configs { pub use testing_framework_config::topology::configs::*; } -mod config; -mod deployment; +pub mod config; +pub mod deployment; pub mod generation; pub mod readiness; -mod utils; - -pub use config::{TopologyBuilder, TopologyConfig}; -pub use deployment::Topology; -pub use generation::{GeneratedNodeConfig, GeneratedTopology, NodeRole, find_expected_peer_counts}; -pub use readiness::{ - DaBalancerReadiness, HttpMembershipReadiness, HttpNetworkReadiness, MembershipReadiness, - NetworkReadiness, ReadinessCheck, ReadinessError, -}; -pub use utils::{create_kms_configs, multiaddr_port, resolve_ids, resolve_ports}; +pub mod utils; diff --git a/testing-framework/core/src/topology/readiness/balancer.rs b/testing-framework/core/src/topology/readiness/balancer.rs index 9812164..dfc9bdf 100644 --- a/testing-framework/core/src/topology/readiness/balancer.rs +++ b/testing-framework/core/src/topology/readiness/balancer.rs @@ -1,7 +1,7 @@ use nomos_da_network_core::swarm::BalancerStats; use super::ReadinessCheck; -use crate::topology::Topology; +use crate::topology::deployment::Topology; pub struct DaBalancerReadiness<'a> { pub(crate) topology: &'a Topology, diff --git a/testing-framework/core/src/topology/readiness/membership.rs b/testing-framework/core/src/topology/readiness/membership.rs index e9a1ce8..ae4a50c 100644 --- a/testing-framework/core/src/topology/readiness/membership.rs +++ b/testing-framework/core/src/topology/readiness/membership.rs @@ -3,7 +3,7 @@ use nomos_da_network_service::MembershipResponse; use reqwest::{Client, Url}; use super::ReadinessCheck; -use crate::topology::Topology; +use crate::topology::deployment::Topology; pub struct MembershipReadiness<'a> { pub(crate) topology: &'a Topology, diff --git a/testing-framework/core/src/topology/readiness/network.rs b/testing-framework/core/src/topology/readiness/network.rs index cced0f5..75eeccc 100644 --- a/testing-framework/core/src/topology/readiness/network.rs +++ b/testing-framework/core/src/topology/readiness/network.rs @@ -3,7 +3,7 @@ use reqwest::{Client, Url}; use tracing::warn; use super::ReadinessCheck; -use crate::topology::Topology; +use crate::topology::deployment::Topology; pub struct NetworkReadiness<'a> { pub(crate) topology: &'a Topology, diff --git a/testing-framework/runners/compose/src/cfgsync.rs b/testing-framework/runners/compose/src/cfgsync.rs index a3e98d7..cfb475c 100644 --- a/testing-framework/runners/compose/src/cfgsync.rs +++ b/testing-framework/runners/compose/src/cfgsync.rs @@ -2,7 +2,7 @@ use std::{path::Path, process::Command as StdCommand}; use testing_framework_core::{ scenario::cfgsync::{apply_topology_overrides, load_cfgsync_template, write_cfgsync_template}, - topology::GeneratedTopology, + topology::generation::GeneratedTopology, }; /// Handle that tracks a cfgsync server started for compose runs. diff --git a/testing-framework/runners/compose/src/compose.rs b/testing-framework/runners/compose/src/compose.rs index 5eea572..9875951 100644 --- a/testing-framework/runners/compose/src/compose.rs +++ b/testing-framework/runners/compose/src/compose.rs @@ -11,7 +11,7 @@ use tera::Context as TeraContext; use testing_framework_core::{ adjust_timeout, constants::{DEFAULT_CFGSYNC_PORT, kzg_container_path}, - topology::{GeneratedNodeConfig, GeneratedTopology}, + topology::generation::{GeneratedNodeConfig, GeneratedTopology}, }; use tokio::{process::Command, time::timeout}; @@ -611,7 +611,7 @@ fn handle_compose_status( #[cfg(test)] mod tests { - use testing_framework_core::topology::{TopologyBuilder, TopologyConfig}; + use testing_framework_core::topology::config::{TopologyBuilder, TopologyConfig}; use super::*; diff --git a/testing-framework/runners/compose/src/deployer.rs b/testing-framework/runners/compose/src/deployer.rs index 1dad1a3..eca285a 100644 --- a/testing-framework/runners/compose/src/deployer.rs +++ b/testing-framework/runners/compose/src/deployer.rs @@ -10,7 +10,7 @@ use testing_framework_core::{ BlockFeed, BlockFeedTask, CleanupGuard, Deployer, NodeClients, NodeControlHandle, RequiresNodeControl, RunContext, Runner, Scenario, }, - topology::GeneratedTopology, + topology::generation::GeneratedTopology, }; use tracing::{debug, info}; @@ -296,7 +296,9 @@ mod tests { use nomos_tracing_service::TracingSettings; use testing_framework_core::{ scenario::ScenarioBuilder, - topology::{GeneratedNodeConfig, GeneratedTopology, NodeRole as TopologyNodeRole}, + topology::generation::{ + GeneratedNodeConfig, GeneratedTopology, NodeRole as TopologyNodeRole, + }, }; use zksign::PublicKey; diff --git a/testing-framework/runners/compose/src/environment.rs b/testing-framework/runners/compose/src/environment.rs index eb137ca..4fb8363 100644 --- a/testing-framework/runners/compose/src/environment.rs +++ b/testing-framework/runners/compose/src/environment.rs @@ -5,7 +5,9 @@ use std::{ }; use anyhow::anyhow; -use testing_framework_core::{adjust_timeout, scenario::CleanupGuard, topology::GeneratedTopology}; +use testing_framework_core::{ + adjust_timeout, scenario::CleanupGuard, topology::generation::GeneratedTopology, +}; use tokio::process::Command; use tracing::{debug, info, warn}; use uuid::Uuid; diff --git a/testing-framework/runners/compose/src/errors.rs b/testing-framework/runners/compose/src/errors.rs index dcbcf87..c974b68 100644 --- a/testing-framework/runners/compose/src/errors.rs +++ b/testing-framework/runners/compose/src/errors.rs @@ -5,7 +5,7 @@ use testing_framework_core::{ MetricsError, http_probe::{HttpReadinessError, NodeRole}, }, - topology::ReadinessError, + topology::readiness::ReadinessError, }; use url::ParseError; diff --git a/testing-framework/runners/compose/src/ports.rs b/testing-framework/runners/compose/src/ports.rs index be07373..5b5871a 100644 --- a/testing-framework/runners/compose/src/ports.rs +++ b/testing-framework/runners/compose/src/ports.rs @@ -5,7 +5,7 @@ use reqwest::Url; use testing_framework_core::{ adjust_timeout, scenario::http_probe::NodeRole as HttpNodeRole, - topology::{GeneratedTopology, NodeRole as TopologyNodeRole}, + topology::generation::{GeneratedTopology, NodeRole as TopologyNodeRole}, }; use tokio::{process::Command, time::timeout}; use url::ParseError; diff --git a/testing-framework/runners/compose/src/readiness.rs b/testing-framework/runners/compose/src/readiness.rs index e57da2c..043f2bb 100644 --- a/testing-framework/runners/compose/src/readiness.rs +++ b/testing-framework/runners/compose/src/readiness.rs @@ -4,7 +4,7 @@ use reqwest::Url; use testing_framework_core::{ nodes::ApiClient, scenario::{Metrics, MetricsError, NodeClients, http_probe::NodeRole as HttpNodeRole}, - topology::{GeneratedTopology, NodeRole as TopologyNodeRole}, + topology::generation::{GeneratedTopology, NodeRole as TopologyNodeRole}, }; use tokio::time::sleep; diff --git a/testing-framework/runners/k8s/src/assets.rs b/testing-framework/runners/k8s/src/assets.rs index 8659120..0452b47 100644 --- a/testing-framework/runners/k8s/src/assets.rs +++ b/testing-framework/runners/k8s/src/assets.rs @@ -10,7 +10,7 @@ use tempfile::TempDir; use testing_framework_core::{ constants::cfgsync_port, scenario::cfgsync::{apply_topology_overrides, load_cfgsync_template, render_cfgsync_yaml}, - topology::GeneratedTopology, + topology::generation::GeneratedTopology, }; use thiserror::Error; diff --git a/testing-framework/runners/k8s/src/cluster.rs b/testing-framework/runners/k8s/src/cluster.rs index 317c5b6..edc1f2c 100644 --- a/testing-framework/runners/k8s/src/cluster.rs +++ b/testing-framework/runners/k8s/src/cluster.rs @@ -5,7 +5,7 @@ use reqwest::Url; use testing_framework_core::{ nodes::ApiClient, scenario::{CleanupGuard, Metrics, MetricsError, NodeClients, http_probe::NodeRole}, - topology::{GeneratedTopology, ReadinessError}, + topology::{generation::GeneratedTopology, readiness::ReadinessError}, }; use tracing::info; use url::ParseError; diff --git a/testing-framework/runners/k8s/src/deployer.rs b/testing-framework/runners/k8s/src/deployer.rs index 93e5658..3739e27 100644 --- a/testing-framework/runners/k8s/src/deployer.rs +++ b/testing-framework/runners/k8s/src/deployer.rs @@ -3,7 +3,7 @@ use async_trait::async_trait; use kube::Client; use testing_framework_core::{ scenario::{BlockFeedTask, CleanupGuard, Deployer, MetricsError, RunContext, Runner, Scenario}, - topology::GeneratedTopology, + topology::generation::GeneratedTopology, }; use tracing::{error, info}; diff --git a/testing-framework/runners/local/src/runner.rs b/testing-framework/runners/local/src/runner.rs index 28a1ced..88decd6 100644 --- a/testing-framework/runners/local/src/runner.rs +++ b/testing-framework/runners/local/src/runner.rs @@ -4,7 +4,7 @@ use testing_framework_core::{ BlockFeed, BlockFeedTask, Deployer, DynError, Metrics, NodeClients, RunContext, Runner, Scenario, ScenarioError, spawn_block_feed, }, - topology::{ReadinessError, Topology}, + topology::{deployment::Topology, readiness::ReadinessError}, }; use thiserror::Error; use tracing::info; diff --git a/testing-framework/workflows/src/workloads/transaction/workload.rs b/testing-framework/workflows/src/workloads/transaction/workload.rs index f852da6..16526e1 100644 --- a/testing-framework/workflows/src/workloads/transaction/workload.rs +++ b/testing-framework/workflows/src/workloads/transaction/workload.rs @@ -12,7 +12,7 @@ use nomos_core::mantle::{ use testing_framework_config::topology::configs::wallet::WalletAccount; use testing_framework_core::{ scenario::{DynError, Expectation, RunContext, RunMetrics, Workload as ScenarioWorkload}, - topology::{GeneratedNodeConfig, GeneratedTopology}, + topology::generation::{GeneratedNodeConfig, GeneratedTopology}, }; use tokio::time::sleep; use zksign::{PublicKey, SecretKey};