diff options
Diffstat (limited to 'src/cmd')
-rw-r--r-- | src/cmd/delete.rs | 5 | ||||
-rw-r--r-- | src/cmd/new.rs | 2 | ||||
-rw-r--r-- | src/cmd/shutdown.rs | 2 | ||||
-rw-r--r-- | src/cmd/start.rs | 2 |
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); |