Commit Graph

1820 Commits

Author SHA1 Message Date
Brian Goff 160abfbeea Merge pull request #20803 from WeiZhang555/empty-stats-no-stream
Bug fix: stats --no-stream always print zero values
2016-03-05 08:47:41 -05:00
Zhang Wei ea86c30a4a Bug fix: stats --no-stream always print zero values
`docker stats --no-stream` always print zero values.

```
$ docker stats --no-stream
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %
NET I/O             BLOCK I/O
7f4ef234ca8c        0.00%               0 B / 0 B           0.00%
0 B / 0 B           0 B / 0 B
f05bd18819aa        0.00%               0 B / 0 B           0.00%
0 B / 0 B           0 B / 0 B

```

This commit will let docker client wait until it gets correct stat
data before print it on screen.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-03-05 13:22:26 +08:00
Antonio Murdaca 44b56341d9 Merge pull request #20943 from vdemeester/20942-fix-containerPsContext
Fix #20942 TestContainerPsContext unit test
2016-03-04 16:49:47 +01:00
Vincent Demeester 2787072a65 Try to fix #20942 TestContainerPsContext unit test
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-03-04 14:20:41 +01:00
Arnaud Porterie 52d4fff0d7 Merge pull request #20890 from riyazdf/notary-snapshot-remote
Rotate snapshot key to server when initializing new notary repos
2016-03-03 08:45:06 -08:00
Sebastiaan van Stijn 15e68dc8ee Merge pull request #20863 from thaJeztah/add-kernel-memory-warning
Add KernelMemory to "info" and show warning
2016-03-03 13:14:51 +01:00
Riyaz Faizullabhoy f75622e52a Rotate snapshot key to server when initializing new notary repos
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-02 16:51:32 -08:00
David Calavera f4cb5f4a32 Merge pull request #20824 from runcom/fix-creds-store
cliconfig: credentials: support getting all auths
2016-03-02 16:37:57 -08:00
Sebastiaan van Stijn 747a486b4a Add KernelMemory to "info" and show warning
This change adds "KernelMemory" to the /info endpoint and
shows a warning if KernelMemory is not supported by the kernel.

