Commit Graph

207 Commits

Author SHA1 Message Date
Josh Hawn 2831a04cba Enable TCP Keep-Alive in Docker client
Some network environments may have NATs, proxies, or gateways which
kill idle connections. There are many Docker API operations which may
be idle for long periods of time (such as ContainerWait and ContainerAttach)
and may result in unexpected connection closures or hangs if TCP keepalives
are not used.

This patch updates the default HTTP transport used by the Docker client
package to enable TCP Keep-Alive with a keep-alive interval of 30 seconds.
It also sets a connect timeout of 30 seconds.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2017-08-02 14:35:03 -07:00
Sebastiaan van Stijn ceb18a841a
Fix presentation of published "random" host ports
Ports that were picked from the ephemeral port range
were presented as `*:0->80/tcp`.

This patch changes the presentation to use the
actually assigned port, instead of the port specified
in `Endpoint.Spec` (which is always empty/zero (`0`))

Before this change;

    ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
    5d44i665qj66        with-random-port    replicated          1/1                 nginx:alpine        *:0->80/tcp

After this change;

    ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
    5d44i665qj66        with-random-port    replicated          1/1                 nginx:alpine        *:30000->80/tcp

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-08-01 19:21:17 +02:00
Darren Stahl 18c877d35c Fast fail when save directory does not exist
Signed-off-by: Darren Stahl <darst@microsoft.com>
2017-07-27 15:00:38 -07:00
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
Vincent Demeester 36b9edff7e Merge pull request #364 from ksouf/issue-37-add-connect-disconnect
adding connect disconnect network tests
2017-07-21 11:19:23 +02:00
Sebastiaan van Stijn dfbad2bc5a Merge pull request #357 from ripcurld0/nat_sort_service
Sort services names in a natural order
2017-07-20 22:56:09 +02:00
khaled souf 7296abf39f adding connect disconnect network tests
Signed-off-by: khaled souf <khaled.souf@gmail.com>
2017-07-20 18:53:03 +02:00
Daniel Nephin 60991e943b Add myself to command/stack codeowners
Cleanup a test

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-07-20 12:05:20 -04:00
Alex Mavrogiannis 7f53c99dfe Skip inspects of built-in networks on stack deploy
Signed-off-by: Alex Mavrogiannis <alex.mavrogiannis@docker.com>
2017-07-19 19:39:44 -07:00
Boaz Shuster 7478e47b2d Sort services names in a natural order
Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
2017-07-19 18:18:06 +03:00
Daniel Nephin ff350a04cb Remove unnecessary prune function aliases.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-07-18 12:25:45 -04:00
Vincent Demeester a14762c6d2 Merge pull request #350 from thaJeztah/unexport-commands
Unexport subcommands
2017-07-18 17:17:01 +02:00
Sebastiaan van Stijn 9c7b0d74cd
Unexport subcommands
These commands were only used as subcommands, so did
not have to be exported.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-07-18 15:26:45 +02:00
Sebastiaan van Stijn 73163ee78b
Small refactor in system prune
Adapt "image prune" and "build cache prune" to have
the same signature as the other prune commands, so
that they can all be added to the "pruneFuncs" array.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-07-18 15:13:11 +02:00
Sebastiaan van Stijn 79e4d635ca Merge pull request #315 from ripcurld0/nat_sort
Sort swarm stacks and nodes using natural sorting
2017-07-18 15:01:11 +02:00
Kenfe-Mickaël Laventure 19efbc85f4 Merge pull request #345 from vdemeester/remove-prune-package
Remove useless prune package 👼
2017-07-18 14:46:53 +02:00
Vincent Demeester 3f4d91508e
Remove useless prune package 👼
The `cli/command/prune` just does some aliasing of `Prune*` methods,
doesn't have any use.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2017-07-18 09:49:02 +02:00
Sebastiaan van Stijn 6c3a448ecb
Fix: skip build-cache prune on unsupported versions
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-07-17 11:55:35 +02:00
Boaz Shuster 1333b49194 Sort swarm stacks and nodes using natural sorting
This commit changes the order stacks and nodes are displayed.
For example, running "docker stack ls" is expected to
display the following list:

NAME          SERVICES
service-1     1
service-2     1
service-10    1

However, currently this is what is printed:

NAME          SERVICES
service-1     1
service-10    1
service-2     1

To fix this, "docker stack ls" and "docker node ls" are using
natural sorting to make it more human readable.

Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
2017-07-13 14:33:02 +03:00
Sebastiaan van Stijn ae38f202bb Merge pull request #271 from tych0/password-stdin
Password stdin
2017-07-12 17:08:11 -07:00
Ying Li 4615c92f66 Fix warning in docker CLI when `swarm ca --ca-cert`, etc. flags are passed,
and add a test.

Signed-off-by: Ying Li <ying.li@docker.com>
2017-07-12 14:56:28 -07:00
Daniel Nephin f27934376d Fix test and lint failures
Split test cases.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-07-12 11:37:35 -04:00
Vincent Demeester 87345ed117 Merge pull request #277 from thaJeztah/dont-remove-what-isnt-there
Don't attempt to remove unsupported resources on older daemon
2017-07-12 10:43:54 +02:00
Vincent Demeester fa7687a362 Merge pull request #299 from dnephin/less-verbose-fake-cli
Less verbose fake cli
2017-07-12 09:56:43 +02:00
Daniel Nephin 42a3800783 Update some tests to remove unnecessary buffers.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-07-11 17:52:43 -04:00
Daniel Nephin 3da0cbfdd1 Remove unnecessary use of SetConfigfile
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-07-11 14:49:30 -04:00
Daniel Nephin 69b142b52a Update FakeCli to remove duplication in tests.
Use byte buffers by default, since that is what is done most of the time.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-07-11 14:49:30 -04:00
Daniel Nephin 102a8f0c9d Pin all tools used in the Dockerfiles
Also update gometalinter to use the official version. The update
found some new gosimple errors, which are fixed.

