diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-08-05 14:24:31 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-08-05 14:24:31 +0200 |
| commit | d29d5e06e936311d52e593b887b07712fd91d301 (patch) | |
| tree | 5b11a3d758932198d6ca15d04e576b45e905d5d7 /test | |
| parent | 232f7eee33f1b2def4c534497a68034acb6361c1 (diff) | |
| parent | 2482c3cbaa81ca127f6d4ecf61ad1279733a0e5e (diff) | |
| download | mullvadvpn-d29d5e06e936311d52e593b887b07712fd91d301.tar.xz mullvadvpn-d29d5e06e936311d52e593b887b07712fd91d301.zip | |
Merge branch 'add-test-macos-tahoe'
Diffstat (limited to 'test')
| -rw-r--r-- | test/test-manager/src/vm/provision.rs | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/test/test-manager/src/vm/provision.rs b/test/test-manager/src/vm/provision.rs index ef1347ba62..818393cd33 100644 --- a/test/test-manager/src/vm/provision.rs +++ b/test/test-manager/src/vm/provision.rs @@ -9,6 +9,8 @@ use std::{ io::{self, Read}, net::{IpAddr, SocketAddr, TcpStream}, path::{Path, PathBuf}, + time::Duration, + time::Instant, }; use test_rpc::UNPRIVILEGED_USER; @@ -63,14 +65,24 @@ async fn provision_ssh( let local_app_manifest = local_app_manifest.to_owned(); let remote_dir = tokio::task::spawn_blocking(move || { - blocking_ssh( - user, - password, - guest_ip, - os_type, - &local_runner_dir, - local_app_manifest, - ) + const SSH_TIMEOUT: Duration = Duration::from_secs(120); + let started = Instant::now(); + loop { + let last_result = blocking_ssh( + user.clone(), + password.clone(), + guest_ip, + os_type, + &local_runner_dir, + local_app_manifest.clone(), + ); + if last_result.is_err() && started.elapsed() < SSH_TIMEOUT { + log::warn!("Failed to provision over SSH, retrying..."); + std::thread::sleep(Duration::from_secs(1)); + continue; + } + break last_result; + } }) .await .context("Failed to join SSH task")??; |