This makes it more consistent with the other memory-limit
options.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-02 23:32:25 +01:00
Vincent Demeester 508a17baba Merge pull request #20388 from hqhq/hq_add_cgroup_driver_info
Add CgroupDriver to docker info
2016-03-02 23:17:27 +01:00
Antonio Murdaca 0eccc3838e api: client: fix login/logout with creds store
Make sure credentials are removed from the store at logout (not only
in the config file). Remove not needed error check and auth erasing
at login (auths aren't stored anywhere at that point).
Add regression test.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-02 17:51:50 +01:00
Antonio Murdaca 44152144ca cliconfig: credentials: support getting all auths
docker build is broken because it sends to the daemon the full
cliconfig file which has only Email(s). This patch retrieves all auth
configs from the credentials store.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-02 17:48:56 +01:00
Qiang Huang ca89c329b9 Add CgroupDriver to docker info
Fixes: #19539

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-03-02 20:07:06 +08:00
Alexander Morozov 0a352e1a90 Remove some unused structs and fields
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-01 09:59:29 -08:00
Aaron Lehmann 2453262e7b Merge pull request #20565 from kencochrane/remove_email_on_login
Remove email address field from login
2016-03-01 08:02:16 -08:00
Ken Cochrane aee260d4eb Remove email address field from login
This removes the email prompt when you use docker login, and also removes the ability to register via the docker cli. Docker login, will strictly be used for logging into a registry server.

Signed-off-by: Ken Cochrane <kencochrane@gmail.com>
2016-02-29 17:53:27 -08:00
Arnaud Porterie 187a2fb403 Merge pull request #20792 from cpuguy83/more_stats_client_cleanup
Fixes issue with stats on start event
2016-02-29 17:33:37 -08:00
Brian Goff df95474885 Fixes issue with stats on start event
In situations where a client is called like `docker stats` with no
arguments or flags, if a container which was already created but not
started yet is then subsequently started it will not be added to the
stats list as expected.

Also splits some of the stats helpers to a separate file from the stats
CLI which is already quite long.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-29 16:34:42 -05:00
Sebastiaan van Stijn 29ce086e38 Merge pull request #20107 from calavera/client_auth_store
Client credentials store.
2016-02-29 22:31:34 +01:00
David Calavera 1ba0358a10 Merge pull request #20307 from HuKeping/trust
Refactor trust push
2016-02-29 11:12:09 -08:00
David Calavera cf721c23e7 Client credentials store.
This change implements communication with an external credentials store,
ala git-credential-helper. The client falls back the plain text store,
what we're currently using, if there is no remote store configured.

It shells out to helper program when a credential store is
configured. Those programs can be implemented with any language as long as they
follow the convention to pass arguments and information.

There is an implementation for the OS X keychain in https://github.com/calavera/docker-credential-helpers.
That package also provides basic structure to create other helpers.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-29 13:01:31 -05:00
Arnaud Porterie 3041aa53ef Fix client-side race in `docker stats`
Subscribe to events and monitor for new containers before the initial
listing of currently running containers.

This fixes a race where a new container could appear between the first
list call but before the client was subscribed to events, leading to a
container never appearing in the output of `docker stats`.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-28 18:44:23 -08:00
HuKeping 1a68662736 Messaging both succeed and failure about the signing
It would be good to add a clearer failure or succeed message.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2016-02-27 15:46:41 +08:00
HuKeping 5dddf7e98e Refactor trust push
Unlike the untrusted push without an explicit tag will push all
tags for that repo, the trusted push would expect an explicit tag.

So that the code that attempts to do smart logic around signing multiple
tags should be removed.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2016-02-27 15:46:35 +08:00
David Calavera a793564b25 Remove static errors from errors package.
Moving all strings to the errors package wasn't a good idea after all.

Our custom implementation of Go errors predates everything that's nice
and good about working with errors in Go. Take as an example what we
have to do to get an error message:

```go
func GetErrorMessage(err error) string {
	switch err.(type) {
	case errcode.Error:
		e, _ := err.(errcode.Error)
		return e.Message

	case errcode.ErrorCode:
		ec, _ := err.(errcode.ErrorCode)
		return ec.Message()

	default:
		return err.Error()
	}
}
```

This goes against every good practice for Go development. The language already provides a simple, intuitive and standard way to get error messages, that is calling the `Error()` method from an error. Reinventing the error interface is a mistake.

Our custom implementation also makes very hard to reason about errors, another nice thing about Go. I found several (>10) error declarations that we don't use anywhere. This is a clear sign about how little we know about the errors we return. I also found several error usages where the number of arguments was different than the parameters declared in the error, another clear example of how difficult is to reason about errors.

Moreover, our custom implementation didn't really make easier for people to return custom HTTP status code depending on the errors. Again, it's hard to reason about when to set custom codes and how. Take an example what we have to do to extract the message and status code from an error before returning a response from the API:

```go
	switch err.(type) {
	case errcode.ErrorCode:
		daError, _ := err.(errcode.ErrorCode)
		statusCode = daError.Descriptor().HTTPStatusCode
		errMsg = daError.Message()

	case errcode.Error:
		// For reference, if you're looking for a particular error
		// then you can do something like :
		//   import ( derr "github.com/docker/docker/errors" )
		//   if daError.ErrorCode() == derr.ErrorCodeNoSuchContainer { ... }

		daError, _ := err.(errcode.Error)
		statusCode = daError.ErrorCode().Descriptor().HTTPStatusCode
		errMsg = daError.Message

	default:
		// This part of will be removed once we've
		// converted everything over to use the errcode package

		// FIXME: this is brittle and should not be necessary.
		// If we need to differentiate between different possible error types,
		// we should create appropriate error types with clearly defined meaning
		errStr := strings.ToLower(err.Error())
		for keyword, status := range map[string]int{
			"not found":             http.StatusNotFound,
			"no such":               http.StatusNotFound,
			"bad parameter":         http.StatusBadRequest,
			"conflict":              http.StatusConflict,
			"impossible":            http.StatusNotAcceptable,
			"wrong login/password":  http.StatusUnauthorized,
			"hasn't been activated": http.StatusForbidden,
		} {
			if strings.Contains(errStr, keyword) {
				statusCode = status
				break
			}
		}
	}
```

You can notice two things in that code:

1. We have to explain how errors work, because our implementation goes against how easy to use Go errors are.
2. At no moment we arrived to remove that `switch` statement that was the original reason to use our custom implementation.

This change removes all our status errors from the errors package and puts them back in their specific contexts.
IT puts the messages back with their contexts. That way, we know right away when errors used and how to generate their messages.
It uses custom interfaces to reason about errors. Errors that need to response with a custom status code MUST implementent this simple interface:

```go
type errorWithStatus interface {
	HTTPErrorStatusCode() int
}
```

This interface is very straightforward to implement. It also preserves Go errors real behavior, getting the message is as simple as using the `Error()` method.

I included helper functions to generate errors that use custom status code in `errors/errors.go`.

By doing this, we remove the hard dependency we have eeverywhere to our custom errors package. Yes, you can use it as a helper to generate error, but it's still very easy to generate errors without it.

Please, read this fantastic blog post about errors in Go: http://dave.cheney.net/2014/12/24/inspecting-errors

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-26 15:49:09 -05:00
David Calavera 1ba44a832f Make server middleware standalone functions.
Removing direct dependencies from the server configuration.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-24 14:48:52 -05:00
Sebastiaan van Stijn 034a1a8dfd Merge pull request #20017 from calavera/expose_volumes_in_ps
Add mounts to docker ps.
2016-02-24 11:08:21 +01:00
David Calavera bd4fb00fb6 Add mounts to docker ps.
- Allow to filter containers by volume with `--filter volume=name` and `filter volume=/dest`.
- Show their names in the list with the custom format `{{ .Mounts }}`.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-23 12:10:24 -05:00
Brent Salisbury a499ad8e4e Fixed logrus client/server mismatch debug msg
Signed-off-by: Brent Salisbury <brent@docker.com>
2016-02-22 23:36:33 -05:00
Morgan Bauer 9021506502
consistent variable names in api/server/router
- banish 'daemon'

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2016-02-22 10:53:47 -08:00
Zhang Wei ff3ea4c90f Update RestartPolicy of container
Add `--restart` flag for `update` command, so we can change restart
policy for a container no matter it's running or stopped.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-20 17:06:32 +08:00
Brian Goff 0e72550c5b Merge pull request #20383 from HackToday/addsort
Make network ls output order
2016-02-19 15:42:48 -05:00
Brian Goff 48701888c2 Merge pull request #20389 from HackToday/addvolumesupport
Make volume ls output order
2016-02-19 15:41:34 -05:00
David Calavera 2e6c841b82 Merge pull request #17513 from aidanhs/aphs-expose-ipv6-default-bridge
Expose bridge IPv6 setting to `docker network inspect`
2016-02-18 10:35:04 -08:00
Brian Goff 1fb144cb23 Merge pull request #20365 from calavera/remove_debug_from_server
Remove all docker debugging knowledge from the server.
2016-02-18 12:06:23 -05:00
Kai Qiang Wu(Kennan) 60ffd6c880 Make volume ls output order
Fixes: #20384
Add order support for volume ls to make it easy
to external users to consume.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-17 09:01:27 +00:00
Kai Qiang Wu(Kennan) 838ed1866b Make network ls output order
Fixes: #20328
We sort network ls output with incresing order,
it may make output more easy to consume for users.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-17 04:35:36 +00:00
HuKeping 6b8a2a0fe4 Bugfix: the actions when pull from notary should not contains `push`
Signed-off-by: Hu Keping <hukeping@huawei.com>
2016-02-17 10:36:09 +08:00
David Calavera 80187df257 Merge pull request #19986 from vishh/expose-root-dir
Expose docker's root directory by default as part of `docker info`.
2016-02-16 12:57:57 -08:00
David Calavera e8f569b324 Remove all docker debugging knowledge from the server.
It should be explicitly told whether to enable the profiler or not.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-16 14:11:16 -05:00
Vishnu kannan 6a3176d4fe Expose docker's root directory by default as part of `docker info`.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-16 10:40:15 -08:00
Jess Frazelle 64a4605892 Merge pull request #20278 from aaronlehmann/build-authconfig
Pass authentication credentials through to build
2016-02-12 18:37:49 -05:00
Doug Davis 059ad5d0a9 Lower warning about old client to a debug
Ideally I would love to just remove this check entirely because its
seems pretty useless.  An old client talking to a new server isn't
an error condition, nor is it something to even worry about - its a normal
part of life.  Flooding my screen (and logs) with a warning that isn't
something I (as an admin) need to be concerned about is silly and a
distraction when I need to look for real issues.  If anything this should
be printed on the cli not the daemon since its the cli that needs to be
concerned, not the daemon.

However, since when you debug an issue it might be interesting to know the
client is old I decided to pull back a little and just change it from
a Warning to a Debug logrus call instead.

If others want it removed I still do that though  :-)

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-02-12 10:53:40 -08:00
Aaron Lehmann 6fed46aeb9 Pass authentication credentials through to build
In Docker 1.10 and earlier, "docker build" can do a build FROM a private
repository that hasn't yet been pulled. This doesn't work on master. I
bisected this to https://github.com/docker/docker/pull/19414.
AuthConfigs is deserialized from the HTTP request, but not included in
the builder options.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-12 10:50:16 -08:00
Aidan Hobson Sayers d736a9d2c3 Add docs for --ipv6 option, also add --internal as appropriate
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-02-12 01:42:15 +00:00
Victor Vieux 99a396902f fix common misspell
Signed-off-by: Victor Vieux <vieux@docker.com>
2016-02-11 15:49:36 -08:00
Aidan Hobson Sayers dfb00652aa Expose bridge IPv6 setting to `docker network inspect`
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-02-11 22:13:47 +00:00
Alexander Morozov 02a37a281c Merge pull request #20239 from calavera/remove_server_port_allocation
Move listeners and port allocation outside the server.
2016-02-11 13:50:48 -08:00
Vincent Demeester 312f5e435b Move getContext… function to builder package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-11 20:59:59 +01:00
David Calavera 34c29277c2 Move listeners and port allocation outside the server.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-11 14:42:49 -05:00
John Howard d4b0732499 Windows: Fix 'isolation'
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 13:19:19 -08:00
David Calavera 1af76ef597 Remove daemon dependency from api/server.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-10 15:16:59 -05:00
David Calavera e18eb6ef39 Merge pull request #20165 from vdemeester/move-validatecontextdirectory-to-builder
Move validateContextDirectory to builder package.
2016-02-10 08:35:25 -08:00
Antonio Murdaca c2ebdb3e57 Merge pull request #19835 from ncdc/resize-after-attach
Move resize after attaching
2016-02-10 15:32:51 +01:00
Vincent Demeester fc6122a947 Move validateContextDirectory to builder package.
This feels like it's where it belongs and it makes it exported
again (which is needed for libcompose that was using it before 1.10).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-09 22:19:09 +01:00
Brian Goff a77b7dd227 cleanup attach api calls
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-09 14:26:51 -05:00
Brian Goff ae4ee974e8 Move stream flushes to backend
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-09 14:25:02 -05:00
David Calavera 06d8f504f7 Move backend types to their own package.
- Remove duplicated structs that we already have in engine-api.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-08 12:42:17 -05:00
Lukas Waslowski dd93571c69 Decouple the "container" router from the actual daemon implementation.
This is done by moving the following types to api/types/config.go:
  - ContainersConfig
  - ContainerAttachWithLogsConfig
  - ContainerWsAttachWithLogsConfig
  - ContainerLogsConfig
  - ContainerStatsConfig

