Commit Graph

126 Commits

Author SHA1 Message Date
e0dfea89d2 Change default values for devicemapper as variable instead of env
Upstream-commit: 3a246ac3d1368931998a082043c9b719dd3c10cd
Component: engine
2013-10-16 20:42:50 +00:00
9c9b801114 Hack: don't run integration tests in /var/lib/docker/unit-tests; add missing cleanups in a few tests
Upstream-commit: 1da335f784882292fb55b25bf255ec5f45072ea4
Component: engine
2013-10-16 20:10:20 +00:00
05176434d1 WIP: debugging dm-base-hash + dm-refactor-init
Upstream-commit: cd61fb2e6f9d2a7bbd3c4db2ab9091674746126d
Component: engine
2013-10-15 23:56:04 +00:00
58a19a7d93 Merge branch 'dm-refactor-init' into dm
Conflicts:
	runtime_test.go
Upstream-commit: fdba1aeed8c80b3c2f8cd14c3b393581e7ef99a8
Component: engine
2013-10-15 23:27:28 +00:00
9549f4f9e3 Merge branch 'dm-missing-mapper' into dm
Upstream-commit: 54b0cd7cd1cbea8ca35716bd1b4a20a1900029f4
Component: engine
2013-10-15 22:51:20 +00:00
80b9a304af Merge branch 'dm-fix-test-2' into dm
Upstream-commit: 66db2ac9d8176a847936afbad901e97249c27f37
Component: engine
2013-10-15 22:42:49 +00:00
246243d186 Add filesystemtype for containers
If no type is specified then assume aufs.
Upstream-commit: 80bd64245f14d4d8a6fc8349cff8b441d770da42
Component: engine
2013-10-15 11:49:13 -07:00
5b6d6020fa Initialize devicemapper in NewRuntimeFromDIrectory
Upstream-commit: 7093411a8dd36612ddc636c14395e33ecff47f7f
Component: engine
2013-10-15 03:53:48 +00:00
3b33148b08 Make sure the base device is well created before running the tests
Upstream-commit: 5778ed7db2fee3b7005a53a06d010272504924e9
Component: engine
2013-10-14 18:36:18 -07:00
b5fc16147b Ignore cleanup with /dev/mapper does not exist
Upstream-commit: 5dd12ba20a962c0f67e5eefb7b0e00e5caccb1e1
Component: engine
2013-10-14 14:23:58 -07:00
4088975de9 Merge pull request #2182 from dotcloud/cleanup-dm-unittests
Clean up better from previous unit-test runs
Upstream-commit: 79c0c4470f095cf30138dd4b5f19ad737497e9bd
Component: engine
2013-10-14 12:29:59 -07:00
83a87303bf Merge pull request #2183 from dotcloud/migrate-aufs
Migrate aufs to new device mapper backend
Upstream-commit: 4dedd9a9aac47669df24c9c6c96e2e3a6b28ed0d
Component: engine
2013-10-14 12:28:28 -07:00
1bca3c7d07 Add error return to cleanup, use os.OpenFile instead of syscall.Open, Make sure the pools are removed after all other devices
Upstream-commit: ea92dc2e8c42c4387eccf1ebb88e20ccc92c1853
Component: engine
2013-10-14 12:26:46 -07:00
c072ec522a Change the base filesystem size in unit tests
Upstream-commit: 48070274ee93bf0d4cef7486a4ec19c4d97ac9ce
Component: engine
2013-10-12 15:06:53 -07:00
a829b7de69 Verbose migration add warning for running container
Conflicts:
	hack/make.sh
	runtime.go
	runtime_test.go
