diff options
author | Shane Smith <shane.smith@shopify.com> | 2022-06-02 16:34:02 -0400 |
---|---|---|
committer | Matthew Heon <mheon@redhat.com> | 2022-06-14 16:12:10 -0400 |
commit | 1e0db6efe623a0bedbd520fb78142d741fa444de (patch) | |
tree | fdbcc0f572cfec390e8769e50f452f924f3e865b | |
parent | 51f9a3d67a611de9ea840bbdc2e879905e76d948 (diff) | |
download | podman-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.go | 10 |
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 |