Remove dependency on "version" package from types.ContainerStatsConfig.
Decouple the "container" router from the "daemon/exec" implementation.

* This is done by making daemon.ContainerExecInspect() return an interface{}
value. The same trick is already used by daemon.ContainerInspect().

Improve documentation for router packages.
Extract localRoute and router into separate files.
Move local.router to image.imageRouter.

Changes:
  - Move local/image.go to image/image_routes.go.
  - Move local/local.go to image/image.go
  - Rename router to imageRouter.
  - Simplify imports for image/image.go (remove alias for router package).

Merge router/local package into router package.
Decouple the "image" router from the actual daemon implementation.
Add Daemon.GetNetworkByID and Daemon.GetNetworkByName.
Decouple the "network" router from the actual daemon implementation.

This is done by replacing the daemon.NetworkByName constant with
an explicit GetNetworkByName method.

Remove the unused Daemon.GetNetwork method and the associated constants NetworkByID and NetworkByName.

Signed-off-by: Lukas Waslowski <cr7pt0gr4ph7@gmail.com>
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-08 11:30:57 -05:00
Lei Jitang fae09e2569 Add progress bar to docker load
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-02-05 02:24:23 -05:00
Brian Goff 18204ea616 Merge pull request #19357 from chenchun/internal
Display `internal` flag on `network inspect`
2016-02-04 16:31:12 -05:00
David Calavera fe53be4e17 Apply context changes to the client.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-04 13:59:57 -05:00
Chun Chen c199506b59 Display `internal` flag on `network inspect`
Also adds internal network tests for bridge network

