mirror of
https://github.com/containers/podman.git
synced 2025-08-06 03:19:52 +08:00
libpod/containers/json: alias last -> limit
Support both `last` and `limit` for in the containers listing endpoint. We intended to use `limit` which is also mentioned in the docs, but the implementation ended up using `last` as the http parameter; likely being caused by the CLI using `--last`. To avoid any regression, we decided for supporting both and aliasing `last`. Fixes: #6413 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
@ -14,6 +14,7 @@ import (
|
||||
"github.com/containers/libpod/pkg/ps"
|
||||
"github.com/gorilla/schema"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func ContainerExists(w http.ResponseWriter, r *http.Request) {
|
||||
@ -36,7 +37,8 @@ func ListContainers(w http.ResponseWriter, r *http.Request) {
|
||||
query := struct {
|
||||
All bool `schema:"all"`
|
||||
Filters map[string][]string `schema:"filters"`
|
||||
Last int `schema:"last"`
|
||||
Last int `schema:"last"` // alias for limit
|
||||
Limit int `schema:"limit"`
|
||||
Namespace bool `schema:"namespace"`
|
||||
Pod bool `schema:"pod"`
|
||||
Size bool `schema:"size"`
|
||||
@ -50,11 +52,22 @@ func ListContainers(w http.ResponseWriter, r *http.Request) {
|
||||
errors.Wrapf(err, "Failed to parse parameters for %s", r.URL.String()))
|
||||
return
|
||||
}
|
||||
|
||||
limit := query.Limit
|
||||
// Support `last` as an alias for `limit`. While Podman uses --last in
|
||||
// the CLI, the API is using `limit`. As we first used `last` in the
|
||||
// API as well, we decided to go with aliasing to prevent any
|
||||
// regression. See github.com/containers/libpod/issues/6413.
|
||||
if _, found := r.URL.Query()["last"]; found {
|
||||
logrus.Info("List containers: received `last` parameter - overwriting `limit`")
|
||||
limit = query.Last
|
||||
}
|
||||
|
||||
runtime := r.Context().Value("runtime").(*libpod.Runtime)
|
||||
opts := entities.ContainerListOptions{
|
||||
All: query.All,
|
||||
Filters: query.Filters,
|
||||
Last: query.Last,
|
||||
Last: limit,
|
||||
Size: query.Size,
|
||||
Sort: "",
|
||||
Namespace: query.Namespace,
|
||||
|
Reference in New Issue
Block a user