summaryrefslogtreecommitdiff
path: root/pkg/api
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/api')
-rw-r--r--pkg/api/handlers/compat/containers.go12
-rw-r--r--pkg/api/handlers/libpod/info.go4
-rw-r--r--pkg/api/handlers/utils/containers.go2
3 files changed, 13 insertions, 5 deletions
diff --git a/pkg/api/handlers/compat/containers.go b/pkg/api/handlers/compat/containers.go
index e7146a5d8..d97a4d3bd 100644
--- a/pkg/api/handlers/compat/containers.go
+++ b/pkg/api/handlers/compat/containers.go
@@ -26,6 +26,7 @@ import (
"github.com/docker/go-units"
"github.com/gorilla/schema"
"github.com/pkg/errors"
+ "github.com/sirupsen/logrus"
)
func RemoveContainer(w http.ResponseWriter, r *http.Request) {
@@ -148,14 +149,19 @@ func ListContainers(w http.ResponseWriter, r *http.Request) {
containers = containers[:query.Limit]
}
}
- var list = make([]*handlers.Container, len(containers))
- for i, ctnr := range containers {
+ list := make([]*handlers.Container, 0, len(containers))
+ for _, ctnr := range containers {
api, err := LibpodToContainer(ctnr, query.Size)
if err != nil {
+ if errors.Cause(err) == define.ErrNoSuchCtr {
+ // container was removed between the initial fetch of the list and conversion
+ logrus.Debugf("Container %s removed between initial fetch and conversion, ignoring in output", ctnr.ID())
+ continue
+ }
utils.InternalServerError(w, err)
return
}
- list[i] = api
+ list = append(list, api)
}
utils.WriteResponse(w, http.StatusOK, list)
}
diff --git a/pkg/api/handlers/libpod/info.go b/pkg/api/handlers/libpod/info.go
index 546609451..8868d563d 100644
--- a/pkg/api/handlers/libpod/info.go
+++ b/pkg/api/handlers/libpod/info.go
@@ -5,11 +5,13 @@ import (
"github.com/containers/podman/v3/libpod"
"github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
)
func GetInfo(w http.ResponseWriter, r *http.Request) {
runtime := r.Context().Value("runtime").(*libpod.Runtime)
- info, err := runtime.Info()
+ containerEngine := abi.ContainerEngine{Libpod: runtime}
+ info, err := containerEngine.Info(r.Context())
if err != nil {
utils.InternalServerError(w, err)
return
diff --git a/pkg/api/handlers/utils/containers.go b/pkg/api/handlers/utils/containers.go
index 91e02abf1..c4c9cc2ea 100644
--- a/pkg/api/handlers/utils/containers.go
+++ b/pkg/api/handlers/utils/containers.go
@@ -76,7 +76,7 @@ func WaitContainerDocker(w http.ResponseWriter, r *http.Request) {
exitCode, err := waitDockerCondition(ctx, name, interval, condition)
msg := ""
if err != nil {
- logrus.Errorf("error while waiting on condtion: %q", err)
+ logrus.Errorf("error while waiting on condition: %q", err)
msg = err.Error()
}
responseData := handlers.ContainerWaitOKBody{