Signed-off-by: Chun Chen <ramichen@tencent.com>
2016-02-04 15:28:37 +08:00
Arnaud Porterie 243d0d6bbe Remove unnecessary call to /info
Avoid using the `/info` endpoint in the `login` and `logout` workflows
when the Registry endpoint is overriden by the user through the command
line.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-03 13:10:25 -08:00
Tibor Vass 7e236e623b Merge pull request #19975 from aaronlehmann/resolve-auth-config
Introduce a client-side version of resolveAuthConfig
2016-02-03 15:57:29 -05:00
Aaron Lehmann ff17cd0bf0 Introduce a client-side version of resolveAuthConfig
This is similar to the version in the registry package, but uses the
daemon's default index (as opposed to the default for the client's
platform) if using the "official index".

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-03 11:01:29 -08:00
Arnaud Porterie 8ee7ad2209 Enable cross-platforms logout from Registry
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-03 10:32:22 -08:00
Zhang Wei 894266c1bb Remove redundant error message
Currently some commands including `kill`, `pause`, `restart`, `rm`,
`rmi`, `stop`, `unpause`, `udpate`, `wait` will print a lot of error
message on client side, with a lot of redundant messages, this commit is
trying to remove the unuseful and redundant information for user.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-03 15:45:20 +08:00
Alexander Morozov 1bc4c99372 Merge pull request #19761 from HackToday/enhancesortattr
Sort the attributes for events
2016-02-02 16:08:23 -08:00
Alexander Morozov 83ee24e52b Merge pull request #19911 from Microsoft/jstarks/npipe
Windows: Add support for named pipe protocol
2016-02-02 15:59:45 -08:00
Arnaud Porterie 85a32baa3b Merge pull request #19901 from calavera/debug_cli_tests
Always show debug information in the info output
2016-02-02 15:56:55 -08:00
Victor Vieux 0fd9b4067d fix error message on version too low
Signed-off-by: Victor Vieux <vieux@docker.com>
2016-02-02 14:16:15 -08:00
David Calavera 9f315dd328 Add regression tests for client debug flag.
- Add client debug info to the `docker info` command.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-02 16:57:36 -05:00
John Starks 0906195fbb Windows: Add support for named pipe protocol
This adds an npipe protocol option for Windows hosts, akin to unix
sockets for Linux hosts. This should become the default transport
for Windows, but this change does not yet do that.

