DockerCLI/cli
Sebastiaan van Stijn 3c095dc546
Error if "until" filter is combined with "--volumes" on system prune
The "until" filter is supported by all object types, except for
volumes.

Before this patch, the "until" filter would attempted to be used for the volume
prune endpoint, resulting in an error being returned by the daemon, and
further prune endpoints (networks, images) to be skipped.

    $ docker system prune --filter until=24h --filter label=label.foo=bar

    WARNING! This will remove:
            - all stopped containers
            - all volumes not used by at least one container
            - all networks not used by at least one container
            - all dangling images
    Are you sure you want to continue? [y/N] y
    Error response from daemon: Invalid filter 'until'

    Calling POST /v1.30/containers/prune?filters=%7B%22label%22%3A%7B%22label.foo%3D%3Dbar%22%3Atrue%7D%2C%22until%22%3A%7B%2224h%22%3Atrue%7D%7D
    Calling POST /v1.30/volumes/prune?filters=%7B%22label%22%3A%7B%22label.foo%3D%3Dbar%22%3Atrue%7D%2C%22until%22%3A%7B%2224h%22%3Atrue%7D%7D
    Handler for POST /v1.30/volumes/prune returned error: Invalid filter 'until'
    Error response from daemon: Invalid filter 'until'

With this patch, an error is produced instead, preventing "partial" prune.

    $ docker system prune --filter until=24h --filter label=foo==bar --volumes
    ERROR: The "until" filter is not supported with "--volumes"

Note that `docker volume prune` does not have this problem, and produces an
error if the `until` filter is used;

    $ docker volume prune --filter until=24h

    WARNING! This will remove all volumes not used by at least one container.
    Are you sure you want to continue? [y/N] y
    Error response from daemon: Invalid filter 'until'

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-07-21 12:11:53 +02:00
..
command Error if "until" filter is combined with "--volumes" on system prune 2017-07-21 12:11:53 +02:00
compose on_failure -> on-failure in compose code 2017-06-28 11:10:02 -04:00
config Rename NewConfigFile to New in configfile package 2017-06-27 16:31:38 +02:00
debug Import docker/docker/cli 2017-04-17 17:40:59 -04:00
flags Update cli imports to using local package 2017-05-15 14:45:19 +02:00
internal/test Remove unnecessary use of SetConfigfile 2017-07-11 14:49:30 -04:00
trust Add unconvert linter 2017-06-14 16:54:27 -07:00
winresources Add windows resources to binary. 2017-05-15 18:03:03 -04:00
cobra.go fix docker/docker/cli path in comment 2017-04-24 11:31:08 -07:00
error.go Import docker/docker/cli 2017-04-17 17:40:59 -04:00
required.go Import docker/docker/cli 2017-04-17 17:40:59 -04:00
version.go Display proper version information 2017-05-09 14:22:51 -07:00