Skip to main content

torrust_tracker_deployer_lib/testing/e2e/containers/
timeout.rs

1//! Timeout configurations for container operations
2//!
3//! This module provides timeout configurations for various container operations
4//! to make the system more flexible and adaptable to different environments.
5
6use std::time::Duration;
7
8/// Container timeout configurations for different operations
9///
10/// This struct provides configurable timeouts for various container operations
11/// to make the system more flexible and adaptable to different environments.
12#[derive(Debug, Clone)]
13pub struct ContainerTimeouts {
14    /// Timeout for Docker image build operations
15    pub docker_build: Duration,
16    /// Timeout for container startup operations
17    pub container_start: Duration,
18    /// Timeout for SSH connectivity to become available
19    pub ssh_ready: Duration,
20    /// Timeout for SSH key setup operations
21    pub ssh_setup: Duration,
22}
23
24impl Default for ContainerTimeouts {
25    fn default() -> Self {
26        Self {
27            docker_build: Duration::from_mins(5),    // 5 minutes
28            container_start: Duration::from_mins(1), // 1 minute
29            ssh_ready: Duration::from_secs(30),      // 30 seconds
30            ssh_setup: Duration::from_secs(15),      // 15 seconds
31        }
32    }
33}