It also does not add support for the client side yet since that
code is in engine-api, which will have to be revendored separately.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-02-01 19:46:30 -08:00
Tibor Vass ec6bfebc0f Merge pull request #19907 from tiborvass/tty-debug
Prevent stdin from hanging
2016-02-01 21:57:32 -05:00
Brian Goff 3c0c115ec8 Merge pull request #19896 from calavera/same_rm_error_message
Make error message consistent when removing containers fail.
2016-02-01 21:19:42 -05:00
Tibor Vass 51795c0836 Skip Close()-ing stdin on Darwin. The Return.
This was accidentally removed in https://github.com/docker/docker/pull/16289
Now adding it back.

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-02-01 20:38:01 -05:00
Tibor Vass 19eaa71e85 Merge pull request #19891 from icecrime/windows_login_issue
Enable cross-platforms login to Registry
2016-02-01 19:50:54 -05:00
Arnaud Porterie 680cf1c8f4 Merge pull request #19553 from anusha-ragunathan/rm-daemonbuilder
Remove package daemonbuilder.
2016-02-01 13:20:00 -08:00
David Calavera 245d6e83a9 Merge pull request #19416 from mlaventure/warn-on-rm-detach
Print an info message when detaching a container started with --rm
2016-02-01 13:17:23 -08:00
David Calavera 50de9fdff1 Make error message consistent when removing containers fail.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-01 15:32:50 -05:00
Arnaud Porterie 960710bd81 Enable cross-platforms login to Registry
Use a daemon-defined Registry URL for `docker login`. This allows a
Windows client interacting with a Linux daemon to properly use the
default Registry endpoint instead of the Windows specific one.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-01 11:18:54 -08:00
Anusha Ragunathan 9c332b164f Remove package daemonbuilder.
Currently, daemonbuilder package (part of daemon) implemented the
builder backend. However, it was a very thin wrapper around daemon
methods and caused an implementation dependency for api/server build
endpoint. api/server buildrouter should only know about the backend
implementing the /build API endpoint.

Removing daemonbuilder involved moving build specific methods to
respective files in the daemon, where they fit naturally.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-02-01 09:57:38 -08:00
Kai Qiang Wu(Kennan) 746f6af9aa Sort the attributes for events
This is add support for #19559
We tried sort it in client side, and it sort follow go
sort : sorts a slice of strings in increasing order.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-01 00:18:33 +00:00
Brian Goff d695cf8de7 Merge pull request #19638 from runcom/remove-redunant-function
cleanup and move stuff where needed
2016-01-30 10:12:38 -05:00
Doug Davis 80c7258e11 Merge pull request #19852 from WeiZhang555/warn-info
Change log level
2016-01-30 09:58:47 -05:00
Vincent Demeester 6b57380173 Merge pull request #19646 from nishanttotla/19277-CustomInfoField
Display SystemStatus field in docker info
2016-01-30 11:48:01 +01:00
Zhang Wei 98f74f8383 Change log level
Warning should be printed with real `logrus.Warn`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-30 18:46:16 +08:00
Nishant Totla 6c5e8dd4c2 Adding SystemStatus field for /info endpoint
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
2016-01-29 16:26:43 -08:00
Kenfe-Mickael Laventure 1ebeb2c9b4 Print an info message when detaching a container started with --rm
Closes #17516

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-01-29 13:19:23 -08:00
Liu Hua 755df347fb forbid login of a null-string username
With this patch, the client blocks this type login, no sending
useless messages to daemon and registry. This saves lots of time.

