Commit Graph

485 Commits

Author SHA1 Message Date
d7444aebe0 Dump request when daemon is set to debug
Uses a new middleware which calls httputils.DumpRequest which is output
to `logrus.Debug`.
This is implemented in a separate middleare so that we only have to
check the logging level when the router is instantiated rather than at
every request.
If this was just `logrus.Debug(httputil.DumpRequest(...))`, the
DumpRequest would be called on each request requardless of logging
level set on the daemon.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 37dbe075196d638d6bd417716deaf067247ee966
Component: engine
2015-10-23 09:04:32 -04:00
6672204b41 Merge pull request #17136 from gesellix/change-route-volume-create
rename `POST /volumes` to `POST /volumes/create`
Upstream-commit: 492945235b6be7f2f7ff8721de0c01a93d0b0f6f
Component: engine
2015-10-21 10:21:27 -07:00
b4f9b290d4 Merge pull request #17128 from calavera/network_controller_enabled
Do not initialize the networking routes when netController is not enabled.
Upstream-commit: 82a8a14c4d039579f80b640b5f815964e99db746
Component: engine
2015-10-19 16:13:31 -04:00
33442d477a Merge pull request #16957 from MHBauer/eventsservice-refactor
refactor access to daemon member EventsService
Upstream-commit: b27fa6c58e020b35d725b89badb82dbbc5cb84bc
Component: engine
2015-10-19 11:45:29 -07:00
b8b4d2b3f7 Return 404 for all network operations without network controller.
This will prevent the api from trying to serve network requests in
systems where libnetwork is not enabled, returning 404 responses in any
case.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: eb982e7c00192c8306f9c420fb469f087c7b161d
Component: engine
2015-10-19 14:40:18 -04:00
a641f84771 Merge pull request #17125 from calavera/check_exec_start_json
Check the content type is json when calling exec start.
Upstream-commit: bb085b76619e8e73e39f68efb1b407e16da67822
Component: engine
2015-10-19 18:44:42 +02:00
ab68eef7dd refactor access to daemon member EventsService
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
Upstream-commit: 2abf5d986ec6779555ea615763d3ffccede6121a
Component: engine
2015-10-19 09:41:29 -07:00
f37af18747 Merge pull request #17115 from mountkin/tag-on-build
Proposal: emit a "tag" event when building image with "-t" parameter
Upstream-commit: e62fd33d963cdba947a9ef5abe100a9d85c58f24
Component: engine
2015-10-19 12:35:58 -04:00
f0927e3716 Check the content type is json when calling exec start.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 45dc57f22931e6cb8ad522602da8aa985bddcfab
Component: engine
2015-10-19 11:46:44 -04:00
12d92cfae8 emit a "tag" event when building image with "-t" parameter
This is useful for cluster systems such as swarm to sync the image
state when new images are successfully built.

Signed-off-by: Shijiang Wei <mountkin@gmail.com>
Upstream-commit: 2968fa44eb2a53c121ad2b27c519ae47ca7653c3
Component: engine
2015-10-19 20:09:14 +08:00
4a78d859fe rename POST /volumes to POST /volumes/create to be consistent with the other POST /.../create endpoints
see #17132

Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Upstream-commit: 0c95eeb584f5033e1f1cc8eb383306b87d3f133f
Component: engine
2015-10-17 14:13:40 +02:00
08be0c3eb3 Pass network driver option in docker network command
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: 6f3eb994b52dac9e336db9fe9f204e120553e8a7
Component: engine
2015-10-16 14:33:54 -07:00
27566cbbc9 Merge pull request #16966 from MHBauer/image-refactor
refactor use of container struct from daemon
Upstream-commit: 32ead68e9f233ae809c8928a74700748c50fa3c0
Component: engine
2015-10-15 07:30:08 -04:00
f38f3109c2 Remove defensive check of mux vars handling.
We should not check if the mux framework internals work as expected in every handler.
The missing parameter error doesn't make sense from the user point of view.

