Commit Graph

4961 Commits

Author SHA1 Message Date
9019dbd01c Merge pull request #32668 from darrenstahlmsft/CleanupEmpty
Windows: Do not clean empty windowsfilter folder
Upstream-commit: b8e9250b59de8619b94f7532c0fc182913028f1e
Component: engine
2017-04-20 14:55:45 +02:00
347c2cd583 Windows: Do not attempt to clean empty windowsfilter folder
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: 5e4e357f6e53ed9aeb0d4988d8c780acd5da3ed5
Component: engine
2017-04-17 13:10:15 -07:00
1053121285 Fix tmp folder deletion
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: 5cea9a0aa557401447d440ce2286be19f8fe3cc2
Component: engine
2017-04-17 13:09:40 -07:00
d44cde780d Merge pull request #32614 from aaronlehmann/testify
Remove pkg/testutil/assert in favor of testify
Upstream-commit: 1eec7b5583662d82c39510e54e050b21ebf11a18
Component: engine
2017-04-17 11:07:08 -04:00
142883d5b3 Remove pkg/testutil/assert in favor of testify
I noticed that we're using a homegrown package for assertions. The
functions are extremely similar to testify, but with enough slight
differences to be confusing (for example, Equal takes its arguments in a
different order). We already vendor testify, and it's used in a few
places by tests.

I also found some problems with pkg/testutil/assert. For example, the
NotNil function seems to be broken. It checks the argument against
"nil", which only works for an interface. If you pass in a nil map or
slice, the equality check will fail.

In the interest of avoiding NIH, I'm proposing replacing
pkg/testutil/assert with testify. The test code looks almost the same,
but we avoid the confusion of having two similar but slightly different
assertion packages, and having to maintain our own package instead of
using a commonly-used one.

In the process, I found a few places where the tests should halt if an
assertion fails, so I've made those cases (that I noticed) use "require"
instead of "assert", and I've vendored the "require" package from
testify alongside the already-present "assert" package.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 6052f2b3969feadb01662d8e2f30337d9c7f61af
Component: engine
2017-04-14 12:03:21 -07:00
62078c31fe Hide zero-valued timestamps from service JSON
It was possible to see output like this:

        "UpdateStatus": {
            "State": "updating",
            "StartedAt": "2017-04-14T17:10:03.226607162Z",
            "CompletedAt": "1970-01-01T00:00:00Z",
            "Message": "update in progress"
        }

The timestamp fields were already changed to pointers, and left nil if
the timestamp value was zero. However the zero-value of a timestamp from
gRPC is different from the value Go considers to be zero. gRPC uses the
Unix epoch instead of Go's epoch. Therefore, check that the timestamp
does not match the Unix epoch.

Also, add " ago" to the timestamps as shown in "docker service inspect
--pretty", as they are shown as relative times.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 8a27758364a151d9497cbb507463e81898579c37
Component: engine
2017-04-14 10:44:24 -07:00
9b0f3956d8 Merge pull request #32449 from aaronlehmann/cluster-locking
cluster: Allow reentrant calls to methods during shutdown
Upstream-commit: 01c80435c6cef5730e51fa848b5771232b40e143
Component: engine
2017-04-12 18:58:12 -07:00
866adfbbee Merge pull request #28923 from erikh/fix-copy
Fix copy API (`docker cp`, etc) uid/gid handling
Upstream-commit: d40a17ffc2f6592396a3dfc0f5ebe396c2107536
Component: engine
2017-04-12 08:21:17 -07:00
4d6ef8b711 Merge pull request #32529 from runcom/relabel-secrets
daemon: relabel secrets path
Upstream-commit: 2aec48f44843016d13dfe4b5f53d29d0226fc769
Component: engine
2017-04-12 08:30:30 -04:00
1386ad9dee daemon/archive.go: Fix copy routines to preserve UID.
This changes the long-standing bug of copy operations not preserving the
UID/GID information after the files arrive to the container.

