diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-01-09 13:10:37 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-01-09 14:24:03 +0100 |
| commit | da7cbf13a85b09659b1d64b0018e6b9177507147 (patch) | |
| tree | c031e0355c1bba136daa14bfd66aaba5fff79c51 /test/test-manager/src | |
| parent | 5d0bcc201050c90353418d3413a92e692ae3faee (diff) | |
| download | mullvadvpn-da7cbf13a85b09659b1d64b0018e6b9177507147.tar.xz mullvadvpn-da7cbf13a85b09659b1d64b0018e6b9177507147.zip | |
Exit immediately if ssh-setup.sh fails
Diffstat (limited to 'test/test-manager/src')
| -rw-r--r-- | test/test-manager/src/vm/provision.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/test/test-manager/src/vm/provision.rs b/test/test-manager/src/vm/provision.rs index b3b39a2c18..5f01e8f192 100644 --- a/test/test-manager/src/vm/provision.rs +++ b/test/test-manager/src/vm/provision.rs @@ -1,6 +1,6 @@ use crate::config::{OsType, Provisioner, VmConfig}; use crate::package; -use anyhow::{Context, Result}; +use anyhow::{bail, Context, Result}; use ssh2::Session; use std::fs::File; use std::io::{self, Read}; @@ -203,5 +203,14 @@ fn ssh_exec(session: &Session, command: &str) -> Result<String> { channel.send_eof()?; channel.wait_eof()?; channel.wait_close()?; + + let exit_status = channel + .exit_status() + .context("Failed to obtain exit status")?; + if exit_status != 0 { + log::error!("command failed: {command}\n{output}"); + bail!("command failed: {exit_status}"); + } + Ok(output) } |