This change initializes a proper vars context if the mux fails to do so and delegates
specific parameter error checks to the handlers.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 389ce0aae6a303660e591ef80272322ac82854e2
Component: engine
2015-10-14 10:31:09 -07:00
182a4806ba refactor use of container struct from daemon
- do existence check instead of get container
 - new connect method on daemon.
 - cli network disconnect integration test

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
Upstream-commit: a0398fbd197b5c4cf261b702ba1a1f924d6134e8
Component: engine
2015-10-13 16:34:28 -07:00
0e3861a2d2 Merge pull request #16910 from mavenugo/ipam
Vendoring libnetwork for the pluggable IPAM driver support
Upstream-commit: 4ea3ff70618d28520d2ae787bd00206d05c9f1db
Component: engine
2015-10-13 14:41:19 -07:00
019ffb819f Merge pull request #15796 from azurezk/add-size-to-inspect
add container size info to inspect
Upstream-commit: ce607916e9b4e294e66188bbaf50acaa86e3909f
Component: engine
2015-10-13 23:16:10 +02:00
7a285e518e IPAM API & UX
introduced --subnet, --ip-range and --gateway options in docker network
command. Also, user can allocate driver specific ip-address if any using
the --aux-address option.
Supports multiple subnets per network and also sharing ip range
across networks if the network-driver and ipam-driver supports it.
Example, Bridge driver doesnt support sharing same ip range across
networks.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: cc6aece1fdefbc10638fe9e462a15608c6093115
Component: engine
2015-10-13 11:03:03 -07:00
2cd0b95af5 Docker side changes for the newly introduced IPAM driver
* Made use of IPAM driver primitives for legacy IP configurations
* Replaced custom Generics with backend labels

Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: 0f351ce3643a97d4b6af0021826b851f9ba41967
Component: engine
2015-10-13 10:52:59 -07:00
647970c93e refactor use of container struct from daemon
- use Exists instead of Get
 - push Get inside of daemonbuilder

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
Upstream-commit: 844fb2961976d1bca52cc8560abf6b1ac2ae754a
Component: engine
2015-10-12 16:20:55 -07:00
deb9d3a7fc Merge pull request #16865 from MHBauer/registry-service-refactor
refactor away direct references to daemon member
Upstream-commit: 6e12d9fe62f201dac221be5064e743f59f9a1953
Component: engine
2015-10-11 21:47:58 +02:00
9375e8c909 add size to inspect
Signed-off-by: Zhang Kun <zkazure@gmail.com>
Upstream-commit: b4d6b23838bb7d8436a1966fc3ef3ade83544d58
Component: engine
2015-10-10 20:44:29 +08:00
93c2a19d83 Add user namespace (mapping) support to the Docker engine
Adds support for the daemon to handle user namespace maps as a
per-daemon setting.

Support for handling uid/gid mapping is added to the builder,
archive/unarchive packages and functions, all graphdrivers (except
Windows), and the test suite is updated to handle user namespace daemon
rootgraph changes.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
Upstream-commit: 442b45628ee12ebd8e8bd08497896d5fa8eec4bd
Component: engine
2015-10-09 17:47:37 -04:00
8d04ef47a0 refactor away direct references to daemon member
- add daemon methods Authenticate & SearchRegistryForImages
 - use new methods instead of directly accessing RegistryService

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
Upstream-commit: 215bfc73d2f162e2c4fdc306923de8ca4788d389
Component: engine
2015-10-09 14:40:03 -07:00
abbfb24add continue daemon refactor of Repositories()
- use daemon member directly rather than through a function call
 - create GetImage method for use external to deamon

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
Upstream-commit: ee36b57c8f3c33f1c50ecb4305bd62a962876fe6
Component: engine
2015-10-08 15:06:55 -07:00
a78c0b3db5 Merge pull request #16638 from MHBauer/daemon-derepo
refactor daemon image tagging
Upstream-commit: 67e38cc54cf528206aa150b05680748943764df8
Component: engine
2015-10-08 14:14:20 -07:00
510810895d Merge pull request #16366 from MHBauer/logs-refactor
refactor logs to not use internal data structures
Upstream-commit: 01cd67e752aa8a2a7fa9605d5c53bc95862a4d7b
Component: engine
2015-10-08 14:05:02 -07:00
eae331677d Merge pull request #16826 from LK4D4/refactor_listenfd
Refactor listenFD function
Upstream-commit: caf7d83c676857243629d1c60fd4def158675b6b
Component: engine
2015-10-08 22:08:52 +02:00
e20529cb2b Merge pull request #16785 from cpuguy83/exec_cleanup
Cleanup some issues with exec
Upstream-commit: cc411c054ffc16fff1ec27b49047ff7dba6a1e04
Component: engine
2015-10-08 12:02:03 -07:00
8c3d5b861b refactor logs to not use internal data structures
- refactor to make it easier to split the api in the future
 - additional tests for non existent container case

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
Upstream-commit: 1eecc1e7e57f3b96878df01fd32596bc485117a8
Component: engine
2015-10-07 15:44:16 -07:00
254c913ad5 refactor daemon
- create pass through in daemon for access to functions on daemon
   member
 - import image