Signed-off-by: Liu Hua <sdu.liu@huawei.com>
2016-01-29 22:39:22 +08:00
Antonio Murdaca a7d1aeceec postImagesCreate: move auth config decode when it's needed
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-29 14:07:54 +01:00
Antonio Murdaca 505a56d6da api: client: remove redunant function to encode auth
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-29 14:07:54 +01:00
Vincent Demeester 6c6729ef5b Merge pull request #19793 from calavera/full_login_prompt
Always prompt for a password when asking for credentials.
2016-01-29 12:39:57 +01:00
Brian Goff 0b7acaf4b9 Merge pull request #19733 from calavera/auth_error_on_post_create
Respond with 401 when there is an unauthorized error from the registry.
2016-01-28 13:44:58 -05:00
David Calavera 8ed06af044 Always prompt for a password when asking for credentials.
There is a weird behavior where we don't ask for a password
when the user you type in the prompt is the same you have configured
in the config file.

This is the source of many frustrations and also a bug.
If the authentication with a registry fails because the password
is incorrect, we won't ask for the password again with the current logic.

With this change, we also stop calling `CmdLogin` directly when
authentication fails. We don't need to parse flags from the cli or
setting up input destriptiors again, like the current behavior is doing.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-27 18:26:48 -05:00
David Calavera 7bca932182 Respond with 401 when there is an unauthorized error from the registry.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-27 13:55:33 -05:00
Daehyeok Mun b78c736356 Remove output file when save/export fail
Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2016-01-26 22:12:31 -07:00
Arnaud Porterie fd5013e4fa Merge pull request #19569 from aidanhs/aphs-fix-options-api
Permit OPTIONS request against any url, fixes #19398
2016-01-26 13:39:51 -08:00
Aleksa Sarai 4357ed4a73 *: purge dockerinit from source code
dockerinit has been around for a very long time. It was originally used
as a way for us to do configuration for LXC containers once the
container had started. LXC is no longer supported, and /.dockerinit has
been dead code for quite a while. This removes all code and references
in code to dockerinit.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-01-26 23:47:02 +11:00
Tibor Vass 07e2dedecb Merge pull request #19057 from dnephin/remove_version_from_registry_pkg
Remove dockerversion from registry package
2016-01-25 22:45:06 -08:00
Andy Goldstein 7a948f6a96 Move resize after attaching
Resize by +1 when attaching to force redrawing.

Start monitoring window size after the attach begins instead of before. This way, you see the output
from the container without having to manually resize or hit enter. This makes attach consistent with
run and exec.

Signed-off-by: Andy Goldstein <agoldste@redhat.com>
2016-01-24 02:24:00 -05:00
Aidan Hobson Sayers ada7920479 Permit OPTIONS request against any url, fixes #19398
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-01-23 00:31:08 +00:00
Qiang Huang 603bc69b2c Fix comment about swap limit of docker update
The description "set `-1` to disable swap" is wrong, `build`,
`create` and `run` already fixed, we need to fix `update` as well.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-01-21 13:48:53 +08:00
Michael Crosby a1eb6029cc Move tty set and restore to caller
Fixes #19506

This fixes the issue of errors on create and the tty not being able to
be restored to its previous state because of a race where it was
in the hijack goroutine.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-01-20 13:32:19 -08:00
Alexander Morozov 3dc8829a83 Remove obsolete comment
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-19 12:17:40 -08:00
Antonio Murdaca 167cc42986 api: client: build: do not fall through if git isn't installed
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-19 16:50:14 +01:00
Brian Goff b6be645197 Merge pull request #19420 from clnperez/close-notify-fix
Move closeNotify to fix panic with newer golang
2016-01-18 20:08:25 -05:00
Antonio Murdaca a495c148a5 Merge pull request #19414 from anusha-ragunathan/postBuild
Make daemonbuilder.Docker leaner.
2016-01-18 21:46:49 +01:00
Christy Perez 2df5dafdaf Move closeNotify to fix panic with newer golang
This is happening now due to improvements in net/http:
99fb19194c

