summaryrefslogtreecommitdiff
path: root/pkg/api/handlers/libpod
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/api/handlers/libpod')
-rw-r--r--pkg/api/handlers/libpod/containers.go31
-rw-r--r--pkg/api/handlers/libpod/images.go2
-rw-r--r--pkg/api/handlers/libpod/pods.go39
3 files changed, 5 insertions, 67 deletions
diff --git a/pkg/api/handlers/libpod/containers.go b/pkg/api/handlers/libpod/containers.go
index d8dd0d69b..8020c391d 100644
--- a/pkg/api/handlers/libpod/containers.go
+++ b/pkg/api/handlers/libpod/containers.go
@@ -10,17 +10,12 @@ import (
"github.com/containers/libpod/cmd/podman/shared"
"github.com/containers/libpod/libpod"
"github.com/containers/libpod/libpod/define"
- "github.com/containers/libpod/pkg/api/handlers"
"github.com/containers/libpod/pkg/api/handlers/utils"
"github.com/gorilla/schema"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
-func StopContainer(w http.ResponseWriter, r *http.Request) {
- handlers.StopContainer(w, r)
-}
-
func ContainerExists(w http.ResponseWriter, r *http.Request) {
runtime := r.Context().Value("runtime").(*libpod.Runtime)
name := utils.GetName(r)
@@ -32,22 +27,6 @@ func ContainerExists(w http.ResponseWriter, r *http.Request) {
utils.WriteResponse(w, http.StatusNoContent, "")
}
-func RemoveContainer(w http.ResponseWriter, r *http.Request) {
- decoder := r.Context().Value("decoder").(*schema.Decoder)
- query := struct {
- Force bool `schema:"force"`
- Vols bool `schema:"v"`
- }{
- // override any golang type defaults
- }
-
- if err := decoder.Decode(&query, r.URL.Query()); err != nil {
- utils.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest,
- errors.Wrapf(err, "Failed to parse parameters for %s", r.URL.String()))
- return
- }
- utils.RemoveContainer(w, r, query.Force, query.Vols)
-}
func ListContainers(w http.ResponseWriter, r *http.Request) {
var (
filterFuncs []libpod.ContainerFilter
@@ -165,16 +144,6 @@ func GetContainer(w http.ResponseWriter, r *http.Request) {
utils.WriteResponse(w, http.StatusOK, data)
}
-func KillContainer(w http.ResponseWriter, r *http.Request) {
- // /{version}/containers/(name)/kill
- _, err := utils.KillContainer(w, r)
- if err != nil {
- return
- }
- // Success
- utils.WriteResponse(w, http.StatusNoContent, "")
-}
-
func WaitContainer(w http.ResponseWriter, r *http.Request) {
exitCode, err := utils.WaitContainer(w, r)
if err != nil {
diff --git a/pkg/api/handlers/libpod/images.go b/pkg/api/handlers/libpod/images.go
index 71603e6cc..cfd3b993e 100644
--- a/pkg/api/handlers/libpod/images.go
+++ b/pkg/api/handlers/libpod/images.go
@@ -79,7 +79,7 @@ func ImageTree(w http.ResponseWriter, r *http.Request) {
func GetImage(w http.ResponseWriter, r *http.Request) {
name := utils.GetName(r)
- newImage, err := handlers.GetImage(r, name)
+ newImage, err := utils.GetImage(r, name)
if err != nil {
utils.Error(w, "Something went wrong.", http.StatusNotFound, errors.Wrapf(err, "Failed to find image %s", name))
return
diff --git a/pkg/api/handlers/libpod/pods.go b/pkg/api/handlers/libpod/pods.go
index e8dc5bde2..f93c8f8d5 100644
--- a/pkg/api/handlers/libpod/pods.go
+++ b/pkg/api/handlers/libpod/pods.go
@@ -172,7 +172,6 @@ func PodStop(w http.ResponseWriter, r *http.Request) {
errors.Wrapf(err, "Failed to parse parameters for %s", r.URL.String()))
return
}
- allContainersStopped := true
name := utils.GetName(r)
pod, err := runtime.LookupPod(name)
if err != nil {
@@ -180,26 +179,12 @@ func PodStop(w http.ResponseWriter, r *http.Request) {
return
}
- // TODO we need to implement a pod.State/Status in libpod internal so libpod api
- // users dont have to run through all containers.
- podContainers, err := pod.AllContainers()
+ status, err := pod.GetPodStatus()
if err != nil {
utils.Error(w, "Something went wrong", http.StatusInternalServerError, err)
return
}
-
- for _, con := range podContainers {
- containerState, err := con.State()
- if err != nil {
- utils.Error(w, "Something went wrong", http.StatusInternalServerError, err)
- return
- }
- if containerState == define.ContainerStateRunning {
- allContainersStopped = false
- break
- }
- }
- if allContainersStopped {
+ if status != define.PodStateRunning {
utils.WriteResponse(w, http.StatusNotModified, "")
return
}
@@ -218,34 +203,18 @@ func PodStop(w http.ResponseWriter, r *http.Request) {
func PodStart(w http.ResponseWriter, r *http.Request) {
runtime := r.Context().Value("runtime").(*libpod.Runtime)
- allContainersRunning := true
name := utils.GetName(r)
pod, err := runtime.LookupPod(name)
if err != nil {
utils.PodNotFound(w, name, err)
return
}
-
- // TODO we need to implement a pod.State/Status in libpod internal so libpod api
- // users dont have to run through all containers.
- podContainers, err := pod.AllContainers()
+ status, err := pod.GetPodStatus()
if err != nil {
utils.Error(w, "Something went wrong", http.StatusInternalServerError, err)
return
}
-
- for _, con := range podContainers {
- containerState, err := con.State()
- if err != nil {
- utils.Error(w, "Something went wrong", http.StatusInternalServerError, err)
- return
- }
- if containerState != define.ContainerStateRunning {
- allContainersRunning = false
- break
- }
- }
- if allContainersRunning {
+ if status == define.PodStateRunning {
utils.WriteResponse(w, http.StatusNotModified, "")
return
}