push image
export image and corrections
lookup image & comments
load image
list images
image history & comments

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
Upstream-commit: 77c592d26a83aa5a56726d6e1741f18f044e64ab
Component: engine
2015-10-07 15:29:02 -07:00
074778dab7 Refactor listenFD function
* fixed weird logic with "*"
* return error if fdNum is failed to parse
* check if listener at offset is nil
* close unused listeners

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: fb04043ca52f316ad9cea32ba44a168a68558356
Component: engine
2015-10-07 14:26:48 -07:00
b0a8b96c68 Return listenbuffer behavior
Now we're start to serve early, but all Accept calls are intercepted by
listenbuffer or systemd socket.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: 281a48d092fa84500c63b984ad45c59a06f301c4
Component: engine
2015-10-07 14:18:42 -07:00
6b3f6691b5 Merge pull request #16645 from mavenugo/ux
Docker Network UX & remote API changes
Upstream-commit: 8e31036816e200dfe54cc2205235de7dea54bcd0
Component: engine
2015-10-07 10:44:58 -07:00
8623fdfb48 Network remote APIs using new router, --net=<user-defined-network> changes
* Moving Network Remote APIs out of experimental
* --net can now accept user created networks using network drivers/plugins
* Removed the experimental services concept and --default-network option
* Neccessary backend changes to accomodate multiple networks per container
* Integration Tests

Signed-off-by: David Calavera <david.calavera@gmail.com>
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: 2ab94e11a2a8499088a72ab27fd09e897d8c810a
Component: engine
2015-10-07 03:54:19 -07:00
5a9d726a00 Merge pull request #16147 from tiborvass/refactor-builder
Refactor builder with new Go interfaces
Upstream-commit: 2606a2e4d3bf810ec82e373a6cd334e22e504e83
Component: engine
2015-10-06 20:36:07 -04:00
d8db4defa7 Abstract builder and implement server-side dockerfile builder
This patch creates interfaces in builder/ for building Docker images.
It is a first step in a series of patches to remove the daemon
dependency on builder and later allow a client-side Dockerfile builder
as well as potential builder plugins.

It is needed because we cannot remove the /build API endpoint, so we
need to keep the server-side Dockerfile builder, but we also want to
reuse the same Dockerfile parser and evaluator for both server-side and
client-side.

