1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/api/client
Aaron Lehmann 572ce80230 Improved push and pull with upload manager and download manager
This commit adds a transfer manager which deduplicates and schedules
transfers, and also an upload manager and download manager that build on
top of the transfer manager to provide high-level interfaces for uploads
and downloads. The push and pull code is modified to use these building
blocks.

Some benefits of the changes:

- Simplification of push/pull code
- Pushes can upload layers concurrently
- Failed downloads and uploads are retried after backoff delays
- Cancellation is supported, but individual transfers will only be
  cancelled if all pushes or pulls using them are cancelled.
- The distribution code is decoupled from Docker Engine packages and API
  conventions (i.e. streamformatter), which will make it easier to split
  out.

This commit also includes unit tests for the new distribution/xfer
package. The tests cover 87.8% of the statements in the package.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-09 19:13:35 -08:00
..
inspect Implement all inspect commands with the new inspector interface. 2015-12-09 12:05:01 -05:00
lib Make the commit configuration to be a typed struct rather than accepting a string. 2015-12-09 12:06:58 -05:00
ps Update daemon and docker core to use new content addressable storage 2015-11-24 09:40:25 -08:00
attach.go Implement docker attach with standalone client lib. 2015-12-09 12:04:59 -05:00
build.go Improved push and pull with upload manager and download manager 2015-12-09 19:13:35 -08:00
cli.go Remove old http from the docker cli. 2015-12-09 12:05:00 -05:00
client.go Implement docker search with standalone client lib. 2015-12-09 12:05:00 -05:00
commit.go Make the commit configuration to be a typed struct rather than accepting a string. 2015-12-09 12:06:58 -05:00
cp.go Create interface that clients that talk to the api must fulfill. 2015-12-09 12:04:58 -05:00
create.go Implement docker pull with standalone client lib. 2015-12-09 12:05:00 -05:00
diff.go Implement docker diff with standalone client lib. 2015-12-09 12:04:53 -05:00
events.go Create interface that clients that talk to the api must fulfill. 2015-12-09 12:04:58 -05:00
exec.go Implement docker exec with standalone client lib. 2015-12-09 12:04:59 -05:00
export.go Implement docker export with standalone client lib. 2015-12-09 12:04:54 -05:00
hijack.go Remove old http from the docker cli. 2015-12-09 12:05:00 -05:00
history.go Implement docker history with the standalone client lib. 2015-12-09 12:04:54 -05:00
images.go Create interface that clients that talk to the api must fulfill. 2015-12-09 12:04:58 -05:00
import.go Create interface that clients that talk to the api must fulfill. 2015-12-09 12:04:58 -05:00
info.go Implement docker info with standalone client lib. 2015-12-09 12:04:54 -05:00
inspect.go Implement all inspect commands with the new inspector interface. 2015-12-09 12:05:01 -05:00
kill.go Implement docker kill with standalone client lib. 2015-12-09 12:04:55 -05:00
load.go Implement docker load with standalone client lib. 2015-12-09 12:04:55 -05:00
login.go Implement docker login with standalone client lib. 2015-12-09 12:04:55 -05:00
logout.go Use consistent command description 2015-10-08 08:46:21 -04:00
logs.go Create interface that clients that talk to the api must fulfill. 2015-12-09 12:04:58 -05:00
network.go Implement all inspect commands with the new inspector interface. 2015-12-09 12:05:01 -05:00
pause.go Implement docker pause with standalone client lib. 2015-12-09 12:04:56 -05:00
port.go Implement docker port with standalone client lib. 2015-12-09 12:04:56 -05:00
ps.go Create interface that clients that talk to the api must fulfill. 2015-12-09 12:04:58 -05:00
pull.go Implement docker pull with standalone client lib. 2015-12-09 12:05:00 -05:00
push.go Implement docker push with standalone client lib. 2015-12-09 12:05:00 -05:00
rename.go Implement container rename with standalone client lib. 2015-12-09 12:04:56 -05:00
restart.go Implement docker restart with standalone client lib. 2015-12-09 12:04:56 -05:00
rm.go Create interface that clients that talk to the api must fulfill. 2015-12-09 12:04:58 -05:00
rmi.go Create interface that clients that talk to the api must fulfill. 2015-12-09 12:04:58 -05:00
run.go Implement docker run with standalone client lib. 2015-12-09 12:04:59 -05:00
save.go Implement docker save with standalone client lib. 2015-12-09 12:04:56 -05:00
search.go Implement docker search with standalone client lib. 2015-12-09 12:05:00 -05:00
start.go Implement docker run with standalone client lib. 2015-12-09 12:04:59 -05:00
stats.go Implement docker stats with standalone client lib. 2015-12-09 12:05:00 -05:00
stats_unit_test.go Fix docker stats show blkio when there are multiple block devices. 2015-08-20 11:46:21 +08:00
stop.go Implement docker stop with standalone client lib. 2015-12-09 12:04:57 -05:00
tag.go Create interface that clients that talk to the api must fulfill. 2015-12-09 12:04:58 -05:00
top.go Implement docker top with standalone client lib. 2015-12-09 12:04:57 -05:00
trust.go Implement docker push with standalone client lib. 2015-12-09 12:05:00 -05:00
trust_test.go Changing trustServer allowed URL behavior 2015-10-08 17:47:25 -07:00
unpause.go Implement docker unpause with standalone client lib. 2015-12-09 12:04:57 -05:00
utils.go Remove old http from the docker cli. 2015-12-09 12:05:00 -05:00
version.go Implement docker version with standalone client lib. 2015-12-09 12:04:58 -05:00
volume.go Implement all inspect commands with the new inspector interface. 2015-12-09 12:05:01 -05:00
wait.go Implement docker wait with standalone client lib. 2015-12-09 12:04:58 -05:00