Commit Graph

345 Commits

Author SHA1 Message Date
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
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
8cec2a263a Define a context per request.
Avoid creating a global context object that will be used while the daemon is running.

Not only this object won't ever be garbage collected, but it won't ever be used for anything else than creating other contexts in each request. I think it's a bad practive to have something like this sprawling aroud the code.

This change removes that global object and initializes a context in the cases we don't have already one, like shutting down the server.
This also removes a bunch of context arguments from functions that did nothing with it.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 27c76522dea91ec585f0b5f0ae1fec8c255b7b22
Component: engine
2015-09-24 18:44:53 -04:00
bf44c732da Add context.RequestID to event stream
This PR adds a "request ID" to each event generated, the 'docker events'
stream now looks like this:

```
2015-09-10T15:02:50.000000000-07:00 [reqid: c01e3534ddca] de7c5d4ca927253cf4e978ee9c4545161e406e9b5a14617efb52c658b249174a: (from ubuntu) create
```
Note the `[reqID: c01e3534ddca]` part, that's new.

Each HTTP request will generate its own unique ID. So, if you do a
`docker build` you'll see a series of events all with the same reqID.
This allow for log processing tools to determine which events are all related
to the same http request.

I didn't propigate the context to all possible funcs in the daemon,
I decided to just do the ones that needed it in order to get the reqID
into the events. I'd like to have people review this direction first, and
if we're ok with it then I'll make sure we're consistent about when
we pass around the context - IOW, make sure that all funcs at the same level
have a context passed in even if they don't call the log funcs - this will
ensure we're consistent w/o passing it around for all calls unnecessarily.

ping @icecrime @calavera @crosbymichael

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 26b1064967d9fcefd4c35f60e96bf6d7c9a3b5f8
Component: engine
2015-09-24 11:56:37 -07:00
abf8c0902a Merge pull request #16517 from coolljt0725/show_help_all_the_time
Clean up: show usage when global --help present
Upstream-commit: 01670bec48e3302c3571e7369e57fa0f092bbdf2
Component: engine
2015-09-23 18:58:19 -04:00
55f78714ca Clean up: show usage when global --help present
Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: 4d55877e278ea62b98927c6b9fb23b4b935431c1
Component: engine
2015-09-23 05:17:03 -04:00
4168ba7ed4 docker restarts running OR stopped containers, docs edit rm "running"
Signed-off-by: Sally O'Malley <somalley@redhat.com>
Upstream-commit: e41753678d5ffd6c505f1984943bc36d34e134bb
Component: engine
2015-09-20 09:16:27 -04:00
3f59f642d4 Docs: correct the description of docker cp
Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: ee6b81faf2a6d49a53cc79571f5c96be4bdb8db0
Component: engine
2015-09-20 18:02:28 +08:00
b8b3d17b1b "docker network" missing from docker --help
Fixed issues related to network subcommand tests
- "network" in exempted list of short help check
- Condition for exact test modified to meet experimental commands
- Sorting of commands done in flags_experimental

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
Upstream-commit: 44da5c3de2c763c4bc42a74051ad7a37adf1f553
Component: engine
2015-09-04 15:34:17 +09:00
bfe1bbc7d2 Add volume API/CLI
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: b3b7eb2723461b1eb4be692f4bced0ae8ea9cb58
Component: engine
2015-08-26 13:37:52 -04:00
ad05d1ea8d Merge pull request #15125 from WeiZhang555/golint-stdcopy-system
fix golint warnings/errors on pkg/system and pkg/stdcopy
Upstream-commit: ecff4badcd98f749e5bd8511fbf4ca2c605db96c
Component: engine
2015-08-21 14:27:59 -07:00
a78072668a Initialize LogConfig in daemon mode
Signed-off-by: Marius Sturm <marius@graylog.com>
Upstream-commit: e904cbec03654765d65a29d6709d84ee43c7bde8
Component: engine
2015-08-15 18:06:03 +02:00
5e176c5f47 fix golint warnings/errors on pkg/system and pkg/stdcopy
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
Upstream-commit: 7e420ad8502089e66ce0ade92bf70574f894f287
Component: engine
2015-08-13 18:47:13 +08:00
f68b6c3486 Remove -h flag from completion and daemon reference
All docker subcommands support `-h` as an alias for `--help`
unless they have `-h` aliased to something else like `docker run`,
which uses `-h` for `--hostname`.

`-h` is not included in the help messages of the commands, though.

It ist visible in
* reference: only in `docker daemon` reference,
  see output of `grep -Rse --help=false docs`
* man pages: only in `docker` man page
  see output of `grep -RF '**-h**' man`

For consistency reasons, this commit removes `-h` as an alias for
`--help` from the reference page, man page and the bash completion.