builder/dockerfile/ and api/server/builder.go contain implementations
of those interfaces as a refactoring of the current code.

Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: e0ef11a4c2c6789e08b61df082b5b9aa70898e7a
Component: engine
2015-10-06 19:10:19 -04:00
f9c704604b Merge pull request #16786 from LK4D4/fix_systemd_serve
Remove wait on start channel for butts socket
Upstream-commit: c1c3475c6afa44a0328dc7a09839f9eee0fe105d
Component: engine
2015-10-06 14:04:15 -07:00
cb460a3ef9 Cleanup some issues with exec
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 561005e5ca00a8c24e83294e7005bdaf32f19d5a
Component: engine
2015-10-06 15:22:20 -04:00
f3b76452e9 Remove wait on start channel for systemd socket
Because Serve will be called after daemon creation

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: 806e4c4a02d1f7b7bf05b29ecb0a3009098b26ac
Component: engine
2015-10-05 17:41:25 -07:00
40cd5f11ba Fix daemon logs so that "API listen on" is INFO not ERROR
W/o this PR the logs would show:
```
ERRO[0000] API listen on [::]:2375
ERRO[0000] API listen on /var/run/docker.sock
```
which is misleading since these aren't "errors" they're just informational.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: cc833c5e2bee651ee55378fbaa8302df60571400
Component: engine
2015-10-05 16:17:25 -07:00
5d2ec8fed8 Move builder files to builder/dockerfile
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: f41230b93a77ca7f4d84718f39a4847b6117f694
Component: engine
2015-10-05 18:26:47 -04:00
0eed66fc40 Merge pull request #16769 from LK4D4/fix_volume_socket
Allocate resources for server API before daemon creation
Upstream-commit: 80f2e3f0c6d8c439ba0d4b53162dcf1610ad2d46
Component: engine
2015-10-05 20:48:41 +02:00
c12ca2de3a Allocate resources for server API before daemon creation
It prevents occupying of those resources (ports, unix-sockets) by
containers.
Also fixed false-positive test for that case.

Fix #15912

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: 5eda566f937dddef9d4267dd8b8b1d8c3e47b290
Component: engine
2015-10-05 09:32:08 -07:00
1dfde818a2 Resolves #16458 - filter events by labels.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 08b117517d6d6b5daebe4c056c135e1598f44385
Component: engine
2015-10-02 16:33:20 -04:00
a9fcaeb043 Make exec start return proper error codes
Exec start was sending HTTP 500 for every error.

Fixed an error where pausing a container and then calling exec start
caused the daemon to freeze.

Updated API docs which incorrectly showed that a successful exec start
was an HTTP 201, in reality it is HTTP 200.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 2d43d93410c29cec87deb9cd940c3b2a8af5fbbb
Component: engine
2015-10-02 14:40:22 -04:00
1fb74bb17c Separate API router from server.
Implement basic interfaces to write custom routers that can be plugged
to the server. Remove server coupling with the daemon.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: da982cf5511814b6897244ecaa9c016f8800340a
Component: engine
2015-09-29 19:43:03 -04:00
a6a6684e96 Use golang.org/x/net/context in api/server/
This patch removes the internal context package and uses golang's
package instead.

Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 94e3b0f4288cdff767817b751e9a318e665ea7ac
Component: engine
2015-09-29 17:40:55 -04:00
69db6279aa Revert "Merge pull request #16228 from duglin/ContextualizeEvents"
Although having a request ID available throughout the codebase is very
valuable, the impact of requiring a Context as an argument to every
function in the codepath of an API request, is too significant and was
not properly understood at the time of the review.

Furthermore, mixing API-layer code with non-API-layer code makes the
latter usable only by API-layer code (one that has a notion of Context).

This reverts commit de4164043546d2b9ee3bf323dbc41f4979c84480, reversing
changes made to 7daeecd42d7bb112bfe01532c8c9a962bb0c7967.

Signed-off-by: Tibor Vass <tibor@docker.com>

Conflicts:
	api/server/container.go
	builder/internals.go
	daemon/container_unix.go
	daemon/create.go
Upstream-commit: b08f071e18043abe8ce15f56826d38dd26bedb78
Component: engine
2015-09-29 14:26:51 -04:00
fef14476a9 Revert "Merge pull request #16567 from calavera/context_per_request"
This reverts commit ff92f45be49146cd7ac7716c36d89de989cb262e, reversing
changes made to 80e31df3b6fdf6c1fbd6a5d0aceb0a148066508c.

Reverting to make the next revert easier.

Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 79c31f4b13d331d4011b2975a96dcdeab2036865
Component: engine
2015-09-29 13:40:46 -04:00