Upstream-commit: 562e4f1e23a52cff05078f68e21199514ba58250
Component: engine
2013-10-11 17:11:18 -07:00
53581a197d Clean up better from previous unit-test runs
This makes sure we unmount existing mounts (as well as removing the
devmapper devices), and it fails with proper logs rather than just
panic()ing.
Upstream-commit: e7986da531568040e0185aafce03cdae2169baac
Component: engine
2013-10-11 16:42:11 -07:00
715688eb5e Merged master into device-mapper branch
Upstream-commit: 1804fcba93368b4e115f607e060eb345b0594e62
Component: engine
2013-10-10 12:50:30 -07:00
4d7c2bfb0d Merge pull request #2133 from dotcloud/improve_tests
Make sure to close the network allocators
Upstream-commit: ded74b0bb37d328a8c1a69f1f9b9aca2bba58199
Component: engine
2013-10-09 15:45:16 -07:00
177e714a8f replace panic by log.Fatal in tests
Upstream-commit: 823174de4d1acb93613c1b5ba53873906f43f62c
Component: engine
2013-10-09 13:47:49 +00:00
921ffe0649 Make sure to close the network allocators
Upstream-commit: 9107565d0634ea3eed3290c6c4b6c0f006fdefe8
Component: engine
2013-10-08 15:42:02 -07:00
b3baf515e4 Tests: Initialize devicemapper early to avoid it happening in a test
This can take a while and may cause some tests to timeout
Upstream-commit: aaf1f73bcc2c594f07254a98ff77de3cc6351e92
Component: engine
2013-10-04 15:47:43 +02:00
c413093856 Be better at cleaning up leftover from earlier test runs
When running the test inside a docker container we sometimes are left with
leftover device nodes for device mapper devices that no longer exist.
We were panic:ing in this case, but with this change we just remove such
nodes.
Upstream-commit: 7b58e15b08349dba35bf3813f77a0b900c2e4df5
Component: engine
2013-10-03 19:54:14 +02:00
715ce06407 go fmt and aufs support removed
Upstream-commit: ebfa24acb08504d8da3fcba8da897fed357f34b2
Component: engine
2013-09-26 15:40:13 +00:00
1812696aef Revert "add a -mount-method flag"
This reverts commit e52d756f40c9ccf8b37ca496cb72be057c909ed7.
Upstream-commit: 5e1d540209342fa2d6e2ab7117062a897ccf8fe8
Component: engine
2013-09-26 15:14:03 +00:00
4c426bcdc1 add a -mount-method flag
Upstream-commit: c1e25d7273f7f520a0dbac675db4e7e26c8a4a9b
Component: engine
2013-09-26 15:10:01 +00:00
71899158fd Tests: Clean up any old devmapper leftovers before starting tests
Upstream-commit: 03320f0d1c5a687ec46cbf6d836cc91576b3b225
Component: engine
2013-09-26 15:09:33 +00:00
f35010d2a6 runtime test: Ensure all containers are unmounted at nuke()
Otherwise we may leave around e.g. devmapper mounts
Upstream-commit: 67788723c99cda8b41e5a488b988e2a72732d684
Component: engine
2013-09-26 15:09:33 +00:00
51abe008c8 deviceset: Cleanup device sets on test end
We unmount all mounts and deactivate all device mapper devices to
make sure we're left with no leftovers after the test.
Upstream-commit: c6e8813c979bbea8832f47dc6468e805a1a18c3e
Component: engine
2013-09-26 15:09:32 +00:00
a4196242f7 Always start tests from a clean set of loopback images
This way we don't get any issues with leftovers
Upstream-commit: 261b0b01dffde42595d987b609d38c3b6d8368f7
Component: engine
2013-09-26 15:09:31 +00:00
1c3fa571b9 tests: Store the loopback images for test outside unit-tests
This directory is copied to each test prefix which is really
slow with the large loopback mounts.
Upstream-commit: a7fd1fce5d6fb29a8c627022da7cbbf0f4b740c7
Component: engine
2013-09-26 15:09:31 +00:00
1e89c8ec2f Reuse a single DeviceSetDM for all the tests
We wrap the "real" DeviceSet for each test so that we get only
a single device-mapper pool and loopback mounts, but still
separate out the IDs in the tests. This makes the test run
much faster.
Upstream-commit: d47c18c5fbe50a2ad6ec011704f86a3c27360ff9
Component: engine
2013-09-26 15:09:31 +00:00
2a4e60c781 Delete corresponding Devices when deleting Images
If an image is deleted and there is a corresponding device
for that image we also delete the image.
Upstream-commit: 3f3f5f0bbaafc67d3f77b920194f8d7bfb7bf6ee
Component: engine
2013-09-26 15:09:31 +00:00
19e1e13936 Runtime: Add DeviceSet singleton
This adds a DeviceSet singleton to the Runtime object which will be used for
any DeviceMapper dependent code.
Upstream-commit: f317a6b6fe31685445ac97a1475136c5ab7860b5
Component: engine
2013-09-26 15:08:54 +00:00
0d8ea16762 Merge pull request #1759 from bdon/graph-map
Minor refactor of Graph; replace uses of Graph.All (slice) with Graph.Map (map)
Upstream-commit: ad152efbed6ddb74a352c39147bae9b0e8c87435
Component: engine
2013-09-10 08:49:11 -07:00
aa0ad01db6 Merge builder.go into runtime.go
Upstream-commit: 24e02043a2672320abebc3bd5fa6a592e2ebd082
Component: engine
2013-09-06 17:33:05 -07:00
c7e2ec175d Replace Graph.All with Graph.Map
Upstream-commit: 1fca99ad908c530fcd03158a56767b55500a8521
Component: engine
2013-08-31 20:44:42 -07:00
6b54138e54 use init function
Upstream-commit: 740a97f1a836be17ab39e8496b7372900782c20b
Component: engine
2013-08-29 22:55:29 +00:00
b2a84c3f0c Fixed: ImagePull in runtime test
Upstream-commit: 1c6af604e824d8fa2896c4906f05a0a3729c8e52
Component: engine
2013-08-23 04:32:09 +02:00
00a7cbd80b Merge pull request #1290 from dotcloud/parallel_pull
* Runtime: Parallel pull
Upstream-commit: e54e8fa9205409e741a64c7d7746e2e548c52fc0
Component: engine
2013-08-05 14:17:29 -07:00
0c11df3e01 Merge pull request #1267 from sridatta/new-clean-init
* Runtime: Fix to "Inject dockerinit at /.dockerinit"
Upstream-commit: f6fa353dd8be732aaed20f0c64a5ae8ccc9f1dbc
Component: engine
2013-08-05 13:23:22 -07:00
d2c440fbc7 add parallel pull to 1.4
Upstream-commit: 46f59dd9333baa578b184eb25b386ac2f41caf04
Component: engine
2013-07-30 12:15:33 +00:00
4350e3145d Fixes #505 - Make sure all output is send on the network before closing
Upstream-commit: fd9ad1a19469d07944ca9b417861d63ecec2ef42
Component: engine
2013-07-24 15:48:51 -07:00
f64e80d22b update AUTHORS
Upstream-commit: 7aba68cd548d69e10e710029ca143b32fd291585
Component: engine
2013-07-23 19:55:38 +00:00
7c7e6abf06 + Runtime: inject dockerinit at /.dockerinit instead of overwriting /sbin/init. This makes it possible to run /sbin/init inside a container.
Upstream-commit: 5d8efc107d2c7b7da61a6d22657190c6f13713d2
Component: engine
2013-07-17 17:13:34 -07:00
1aa0235482 Hack: use helper functions in tests for less copy-pasting
Upstream-commit: 080243f0407a90cdacf128dc3b53a802549d7797
Component: engine
2013-07-12 17:56:55 -07:00
6c9e32ae32 Simplify unit tests code with mkRuntime()
Upstream-commit: 6bdb6f226b13d5fdd47f3665c9fb753207bf473b
Component: engine
2013-07-11 17:59:25 -07:00
cafbcadc85 Make the TestAllocate{UDP,TCP}PortLocalhost more reliable
- For the TCP test try again if socat wasn't listening yet;
- For the UDP test raise the timeout to a minute to workaround what
  seems to be an issue with Linux.
