diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-03-24 13:12:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-24 13:12:06 +0100 |
commit | 3dbf2cb5aff67f82e486cd95aca170e44b8fc75a (patch) | |
tree | 0e67d02bcdb5caed701c22b332a4ad6f2bbe6fe6 /pkg/api/handlers/compat/containers.go | |
parent | a2ffd5c230ea6f53ed40ccc60e869164fee41899 (diff) | |
parent | 9536560b4f3a38fbba4ac61c357dd3627fb6cf4e (diff) | |
download | podman-3dbf2cb5aff67f82e486cd95aca170e44b8fc75a.tar.gz podman-3dbf2cb5aff67f82e486cd95aca170e44b8fc75a.tar.bz2 podman-3dbf2cb5aff67f82e486cd95aca170e44b8fc75a.zip |
Merge pull request #5581 from baude/v2containers
podmanv2 add core container commands
Diffstat (limited to 'pkg/api/handlers/compat/containers.go')
-rw-r--r-- | pkg/api/handlers/compat/containers.go | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/pkg/api/handlers/compat/containers.go b/pkg/api/handlers/compat/containers.go index 3a269fe50..2ce113d30 100644 --- a/pkg/api/handlers/compat/containers.go +++ b/pkg/api/handlers/compat/containers.go @@ -7,7 +7,6 @@ import ( "strconv" "strings" "sync" - "syscall" "time" "github.com/containers/libpod/libpod" @@ -15,6 +14,7 @@ import ( "github.com/containers/libpod/libpod/logs" "github.com/containers/libpod/pkg/api/handlers" "github.com/containers/libpod/pkg/api/handlers/utils" + "github.com/containers/libpod/pkg/signal" "github.com/containers/libpod/pkg/util" "github.com/gorilla/schema" "github.com/pkg/errors" @@ -145,14 +145,20 @@ func KillContainer(w http.ResponseWriter, r *http.Request) { runtime := r.Context().Value("runtime").(*libpod.Runtime) decoder := r.Context().Value("decoder").(*schema.Decoder) query := struct { - Signal syscall.Signal `schema:"signal"` + Signal string `schema:"signal"` }{ - Signal: syscall.SIGKILL, + Signal: "KILL", } if err := decoder.Decode(&query, r.URL.Query()); err != nil { utils.Error(w, "Something went wrong.", http.StatusBadRequest, errors.Wrapf(err, "Failed to parse parameters for %s", r.URL.String())) return } + + sig, err := signal.ParseSignalNameOrNumber(query.Signal) + if err != nil { + utils.InternalServerError(w, err) + return + } name := utils.GetName(r) con, err := runtime.LookupContainer(name) if err != nil { @@ -172,7 +178,7 @@ func KillContainer(w http.ResponseWriter, r *http.Request) { return } - err = con.Kill(uint(query.Signal)) + err = con.Kill(uint(sig)) if err != nil { utils.Error(w, "Something went wrong.", http.StatusInternalServerError, errors.Wrapf(err, "unable to kill Container %s", name)) } |