Skip to content

Commit 8902717

Browse files
committed
refactor: consolidate Docker container E2E functions into run_provision_simulation
- Move setup_docker_container, provision_docker_infrastructure, and configure_ssh_connectivity functions into run_provision_simulation.rs - Rename functions for better clarity: setup_docker_container → create_and_start_container, provision_docker_infrastructure → render_ansible_configuration, configure_ssh_connectivity → establish_ssh_connectivity - Update all E2E test binaries to use consolidated function structure and renamed functions - Fix doctest import to reference correct cleanup_infrastructure function name - Remove dedicated function files and update module declarations - Consolidate preflight_cleanup function naming to use shared cleanup_lingering_resources - All tests passing with improved code organization and clearer function names
1 parent 455bc9c commit 8902717

14 files changed

+202
-333
lines changed

src/bin/e2e_config_tests.rs

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,17 @@
4747
use anyhow::Result;
4848
use clap::Parser;
4949
use std::time::Instant;
50+
use torrust_tracker_deploy::e2e::tasks::run_configure_command::run_configure_command;
5051
use tracing::{error, info};
5152

5253
use torrust_tracker_deploy::config::InstanceName;
5354
use torrust_tracker_deploy::e2e::environment::{TestEnvironment, TestEnvironmentType};
5455
use torrust_tracker_deploy::e2e::tasks::{
5556
container::{
56-
cleanup_infrastructure::cleanup_docker_container,
57-
configure_ssh_connectivity::configure_ssh_connectivity,
57+
cleanup_infrastructure::cleanup_infrastructure,
5858
run_provision_simulation::run_provision_simulation,
59-
setup_docker_container::setup_docker_container,
6059
},
6160
preflight_cleanup,
62-
run_configure_command::run_ansible_configuration,
6361
run_deployment_validation::run_deployment_validation,
6462
};
6563
use torrust_tracker_deploy::logging::{self, LogFormat};
@@ -124,7 +122,7 @@ pub async fn main() -> Result<()> {
124122
TestEnvironmentType::Container,
125123
)?;
126124

127-
preflight_cleanup::cleanup_lingering_resources_docker(&env)?;
125+
preflight_cleanup::cleanup_lingering_resources(&env)?;
128126

129127
let test_result = run_configuration_tests(&env).await;
130128