To test, change the go version in the Dockerfile:
-ENV GO_VERSION 1.5.3
+ENV GO_VERSION 1.6beta2

More info here: https://github.com/golang/go/issues/14001

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2016-01-18 14:24:25 -06:00
Anusha Ragunathan 14215ed5a1 Make daemonbuilder.Docker leaner.
Currently builder.Backend is implemented by daemonbuilder.Docker{} for
the daemon. This registration happens in the API/server code. However,
this is too implementation specific. Ideally we should be able to specify
that docker daemon (or any other) is implementing the Backend and abstract
the implementation details. So we should remove package daemonbuilder
dependency in build_routes.go

With this change, daemonbuilder.Docker is nothing more than the daemon.
A follow on change will remove the daemonbuilder package and move relevant
methods under daemon, so that API only knows about the backend.

Also cleanup code in api/client/build.go. docker cli always performs build
context tar download for remoteURLs and sends an empty remoteContext. So
remove relevant dead code.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-01-18 09:16:11 -08:00
Daniel Nephin 61a49bb6ba Remove the use of dockerversion from the registry package
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-15 12:43:54 -05:00
Tibor Vass a0fab35fe8 Bump API Version to v1.23
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-01-15 10:44:02 -05:00
Jess Frazelle 4c89b1f72c Merge pull request #19355 from riyazdf/notary-revendor
notary revendor into docker
2016-01-15 01:02:35 -08:00
Riyaz Faizullabhoy dd7436c832 revendor notary and wrap friendlier error messages
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-01-14 20:35:59 -08:00
Wen Cheng Ma 5cc672b006 Add Subnets info for user-defined network
* If user doesn't specify the subnets to create a network, it will pick
  subnets from inside preferred pool. This PR aims to inspect these subnets info

* Add integration tests for docker inspect the subnets.

* docker-py project is already synchronized.

* jenkins checks depend on https://github.com/docker/docker-py/pull/888

Fixes issue #18626

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-15 10:03:29 +08:00
Arnaud Porterie 6add477c91 Merge pull request #19308 from estesp/better-warning-msg
Better warning message on OOM kill disable without mem limit
2016-01-14 16:49:38 -08:00
Sebastiaan van Stijn e44364eae9 Merge pull request #18587 from calavera/daemon_configuration_file
Allow to set daemon and server configurations in a file.
2016-01-14 16:44:58 -08:00
David Calavera 677a6b3506 Allow to set daemon and server configurations in a file.
Read configuration after flags making this the priority:

1- Apply configuration from file.
2- Apply configuration from flags.

Reload configuration when a signal is received, USR2 in Linux:

- Reload router if the debug configuration changes.
- Reload daemon labels.
- Reload cluster discovery.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-14 16:44:37 -05:00
Tibor Vass e35f5a481a Merge pull request #17316 from rmb938/ipam_conf_options
Add IPAM Config Options to match libnetwork
2016-01-14 16:30:03 -05:00
Ryan Belgrave 662cac08ef Add IPAM Config Options to match libnetwork
Signed-off-by: Ryan Belgrave <rmb1993@gmail.com>
2016-01-14 14:32:25 -05:00
Madhu Venugopal dda513ef65 Network scoped alias support
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-14 08:44:41 -08:00
Tibor Vass 59231ea6d8 Merge pull request #19312 from cpuguy83/19177_fix_debug_req_dump_size
Don't dump request body when too large
2016-01-14 09:06:02 -05:00
Madhu Venugopal b464f1d78c Forced endpoint cleanup
docker's network disconnect api now supports `Force` option which can be
used to force cleanup an endpoint from any host in the cluster.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-13 21:28:52 -08:00
Brian Goff 89af3835d4 Don't dump request body to log when too large
Fixes an issue where a client can send a large body but specifiy
application/json as the content-type, and cause Docker to consume lots
of RAM while trying to buffer the body so it can be dumped to the debug
log.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-13 17:01:35 -05:00
Tibor Vass 612cf0f172 Merge pull request #19279 from tiborvass/rename-authz-to-authorization
Rename authz to authorization for greater clarity
2016-01-13 14:30:18 -05:00
David Calavera c8cc4fb8d9 Merge pull request #19283 from tonistiigi/fix-permission-build-stdin
Avoid extracting to temp directory on building from tar
2016-01-13 11:17:37 -08:00
Tibor Vass 5c630ea7c3 Rename authz to authorization for greater clarity
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-01-13 14:15:37 -05:00
Phil Estes 4983e5807e Better warning message on OOM kill disable without mem limit
Modify the warning to be more readable/understandable.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-13 10:40:49 -08:00
Chun Chen b70954e60a Add network interal mode
Signed-off-by: Chun Chen <ramichen@tencent.com>
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-13 11:30:36 -05:00
Antonio Murdaca a79f96828f Merge pull request #19249 from calavera/carry_17414
[Carry 17414] Added additional container information to "docker info".
2016-01-13 10:42:22 +01:00
Tonis Tiigi 42961a66a5 Avoid extracting to temp directory on building from tar
Fixes #15785

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-12 17:43:52 -08:00
Madhu Venugopal e221b8a3d6 Support `--link` for user-defined networks
This brings in the container-local alias functionality for containers
connected to u ser-defined networks.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-12 13:38:48 -08:00
Qiang Huang f4a687334b Change OomKillDisable to be pointer
It's like `MemorySwappiness`, the default value has specific
meaning (default false means enable oom kill).

