Stop machine before force removing files
In the ability to force remove a machine while it's running was
added but it did not first stop the machine, all files get deleted but
the qemu VM would essentially be orphaned.
[NO NEW TESTS NEEDED]
@@ -831,9 +831,15 @@ func (v *MachineVM) Remove(_ string, opts machine.RemoveOptions) (string, func()
if err != nil {
return "", nil, err
}
- if state == machine.Running && !opts.Force {
+ if state == machine.Running {
+ if !opts.Force {
return "", nil, errors.Errorf("running vm %q cannot be destroyed", v.Name)
}
+ err := v.Stop(v.Name, machine.StopOptions{})
+ if err != nil {
+ return "", nil, err
+ }
+ }
// Collect all the files that need to be destroyed
if !opts.SaveKeys {
