summaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/delete.rs5
-rw-r--r--src/cmd/new.rs2
-rw-r--r--src/cmd/shutdown.rs2
-rw-r--r--src/cmd/start.rs2
4 files changed, 9 insertions, 2 deletions
diff --git a/src/cmd/delete.rs b/src/cmd/delete.rs
index 66eb23f..fbb6ab5 100644
--- a/src/cmd/delete.rs
+++ b/src/cmd/delete.rs
@@ -10,7 +10,12 @@ use log::info;
pub fn delete(specs: &[Specification]) -> Result<(), VirtError> {
let libvirt = Libvirt::connect("qemu:///system")?;
for spec in specs {
+ info!("asking virtual machine {} to shutdown", spec.name);
+ libvirt.trigger_shutdown(&spec.name)?;
+ }
+ for spec in specs {
info!("deleting virtual machine {}", spec.name);
+ libvirt.shutdown(&spec.name)?;
libvirt.delete(&spec.name, &spec.image)?;
}
Ok(())
diff --git a/src/cmd/new.rs b/src/cmd/new.rs
index 39f54c9..4b6a4a3 100644
--- a/src/cmd/new.rs
+++ b/src/cmd/new.rs
@@ -64,7 +64,9 @@ pub fn new(specs: &[Specification]) -> Result<(), NewError> {
args.set_memory(spec.memory_mib);
args.set_vcpus(spec.cpus);
virt_install(&args, &iso)?;
+ }
+ for spec in specs {
info!("waiting for {} to open its SSH port", spec.name);
wait_for_ssh(&spec.name);
diff --git a/src/cmd/shutdown.rs b/src/cmd/shutdown.rs
index b53ebd3..cdd3069 100644
--- a/src/cmd/shutdown.rs
+++ b/src/cmd/shutdown.rs
@@ -9,7 +9,7 @@ pub fn shutdown(specs: &[Specification]) -> Result<(), VirtError> {
let libvirt = Libvirt::connect("qemu:///system")?;
for spec in specs {
info!("shutting down virtual machine {}", spec.name);
- libvirt.shutdown(&spec.name)?;
+ libvirt.trigger_shutdown(&spec.name)?;
}
for spec in specs {
debug!("waiting for {} to become inactive", spec.name);
diff --git a/src/cmd/start.rs b/src/cmd/start.rs
index a69f54c..8e74c49 100644
--- a/src/cmd/start.rs
+++ b/src/cmd/start.rs
@@ -22,7 +22,7 @@ pub fn start(specs: &[Specification]) -> Result<(), StartError> {
let libvirt = Libvirt::connect("qemu:///system")?;
for spec in specs {
info!("starting virtual machine {}", spec.name);
- libvirt.start(&spec.name)?;
+ libvirt.trigger_start(&spec.name)?;
}
for spec in specs {
wait_for_ssh(&spec.name);