Upstream-commit: 5a411fa38e49e5d79602f01fa9aaf058c12e5627
Component: engine
2013-07-10 18:25:53 -07:00
26ac911253 Raise the timeouts for the TCP/UDP localhost proxy tests
Sometimes these tests fail, let's see if that improves the situation.
Upstream-commit: 8f36467107d623e94638e2dd4c625e34f670384d
Component: engine
2013-07-10 16:05:14 -07:00
c69035fce1 Add support for UDP (closes #33)
API Changes
-----------

The port notation is extended to support "/udp" or "/tcp" at the *end*
of the specifier string (and defaults to tcp if "/tcp" or "/udp" are
missing)

`docker ps` now shows UDP ports as "frontend->backend/udp". Nothing
changes for TCP ports.

`docker inspect` now displays two sub-dictionaries: "Tcp" and "Udp",
under "PortMapping" in "NetworkSettings".

Theses changes stand true for the values returned by the HTTP API too.

This changeset will definitely break tools built upon the API (or upon
`docker inspect`). A less intrusive way to add UDP ports in `docker
inspect` would be to simply add "/udp" for UDP ports but it will still
break existing applications which tries to convert the whole field to an
integer. I believe that having two TCP/UDP sub-dictionaries is better
because it makes the whole thing more clear and more easy to parse right
away (i.e: you don't have to check the format of the string, split it
and convert the right part to an integer)

Code Changes
------------

Significant changes in network.go:

- A second PortAllocator is instantiated for the UDP range;
- PortMapper maintains separate mapping for TCP and UDP;
- The extPorts array in NetworkInterface is now an array of Nat objects
  (so we can know on which protocol a given port was mapped when
  NetworkInterface.Release() is called);
- TCP proxying on localhost has been moved away in network_proxy.go.

localhost proxy code rewrite in network_proxy.go:

We have to proxy the traffic between localhost:frontend-port and
container:backend-port because Netfilter doesn't work properly on the
loopback interface and DNAT iptable rules aren't applied there.

- Goroutines in the TCP proxying code are now explicitly stopped when
  the proxy is stopped;
- UDP connection tracking using a map (more infos in [1]);
- Support for IPv6 (to be more accurate, the code is transparent to the
  Go net package, so you can use, tcp/tcp4/tcp6/udp/udp4/udp6);
- Single Proxy interface for both UDP and TCP proxying;
- Full test suite.

[1] https://github.com/dotcloud/docker/issues/33#issuecomment-20010400
Upstream-commit: fac0d87d00ada08309ea3b82cae69beeef637c89
Component: engine
2013-07-09 17:42:35 -07:00
ea75ddf770 Fix a typo in runtime_test.go: Availalble -> Available
Upstream-commit: 1a1daca621233b4588c079e35851d0e542282124
Component: engine
2013-07-09 11:52:33 -07:00