Also update the filewatcher script for the latest version of filewatcher.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-07-11 14:23:27 -04:00
Tycho Andersen 7d18477bc2 login: add a --password-stdin argument
This:

* conflicts with --password (naturally)
* conflicts with the absence of --username (both can't be grabbed by the
  stdin)
* strips a trailing newline off the password if it exists

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
2017-07-11 12:16:29 -06:00
Sebastiaan van Stijn 2429f15672
Don't attempt to remove unsupported resources on older daemon
When running `docker stack rm <some stack>` against an older daemon,
a warning was printed for "configs" being ignored;

    WARNING: ignoring "configs" (requires API version 1.30, but the Docker daemon API version is 1.26)

Given that an old daemon cannot _have_ configs, there should not be
a need to warn, or _attempt_ to remove these resources.

This patch removes the warning, and skips fetching (and removing)
configs.

A check if _secrets_ are supported by the daemon is also added,
given that this would result in an error when attempted against
an older (pre 1.13) daemon.

There is one situation where this could lead to secrets or
configs being left behind; if the client is connecting to a
daemon that _does_ support secrets, configs, but the API version
is overridden using `DOCKER_API_VERSION`, no warning is printed,
and secrets and configs are not attempted to be removed.

Given that `DOCKER_API_VERSION` is regarded a feature for
debugging / "power users", it should be ok to ignore this.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-07-11 10:29:03 -07:00
Sebastiaan van Stijn d8a2972cb1 Remove unused prune functions
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-07-10 13:27:19 -07:00
Vincent Demeester af6c0896f5 Merge pull request #298 from dnephin/fix-stack-out-stream
Fix stack output stream
2017-07-10 09:23:23 +02:00
Sebastiaan van Stijn 7ae9bc141c Merge pull request #259 from aaronlehmann/service-progress-surface-error
progress: Show task error in place of progress bar
2017-07-09 00:04:38 -07:00
Sebastiaan van Stijn c99530b1d2 Merge pull request #270 from tych0/warn-only-about-password-on-cli
login: print a big warning when using --password
2017-07-08 16:37:40 -07:00
Aaron Lehmann c9b92a328d progress: Light refactor
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-07-06 10:40:35 -07:00
Yassine TIJANI 45b0e7cf1a fixing SIGSEGV when running containers
Signed-off-by: Yassine TIJANI <yasstij11@gmail.com>

moving the deffering of the close after the error checking

Signed-off-by: Yassine TIJANI <yasstij11@gmail.com>

fixing SIGSEGV when running containers

Signed-off-by: Yassine TIJANI <yasstij11@gmail.com>
2017-07-06 18:57:36 +02:00
Vincent Demeester 1aa82bc7df Merge pull request #211 from ksouf/issue-37-add-tests-on-commands
adding network_create tests
2017-07-06 08:59:15 +02:00
Aaron Lehmann e672589ec0 Merge pull request #296 from thaJeztah/fix-error-overwrite
Fix error variable being overwritten
2017-07-05 19:26:27 -07:00
khaled souf 57c1551991 adding unit tests to network
Signed-off-by: khaled souf <khaled.souf@gmail.com>
2017-07-06 00:54:30 +02:00
Sebastiaan van Stijn 4d4c789cac
Fix error variable being overwritten
The `err` variable was set in a loop, so only
the last result was taken into account to return
"failure" or not.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-07-05 13:54:57 -07:00
Daniel Nephin 0030bfea9f Remove duplication in task formatting.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-07-05 13:40:47 -04:00
Daniel Nephin fb6deb1077 Fix stream for 'nothing found in stack' message
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-07-05 13:32:54 -04:00
Sebastiaan van Stijn e8080dd7e5
update tests for new image struct
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-07-04 20:34:24 -07:00
Daniel Nephin 3554d02f33 Merge pull request #276 from adshmh/add-unit-tests-to-checkpoint-package
add unit tests to checkpoint package
2017-07-04 11:17:25 -04:00
Victor Vieux 43fb4a4547 Merge pull request #243 from vieux/scale2
add `--detach` to docker scale
2017-07-04 16:36:59 +02:00
Vincent Demeester 85b41c3e71 Merge pull request #213 from dnephin/improve-swarm-ca-cmd
Refactor and UI changes to `swarm ca` command
2017-07-03 17:02:45 +02:00
Tycho Andersen c269ad26e8 login: print a big warning when using --password
Task command lines are world readable via /proc/pid/cmdline, so this isn't
safe.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
2017-07-03 08:47:20 -06:00
Victor Vieux 58d3fc24b1 scale all services at once
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
2017-07-03 13:40:54 +02:00
Arash Deshmeh b296abd542 add unit tests to cli/command/checkpoint package
Signed-off-by: Arash Deshmeh <adeshmeh@ca.ibm.com>
2017-06-30 17:17:47 -04:00
Daniel Nephin 379b762495 Merge pull request #273 from adshmh/add-unit-tests-to-task-package
add unit tests to task package
2017-06-30 11:41:24 -04:00