summaryrefslogtreecommitdiff
path: root/src/install.rs
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-03-14 07:11:53 +0000
committerLars Wirzenius <liw@liw.fi>2021-03-14 07:11:53 +0000
commite0b2904ef83b5a082f3bae1756bc7633a659c8fc (patch)
treeb4e0698ae9f50b8757530f2332cb1c40872d4a5c /src/install.rs
parentd4cba41b5674e6ca1cbd5669aeb42d5f7d62e8bd (diff)
parentb8119579a246727805a03c5a8e60fb44109410f6 (diff)
downloadvmadm-e0b2904ef83b5a082f3bae1756bc7633a659c8fc.tar.gz
Merge branch 'iso' into 'main'
fix: VMs can be restarted Closes #17 See merge request larswirzenius/vmadm!19
Diffstat (limited to 'src/install.rs')
-rw-r--r--src/install.rs8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/install.rs b/src/install.rs
index 7506e0d..dce0fea 100644
--- a/src/install.rs
+++ b/src/install.rs
@@ -6,9 +6,9 @@
use crate::cloudinit::{CloudInitConfig, CloudInitError};
use crate::image::VirtualMachineImage;
+use std::path::{Path, PathBuf};
use std::process::Command;
use std::result::Result;
-use tempfile::tempdir;
/// Errors from this module
#[derive(Debug, thiserror::Error)]
@@ -91,9 +91,7 @@ impl VirtInstallArgs {
}
/// Create new VM with virt-install.
-pub fn virt_install(args: &VirtInstallArgs) -> Result<(), VirtInstallError> {
- let dir = tempdir()?;
- let iso = dir.path().join("cloudinit.iso");
+pub fn virt_install(args: &VirtInstallArgs, iso: &Path) -> Result<PathBuf, VirtInstallError> {
args.init().create_iso(&iso)?;
let r = Command::new("virt-install")
@@ -122,5 +120,5 @@ pub fn virt_install(args: &VirtInstallArgs) -> Result<(), VirtInstallError> {
let stderr = String::from_utf8(r.stderr)?;
return Err(VirtInstallError::VirtInstallFailed(stderr));
}
- Ok(())
+ Ok(iso.to_path_buf())
}