Signed-off-by: Harald Albers <github@albersweb.de>
Upstream-commit: ceb11d966034f4b4308abf4fc2826b4c840b6e99
Component: engine
2015-08-11 07:30:58 -07:00
2c6e673ce7 typofix - https://github.com/vlajos/misspell_fixer
Signed-off-by: Veres Lajos <vlajos@gmail.com>
Upstream-commit: 514623272398574c8fd7ef3fe42c5b2ae161349a
Component: engine
2015-08-07 23:25:49 +01:00
508816d55a Add test to check if subcommands are sorted
Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
Upstream-commit: 4d212f7853912a2826e1cc725d831515553fde9c
Component: engine
2015-08-07 01:34:21 -07:00
f99b218f2a Remove key file when migration fails.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 07c45e499d5dc04b009d522ebbdcbfebe7e7aba9
Component: engine
2015-08-03 15:29:54 -07:00
af1a68305d Merge pull request #15168 from Microsoft/10662-daemonconfiglocation
Windows: [TP3] Move daemon config directory
Upstream-commit: 75c082c4b208fbba6608e7a5ea4959885d122f5a
Component: engine
2015-07-30 12:56:52 -07:00
76d46c7e63 Windows: Move daemon config directory
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 9ed4400baf21528644c608eeda24fda081dfc4f2
Component: engine
2015-07-30 12:39:19 -07:00
3f75e1a44a tlsconfig: better format for error message in tlsconfig
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: c7a04fda2ad804601385f054c19b69cf43fcfe46
Component: engine
2015-07-30 14:15:41 -04:00
18ba2e91f3 Merge pull request #15139 from tiborvass/fix-uuid-loggerf
Set uuid.Loggerf to nop on client and to logrus.Warnf on daemon
Upstream-commit: 28ac78c02f502858a243982fa84995bb389427a3
Component: engine
2015-07-29 18:17:54 -04:00
74a4e76af0 Set uuid.Loggerf to nop on client and to logrus.Warnf on daemon
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 7841d6ab9a58aff1d607eea7303c665c159ceaec
Component: engine
2015-07-29 17:49:59 -04:00
59df5a01ec make docker compile on freebsd
Signed-off-by: Alexey Guskov <lexag@mail.ru>
Upstream-commit: 26c03d561ab126287bb3034cc23477d18869a888
Component: engine
2015-07-29 21:25:56 +03:00
dcda9483a8 api/server fix golint errors/warnings.
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
Upstream-commit: 351f6b8ec011983d894951769c2116c9feaf81d2
Component: engine
2015-07-28 22:44:39 +00:00
5acbf86531 Windows: Factoring out unused fields
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 47c56e4353792e16f994a35ea4063768bee6590e
Component: engine
2015-07-27 17:44:18 -07:00
2db54e3ac2 Lint on pkg/* packages
- pkg/useragent
- pkg/units
- pkg/ulimit
- pkg/truncindex
- pkg/timeoutconn
- pkg/term
- pkg/tarsum
- pkg/tailfile
- pkg/systemd
- pkg/stringutils
- pkg/stringid
- pkg/streamformatter
- pkg/sockets
- pkg/signal
- pkg/proxy
- pkg/progressreader
- pkg/pools
- pkg/plugins
- pkg/pidfile
- pkg/parsers
- pkg/parsers/filters
- pkg/parsers/kernel
- pkg/parsers/operatingsystem

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 18c7c67308bd4a24a41028e63c2603bb74eac85e
Component: engine
2015-07-27 21:26:21 +02:00
12234c67d4 cli: new daemon command and new cli package
This patch creates a new cli package that allows to combine both client
and daemon commands (there is only one daemon command: docker daemon).

The `-d` and `--daemon` top-level flags are deprecated and a special
message is added to prompt the user to use `docker daemon`.

Providing top-level daemon-specific flags for client commands result
in an error message prompting the user to use `docker daemon`.

This patch does not break any old but correct usages.

This also makes `-d` and `--daemon` flags, as well as the `daemon`
command illegal in client-only binaries.

Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 96ce3a194aab2807fdd638825b9ea7cb9ba55c36
Component: engine
2015-07-23 19:44:46 -04:00
27f60d9502 fix mixed typo TlS -> TLS
Signed-off-by: Sevki Hasirci <s@sevki.org>
Upstream-commit: ce3156f1ebab0857b686682b317410f0eb27f6d5
Component: engine
2015-07-20 21:14:45 +03:00
e13211498b golint fix TLs->TLS in docker/
Signed-off-by: Sevki Hasirci <s@sevki.org>
Upstream-commit: 16ea3cf3a3cd0ce19f6c55138992442cd6cfddc8
Component: engine
2015-07-20 20:50:03 +03:00
fb988a52e9 add support for maximum log size, and max number of log files
Signed-off-by: wlan0 <sidharthamn@gmail.com>
Upstream-commit: 9b782d3af322bd8d9cf857d63eb7f2e0fe484c90
Component: engine
2015-07-02 06:26:06 -07:00
1296feade8 Windows: Graph driver implementation
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 52f4d09ffb376ffaa6677cb1e0413c6a97f53f24
Component: engine
2015-07-10 14:33:11 -07:00
5b7992c914 Merge pull request #12856 from duglin/ConfigLocation
Add support for DOCKER_CONFIG/--config to specify config file dir
Upstream-commit: 5bf98dd997bbc4db2a70594669457417498212bd
Component: engine
2015-07-10 23:05:49 +02:00
3e1377983b Add support for DOCKER_CONFIG/--config to specific config file dir
Carry #11675

Aside from what #11675 says, to me a key usecase for this is to support
more than one Docker cli running at the same time but each may have its
own set of config files.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: daced1d30345aca06857f874dfb48b7e90cb409b
Component: engine
2015-07-10 12:51:34 -07:00
b9f61dea35 Windows: Remove linux
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 7d3bbe9d34e3fc7351c8b612c6f0c9438d360a7a
Component: engine
2015-07-09 15:15:25 -07:00
23dd86bcae Unify docker commands' usage in man and help
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
Upstream-commit: f38232b475d126d6ea3a37d82be2c7269324e4ab
Component: engine
2015-07-02 10:33:26 +08:00
35e8f92672 Remove dead code
Signed-off-by: Antonio Murdaca <runcom@linux.com>
Upstream-commit: 927d13bc3c2030bb0e0429dbc500f13d72e7ccf6
Component: engine
2015-06-20 19:14:15 +02:00
69ff11d75b Fix DOCKER_TLS_VERIFY being ignored
DOCEKR_TLS_VERIFY was being ignored because we were just checking if the
`-tlsverify` flag was set, not the actual value, which is defaulted to
the value of `os.Getenv("DOCKER_TLS_VERIFY") != ""`

The problem that this specifically fixes is where the client has set the
`DOCKER_TLS_VERIFY` env var but is connecting to a daemon that is not
verifed.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 5a6a33f7acccc7394a5ac418e777d5a6e1d1b7ed
Component: engine
2015-06-16 12:04:00 -04:00
73b0733f08 docker/daemon: set umask to the default on startup
This sets up the umask so that it's the same on all systems.

Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
Upstream-commit: 6578ad90c307c5500a7998819743be88f63ef2b3
Component: engine
2015-06-15 16:47:20 +03:00
a180cd8538 Windows: Refactor daemon
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 8fb0ca2c35c0df38a79c4eac62fd7d04e3688240
Component: engine
2015-06-10 12:42:43 -07:00
67f2667620 Merge pull request #13022 from Microsoft/10662-addrsrc
Windows: Add resources for manifest and icon
Upstream-commit: a2ab067b3c56f6b296150531c94a05b357fc0d70
Component: engine
2015-06-08 15:16:10 -07:00
01de0478de Refactor TLS code with a new tlsconfig package
This patch creates a new `tlsconfig` package to handle creation of
secure-enough TLS configurations for clients and servers.

The package was created by refactoring TLS code in the client and the
daemon. After this patch, it is expected that all code creating TLS
configurations use this `tlsconfig` package for greater security,
consistency and readability.

On the server side, this fixes a bug where --tlsverify was not taken
into account. Now, if specified, it will require the client to
authenticate.

Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: bfed4b7cc3820ee3a74580aca55d5918bf05eef5
Component: engine
2015-06-05 12:38:38 -04:00
b199d8e0f8 Windows: Build docker.exe manifested and with icon
Signed-off-by: John Howard <John.Howard@microsoft.com>
Upstream-commit: fd935ee63db31e73b5ee5594644e04b959ead374
Component: engine
2015-06-04 11:49:10 -07:00
a4e456d439 fix experimental version and release script
add api version experimental

Signed-off-by: Jessica Frazelle <princess@docker.com>
Upstream-commit: b372f9f224d2dcc2a7beca55751782060dc9b12f
Component: engine
2015-05-29 10:00:22 -07:00
b53e996e55 Add suffix to experimental builds version
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Upstream-commit: 78578125ce6c534253d8d60c242d6993c569449e
Component: engine
2015-05-21 16:27:42 -07:00
045dd55a7d Add DOCKER_EXPERIMENTAL environment variable
The DOCKER_EXPERIMENTAL environment variable drives the activation of
the 'experimental' build tag.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Upstream-commit: ca6722f1c5e4e2017a71e33579d91ac0d9ea2a25
Component: engine
2015-05-20 12:21:17 -07:00
2095b80959 add link between -D and --log-level=debug back in
Due to popular demand :-)
See #11965

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: a85ca8b7c40f05f2b6471cc30fb8d5271605c1d1
Component: engine
2015-05-14 10:29:49 -07:00
af27a9480d Merge pull request #13106 from duglin/HumanizeCliErrors
Use stderr instead of logrus for CLI error messages
Upstream-commit: 56847ec4d4c24535bd8f4763e895f609eec9e8cf
Component: engine
2015-05-13 05:23:56 +02:00
d58b604612 Merge pull request #11965 from duglin/DEBUG
Remove use of "DEBUG" env var from CLI and de-couple -D from --log-level
Upstream-commit: 36d995a291c672205d1e8f93f19fb07de253c3d7
Component: engine
2015-05-12 18:24:04 -07:00
2e83148ffd Use stderr instead of logrus for CLI error messages
Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 0024935f641ab596732f9162d3eab795bbc2ae06
Component: engine
2015-05-12 17:22:41 -07:00