Signed-off-by: Erik Hollensbe <github@hollensbe.org>
Upstream-commit: 8a7ff5ff746a77e0be601c11540562341b2228c1
Component: engine
2017-04-12 10:33:19 +00:00
3323cc5ab7 add service convert tests
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: dc762610ab538bb7909eeb6ca13ada83e3d409b4
Component: engine
2017-04-11 14:02:02 -04:00
26d7ec7da8 return exec.Controller instead of nil
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 3a9be929272d089d57745350b8888760a18b2526
Component: engine
2017-04-11 14:02:02 -04:00
3cad237312 updates for review comments
- runtimeUrl -> type_url
- runtimes -> runtime

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 8c2c69d31ec0ce4a9b125ca3cbf7b04ee81ce579
Component: engine
2017-04-11 14:02:01 -04:00
21134b3d48 filter services by runtime; default to container
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: f71bdc67a21a63b901e484a0650bea36d15eece5
Component: engine
2017-04-11 14:02:01 -04:00
5d661a7bc0 add support for swarmkit generic runtime
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: e06e2ef107ad09191bfea3dfe51cfa830114b54b
Component: engine
2017-04-11 14:02:01 -04:00
218a4e5c97 daemon: relabel secrets path
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
Upstream-commit: b11af7b2f686fe3724d0cfce260000a3d2b8fbc1
Component: engine
2017-04-11 17:43:23 +02:00
c0ea8e35b1 Merge pull request #32503 from dongluochen/fix_startperiod
fix gRPC serialization for healthcheck start-period
Upstream-commit: b93db343630119b186294e50216b76190b942c98
Component: engine
2017-04-11 10:19:16 -04:00
d2aa64e45c Merge pull request #32284 from aaronlehmann/fix-service-defaults
Improve default handling for "service create"
Upstream-commit: a258ef58d8a100467d5d948b026a884ebe58eaf4
Component: engine
2017-04-11 13:06:53 +02:00
89e454a1d4 Merge pull request #31954 from darrenstahlmsft/GraphdriverReference
Windows: Fix reference counting in graphdriver
Upstream-commit: a6746e6ca5da6df6af9d93fc51149c35d58a55fd
Component: engine
2017-04-10 20:23:15 -07:00
9c833700c4 Merge pull request #32092 from alfred-landrum/gdcaps
Let graphdrivers declare diff stream fidelity
Upstream-commit: 74093fe4ca259c5378da89098c48fb7b1167732e
Component: engine
2017-04-10 18:20:32 -07:00
72f89cba18 Windows: Fix reference counting in graphdriver
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: 7fab9b8a6054270763508ce88cb06c584cfeb153
Component: engine
2017-04-10 17:13:17 -07:00
a06cb35e0f fix gRPC serialization for healthcheck start-period
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
Upstream-commit: caab178509b9da0194b3a45286ff6f253fec667c
Component: engine
2017-04-10 17:02:58 -07:00
3d267a0dc8 Change "service inspect" to show defaults in place of empty fields
This adds a new parameter insertDefaults to /services/{id}. When this is
set, an empty field (such as UpdateConfig) will be populated with
default values in the API response. Make "service inspect" use this, so
that empty fields do not result in missing information when inspecting a
service.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 1d274e9acfe96b98be3ec956636ff4e5c70e98af
Component: engine
2017-04-10 13:41:16 -07:00
88f1fa957c Merge pull request #32479 from aboch/vnd
Do not error out on serv bind deactivation if no sbox is found
Upstream-commit: 129d1f7051d77278bcc918b4fd2e848292d74f84
Component: engine
2017-04-10 22:16:04 +02:00
ef02a743db Merge pull request #28403 from cpuguy83/logging_plugins
Implement plugins for logging drivers
Upstream-commit: 28334c1d829b9ea8ac7e10d45a6db37c3821d5db
Component: engine
2017-04-10 21:57:56 +02:00
e5dfac43c9 Merge pull request #31148 from yongtang/31032-NanoCPU-update
Add `--cpus` support for `docker update`
Upstream-commit: 5b1cae227171a299e41835a4806cd939b984c596
Component: engine
2017-04-10 20:02:15 +02:00
6d75b7a10d Merge pull request #30740 from yongtang/29999-prune-filter-label
Add `label` filter for `docker system prune`
Upstream-commit: 4460312ce1a53316e3c474ab951b85e737a902c5
Component: engine
2017-04-10 19:38:01 +02:00
276ea6a456 Implement plugins for logging drivers
Logging plugins use the same HTTP interface as other plugins for basic
command operations meanwhile actual logging operations are handled (on
Unix) via a fifo.

