mirror of
https://github.com/clearlinux/docker.git
synced 2026-09-07 14:32:09 +00:00
docker ps: introducing filters
* starting with filtering for exit codes. `docker ps -a --filter 'exited=1'` * API doc for filter parameter * formatting filters for help usage * tweaks for review This requires https://github.com/dotcloud/docker/pull/4430 Docker-DCO-1.1-Signed-off-by: Vincent Batts <vbatts@redhat.com> (github: vbatts)
This commit is contained in:
@@ -1487,6 +1487,9 @@ func (cli *DockerCli) CmdPs(args ...string) error {
|
||||
before := cmd.String([]string{"#beforeId", "#-before-id", "-before"}, "", "Show only container created before Id or Name, include non-running ones.")
|
||||
last := cmd.Int([]string{"n"}, -1, "Show n last created containers, include non-running ones.")
|
||||
|
||||
var flFilter opts.ListOpts
|
||||
cmd.Var(&flFilter, []string{"f", "-filter"}, "Provide filter values. Valid filters:\nexited=<int> - containers with exit code of <int>")
|
||||
|
||||
if err := cmd.Parse(args); err != nil {
|
||||
return nil
|
||||
}
|
||||
@@ -1510,6 +1513,24 @@ func (cli *DockerCli) CmdPs(args ...string) error {
|
||||
v.Set("size", "1")
|
||||
}
|
||||
|
||||
// Consolidate all filter flags, and sanity check them.
|
||||
// They'll get processed in the daemon/server.
|
||||
psFilterArgs := filters.Args{}
|
||||
for _, f := range flFilter.GetAll() {
|
||||
var err error
|
||||
psFilterArgs, err = filters.ParseFlag(f, psFilterArgs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if len(psFilterArgs) > 0 {
|
||||
filterJson, err := filters.ToParam(psFilterArgs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
v.Set("filters", filterJson)
|
||||
}
|
||||
|
||||
body, _, err := readBody(cli.call("GET", "/containers/json?"+v.Encode(), nil, false))
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user