summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShane Smith <shane.smith@shopify.com>2022-06-02 16:34:02 -0400
committerMatthew Heon <mheon@redhat.com>2022-06-14 16:12:10 -0400
commit1e0db6efe623a0bedbd520fb78142d741fa444de (patch)
treefdbcc0f572cfec390e8769e50f452f924f3e865b
parent51f9a3d67a611de9ea840bbdc2e879905e76d948 (diff)
downloadpodman-1e0db6efe623a0bedbd520fb78142d741fa444de.tar.gz
podman-1e0db6efe623a0bedbd520fb78142d741fa444de.tar.bz2
podman-1e0db6efe623a0bedbd520fb78142d741fa444de.zip
Stop machine before force removing files
In #13466 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] Signed-off-by: Shane Smith <shane.smith@shopify.com>
-rw-r--r--pkg/machine/qemu/machine.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/pkg/machine/qemu/machine.go b/pkg/machine/qemu/machine.go
index 6e36b0886..511dc23d5 100644
--- a/pkg/machine/qemu/machine.go
+++ b/pkg/machine/qemu/machine.go
@@ -831,8 +831,14 @@ func (v *MachineVM) Remove(_ string, opts machine.RemoveOptions) (string, func()
if err != nil {
return "", nil, err
}
- if state == machine.Running && !opts.Force {
- return "", nil, errors.Errorf("running vm %q cannot be destroyed", v.Name)
+ 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