@@ -163,30 +161,20 @@ pub async fn main() -> Result<()> {
163161
async fn run_configuration_tests(test_env: &TestEnvironment) -> Result<()> {
164162
info!("Starting configuration tests with Docker container");
165163

166-
// Step 1: Setup Docker container
167-
let running_container = setup_docker_container().await?;
168-
let socket_addr = running_container.ssh_socket_addr();
169-
170-
// Step 2: Configure SSH connectivity
171-
configure_ssh_connectivity(
172-
socket_addr,
173-
&test_env.config.ssh_credentials,
174-
Some(&running_container),
175-
)
176-
.await?;
177-
178-
// Step 3: Run provision simulation
179-
run_provision_simulation(socket_addr, &test_env.config.ssh_credentials, test_env).await?;
164+
// Step 1: Run provision simulation (includes container setup and SSH connectivity)
165+
let running_container = run_provision_simulation(test_env).await?;
180166

181-
// Step 4: Run Ansible configuration (expect failure due to inventory mismatch)
182-
run_ansible_configuration(socket_addr, test_env, false)?;
167+
// Step 2: Run Ansible configuration
168+
run_configure_command(test_env)?;
183169

184-
// Step 5: Run deployment validation
170+
// Step 3: Run deployment validation
171+
let socket_addr = running_container.ssh_socket_addr();
185172
run_deployment_validation(socket_addr, &test_env.config.ssh_credentials).await?;
186173

187-
// Step 6: Cleanup container
188-
cleanup_docker_container(running_container);
174+
// Step 4: Cleanup container
175+
cleanup_infrastructure(running_container);
189176

190177
info!("Configuration tests completed successfully");
178+
191179
Ok(())
192180
}

src/bin/e2e_provision_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use torrust_tracker_deploy::e2e::tasks::{
2828
preflight_cleanup::cleanup_lingering_resources,
2929
virtual_machine::{
3030
cleanup_infrastructure::cleanup_infrastructure,
31-
run_provision_command::provision_infrastructure,
31+
run_provision_command::run_provision_command,
3232
},
3333
};
3434
use torrust_tracker_deploy::logging::{self, LogFormat};
@@ -158,7 +158,7 @@ async fn run_provisioning_test(env: &TestEnvironment) -> Result<IpAddr> {
158158
"Starting infrastructure provisioning E2E test"
159159
);
160160

161-
let instance_ip = provision_infrastructure(env).await?;
161+
let instance_ip = run_provision_command(env).await?;
162162

163163
info!(
164164
status = "success",

src/bin/e2e_tests_full.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ use torrust_tracker_deploy::config::InstanceName;
3131
use torrust_tracker_deploy::e2e::environment::TestEnvironment;
3232
use torrust_tracker_deploy::e2e::tasks::{
3333
preflight_cleanup::cleanup_lingering_resources,
34-
run_configure_command::configure_infrastructure,
35-
run_test_command::validate_deployment,
34+
run_configure_command::run_configure_command,
35+
run_test_command::run_test_command,
3636
virtual_machine::{
3737
cleanup_infrastructure::cleanup_infrastructure,
38-
run_provision_command::provision_infrastructure,
38+
run_provision_command::run_provision_command,
3939
},
4040
};
4141
use torrust_tracker_deploy::logging::{self, LogFormat};
@@ -107,7 +107,7 @@ pub async fn main() -> Result<()> {
107107
let deployment_result = run_full_deployment_test(&env).await;
108108

109109
let validation_result = match &deployment_result {
110-
Ok(instance_ip) => validate_deployment(&env, instance_ip).await,
110+
Ok(instance_ip) => run_test_command(&env, instance_ip).await,
111111
Err(_) => Ok(()), // Skip validation if deployment failed
112112
};
113113

@@ -169,9 +169,9 @@ async fn run_full_deployment_test(env: &TestEnvironment) -> Result<IpAddr> {
169169
"Starting full deployment E2E test"
170170
);
171171

172-
let instance_ip = provision_infrastructure(env).await?;
172+
let instance_ip = run_provision_command(env).await?;
173173

174-
configure_infrastructure(env)?;
174+
run_configure_command(env)?;
175175

176176
info!(status = "success", "Deployment completed successfully");
177177

src/e2e/tasks/container/cleanup_infrastructure.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use crate::e2e::containers::RunningProvisionedContainer;
3737
/// # Example
3838
///
3939
/// ```rust,no_run
40-
/// use torrust_tracker_deploy::e2e::tasks::container::cleanup_infrastructure::cleanup_docker_container;
40+
/// use torrust_tracker_deploy::e2e::tasks::container::cleanup_infrastructure::cleanup_infrastructure;
4141
/// use torrust_tracker_deploy::e2e::containers::StoppedProvisionedContainer;
4242
///
4343
/// #[tokio::main]
@@ -47,12 +47,12 @@ use crate::e2e::containers::RunningProvisionedContainer;
4747
///
4848
/// // ... perform tests ...
4949
///
50-
/// cleanup_docker_container(running_container);
50+
/// cleanup_infrastructure(running_container);
5151
/// println!("Container cleanup completed");
5252
/// Ok(())
5353
/// }
5454
/// ```
55-
pub fn cleanup_docker_container(running_container: RunningProvisionedContainer) {
55+
pub fn cleanup_infrastructure(running_container: RunningProvisionedContainer) {
5656
let container_id = running_container.container_id().to_string();
5757

5858
info!(

src/e2e/tasks/container/configure_ssh_connectivity.rs

Lines changed: 0 additions & 108 deletions
This file was deleted.

src/e2e/tasks/container/mod.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,9 @@
88
//! ## Tasks Overview
99
//!
1010
//! - `cleanup_infrastructure` - Stops and cleans up Docker containers after testing
11-
//! - `configure_ssh_connectivity` - Sets up SSH connectivity specifically for containers
1211
//! - `preflight_cleanup` - Container-specific preflight cleanup operations
13-
//! - `provision_docker_infrastructure` - Simulates infrastructure provisioning for containers
1412
//! - `run_provision_simulation` - Simulates provision phase for container-based testing
15-
//! - `setup_docker_container` - Creates and starts Docker containers for testing
1613
1714
pub mod cleanup_infrastructure;
18-
pub mod configure_ssh_connectivity;
1915
pub mod preflight_cleanup;
20-
pub mod provision_docker_infrastructure;
2116
pub mod run_provision_simulation;
22-
pub mod setup_docker_container;

src/e2e/tasks/container/preflight_cleanup.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ use tracing::info;
3030
/// # Errors
3131
///
3232
/// Returns an error if directory cleanup fails and would prevent new test runs.
33-
pub fn cleanup_lingering_resources_docker(
34-
env: &TestEnvironment,
35-
) -> Result<(), PreflightCleanupError> {
33+
pub fn cleanup_lingering_resources(env: &TestEnvironment) -> Result<(), PreflightCleanupError> {
3634
info!(
3735
operation = "preflight_cleanup_docker",
3836
"Starting pre-flight cleanup for Docker-based E2E tests"

src/e2e/tasks/container/provision_docker_infrastructure.rs

Lines changed: 0 additions & 72 deletions
This file was deleted.

0 commit comments

Comments
 (0)