The plugin interface looks like so:

```go
type loggingPlugin interface {
  StartLogging(fifoPath string, loggingContext Context) error
  StopLogging(fifoPath)
```

This means a plugin must implement `LoggingDriver.StartLogging` and
`LoggingDriver.StopLogging` endpoints and be able to consume the passed
in fifo.

Logs are sent via stream encoder to the fifo encoded with protobuf.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 27bd6842f8518780b99fdb42f8e7f84c17856d87
Component: engine
2017-04-10 13:17:20 -04:00
bad834206e Do not error out on serv bind deactivation if no sbox is found
- If the nw sbox is not there, then there is nothing to deactivate.

Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 2418f257675807e5ae578137af48a2622797b746
Component: engine
2017-04-10 09:13:41 -07:00
3d6e7463ee Fix missing Init Binary in docker info output
- Moved DefaultInitBinary from daemon/daemon.go to
daemon/config/config.go since it's a daemon config and is referred in
config package files.
- Added condition in GetInitPath to check for any explicitly configured
DefaultInitBinary. If not, the default value of DefaultInitBinary is
returned.
- Changed all references of DefaultInitBinary to refer to the variable
from new location.
- Added TestCommonUnixGetInitPath to test for the various values of
GetInitPath.

Fixes #32314

Signed-off-by: Sunny Gogoi <indiasuny000@gmail.com>
Upstream-commit: 17b128876028022991e2dbcb2cc402cc81b451e5
Component: engine
2017-04-10 16:54:07 +05:30
c7be93cd96 Merge pull request #32436 from thaJeztah/refactor-tiny-version-parsing
Refactor tiny version parsing
Upstream-commit: 51aa2a226e21e20c5b4634a28245c760f4e18f37
Component: engine
2017-04-08 17:36:40 +02:00
36c4c39157 Refactor "init" version parsing, and add unit-test
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 72eddf4258db8c10b145ded188d13c50e4a5530b
Component: engine
2017-04-08 11:28:37 +02:00
e2a7ae61b2 cluster: Allow reentrant calls to methods during shutdown
The agent sometimes calls into libnetwork code that in turn calls
(*Cluster).IsAgent and (*Cluster).IsManager. These can cause the
node shutdown process to time out, since they wait for a lock that is
held by Cleanup.

It turns out c.mu doesn't need to be held while calling Stop. Holding
controlMutex is sufficient. Also, (*nodeRunner).Stop must release
nodeRunner's mu during the node shutdown process, otherwise the same
call into Cluster would be blocked on this lock instead.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 44ce809c954eec6755ba975ab7fe1c11ebbdfed2
Component: engine
2017-04-07 19:21:10 -07:00
137edd889c Merge pull request #32339 from aluzzardi/selinux
services: Add support for Credential Spec and SELinux
Upstream-commit: 091b5e68ea735bf4e8ece708bbc8c413a32eab73
Component: engine
2017-04-08 01:37:17 +02:00
ddc6479238 Merge pull request #32154 from dperny/refactor-logs
Refactor logs and support service logs with TTY 
Upstream-commit: 4a1a64c67768d6fbcf20a1b37ee58212b7e870c6
Component: engine
2017-04-07 18:06:50 -04:00
e41369fcc4 services: Add support for Credential Spec and SELinux
- Defined "normalized" type for Credential Spec and SELinux
- Added --credential-spec to docker service create & update
- SELinux is API only at the time

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Upstream-commit: 89a995a9d77cc4f95a29579e0a2b12cb3d805749
Component: engine
2017-04-07 11:30:54 -07:00
593669c329 Merge pull request #32283 from aboch/clearingress
Daemon to take care of ingress cleanup on cluster leave and graceful shutdown
Upstream-commit: 87562af45bf32efce55d9fceb141a655b82a33c4
Component: engine
2017-04-07 20:09:27 +02:00
e48f925bda Fix tini version parsing
Invalid version strings for the init (tini)
binary were still accepted, which lead to (e.g.)

"hello world"

Being used as "vhello world"