We need to change it to pointer so we can update it after
container is created.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
(cherry picked from commit 9c2ea42329179c589f5a8991ccf0253eb10fc897)

Conflicts:
	vendor/src/github.com/docker/engine-api/types/container/host_config.go
2016-01-12 13:19:17 -05:00
David Calavera 0627bf1a83 Do not force network disconnection.
Let that for a future flag.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-12 13:19:17 -05:00
Sebastiaan van Stijn 1393c450cd Merge pull request #19104 from vdemeester/18957-update-config
Add a specific config struct for the update command (#18957)
2016-01-12 09:46:19 -08:00
Vincent Demeester a4f6920731 Add a specific config for the update command
This allows to define clearly what is mutable or not in a container
and remove the use of the internal HostConfig struct to be used.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-12 08:33:41 +01:00
Kim Eik e732f4e649 Added additional container information to "docker info".
Instead of just showing the number of containers this patch will
show the number of running, paused and stopped containers as well.

Signed-off-by: Kim Eik <kim@heldig.org>
(cherry picked from commit a9804ab1cb117a132cbf460067d55f5146d50956)
2016-01-11 19:14:44 -05:00
Arnaud Porterie fe3d1f9dd7 Merge pull request #19198 from sanimej/vin
Vendoring libnetwork
2016-01-10 11:46:34 -08:00
Michael Crosby 2892de760f Merge pull request #18840 from aaronlehmann/trust-messages
Send push information to trust code out-of-band
2016-01-08 16:56:57 -08:00
Santhosh Manohar 64a6dc3558 Docker changes for libnetwork vendoring..
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-01-08 14:13:55 -08:00
Alexander Morozov 807d575b5e Merge pull request #19135 from Microsoft/jjh/securitywarning
Windows: Fix security warning regression
2016-01-08 13:55:41 -08:00
Arnaud Porterie 05de2aadff Merge pull request #19001 from aboch/pip
Allow user to choose the IP address for the container
2016-01-08 11:49:20 -08:00
Aaron Lehmann 65370be888 Send push information to trust code out-of-band
The trust code used to parse the console output of `docker push` to
extract the digest, tag, and size information and determine what to
sign. This is fragile and might give an attacker control over what gets
signed if the attacker can find a way to influence what gets printed as
part of the push output.

This commit sends the push metadata out-of-band. It introduces an `Aux`
field in JSONMessage that can carry application-specific data alongside
progress updates. Instead of parsing formatted output, the client looks
in this field to get the digest, size, and tag from the push.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 10:57:50 -08:00
Jess Frazelle 1c979f7587 Merge pull request #18887 from riyazdf/notary-delegations
notary delegation integration into docker
2016-01-08 10:37:55 -08:00
Alessandro Boch 2bb3fc1bc5 Allow user to choose the IP address for the container
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-08 10:09:16 -08:00
Riyaz Faizullabhoy 1c32a66877 update tests and error messages, revendor notary with tag
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-01-08 09:11:33 -08:00
Antonio Murdaca 018081d5a9 Merge pull request #19058 from dnephin/move_opts_to_runconfig_opts
Move some opts validators to runconfig/opts where they are used
2016-01-08 12:34:49 +01:00
cyli 1db0c7bb01 Add an integration test for docker being able to push to a repo with delegations.
Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-01-07 19:35:45 -08:00
Riyaz Faizullabhoy 1c125f50cf Notary delegation integration into docker
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-01-07 19:35:45 -08:00