This makes the version parsing slightly stricter

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 984d99e19cd5fbc6889528c9588f4875e3c40cc5
Component: engine
2017-04-07 17:12:07 +02:00
f6c6c2dac3 Merge pull request #30261 from aaronlehmann/rollout-mode
swarm: Add update/rollback order
Upstream-commit: 3de58eb2bca720be0f5940cdd928de7a96220174
Component: engine
2017-04-06 22:41:11 -04:00
be0fe36691 Merge pull request #30669 from catinthesky/issue30580
Fixing issue of docker top command failure when dealing with -m option
Upstream-commit: 7d8bf5d177127c61208e397bf8cf53b2f52ac9e7
Component: engine
2017-04-06 21:14:26 -04:00
334f054f13 refactor logs and support service logs /w tty
Refactor container logs system to make communicating log messages
internally much simpler. Move responsibility for marshalling log
messages into the REST server. Support TTY logs. Pave the way for fixing
the ambiguous bytestream format. Pave the way for fixing details.

Signed-off-by: Drew Erny <drew.erny@docker.com>
Upstream-commit: 1044093bb0aa12eb8972361a93b9bc8c4ddd857b
Component: engine
2017-04-06 17:54:11 -07:00
1623433ab1 Add support for update order
This parameter controls the order of operations when rolling out an
update task. Either the old task is stopped before starting the new one,
or the new task is started first, and the running tasks will briefly
overlap.

This commit adds Rollout to the API, and --update-order / --rollback-order
flags to the CLI.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 9b54994a8ada6ae15a4d2c3b925568e2061200ad
Component: engine
2017-04-06 17:23:36 -07:00
ba4f1c70ab Add --cpus support for docker update
This fix tries to address the issue raised in 31032 where it was
not possible to specify `--cpus` for `docker update`.

This fix adds `--cpus` support for `docker update`. In case both
`--cpus` and `--cpu-period/--cpu-quota` have been specified,
an error will be returned.

Related docs has been updated.

Integration tests have been added.

This fix fixes 31032.

This fix is related to 27921, 27958.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 61022436926a8d0c92068e8116a2ad77f43eb6d6
Component: engine
2017-04-06 15:40:12 -07:00
83d9648a45 Add label filter for docker system prune
This fix tries to address the issue raised in 29999 where it was not
possible to mask these items (like important non-removable stuff)
from `docker system prune`.

This fix adds `label` and `label!` field for `--filter` in `system prune`,
so that it is possible to selectively prune items like:
```
$ docker container prune --filter label=foo

$ docker container prune --filter label!=bar
```

Additional unit tests and integration tests have been added.

This fix fixes 29999.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 702524732427ce028277f99f215e1fab297e6001
Component: engine
2017-04-06 09:11:25 -07:00
e25f6c5a1b Added start period option to health check.
Signed-off-by: Elias Faxö <elias.faxo@gmail.com>
Upstream-commit: e401f63735d8ebcff387c571d1f61ce52bdea86e
Component: engine
2017-04-06 12:35:34 +02:00
7647ce4c36 Re-vendor docker/swarmkit to d2e48a332063ccd4ea26b6262ee717de997de560
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Upstream-commit: 367b57d9859d2e3b4a651eb31d2d17f425329783
Component: engine
2017-04-05 18:49:23 -07:00
55def0f77c Daemon to take care of ingress cleanup on leave & shutdown
Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 6f4bb796ddb82d04a1c379a950db93bc61c64c04
Component: engine
2017-04-05 16:31:43 -07:00
3d4ee5930c Merge pull request #32268 from cpuguy83/volume_err_obfuscate
don't obfuscate error during volume create
Upstream-commit: b7c3b312c92c6a0f897379f583befa6b5ab9c4fe
Component: engine
2017-04-05 09:05:10 -04:00
1eb46d2b87 Merge pull request #32350 from vdemeester/start-stack-trap-earlier
Start the stack trap earlier for daemon
Upstream-commit: 5f14f4a94928a4de60944eb822cc379ab1aee7e3
Component: engine
2017-04-04 23:56:36 +02:00
b9f1a5c537 Start the stack trap earlier for daemon
That way we can get stack dump earlier if there is something that
locks the daemon during start/restore phase.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 94d44066f3abb7c7eea7fcb81e8419ae7331d1fd
Component: engine
2017-04-04 16:23:14 +02:00