Commit Graph

436 Commits

Author SHA1 Message Date
Jana Radhakrishnan 281c387e46 Merge pull request #291 from mavenugo/master
Return an empty config if nil
2015-06-13 15:14:49 -07:00
Madhu Venugopal 580fd18ef3 Return an empty config if nil
Since the Config is a read-only entity, Confg() method returned a value
instead of the pointer. In cases the config is nil, we should return an
empty config.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-13 14:28:56 -07:00
Madhu Venugopal 3be488927d Merge pull request #277 from Microsoft/10662-compile3
Windows: Fix compile after SB interface
2015-06-12 12:58:37 -07:00
Jana Radhakrishnan 0f7399a4cb Merge pull request #289 from mavenugo/defcfg
Moved the TOML based Configuration to dnet
2015-06-12 12:58:06 -07:00
Madhu Venugopal f8eb4da90c Moved the TOML based Configuration to dnet
The configuration format for docker runtime is based on daemon flags and
hence adjusting the libnetwork configuration to accomodate it by moving
the TOML based configuration to the dnet tool.

Also changed the controller configuration via options

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-12 12:46:12 -07:00
John Howard 72b3215a20 Windows: Compiles again
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-12 12:40:36 -07:00
aboch e03f32d73f Merge pull request #286 from mavenugo/master
Cherry-picked : enable hairpin mode on the bridge port & fix iptables rule
2015-06-12 08:39:00 -07:00
Madhu Venugopal 092460013c Merge pull request #284 from aboch/sv
Remove dnet binary
2015-06-11 19:32:32 -07:00
Madhu Venugopal acfac0ba4c enable hairpin mode on the bridge port & fix iptables rule
* When userland-proxy is disabled, enable hairpin mode on the host-side of the veth
* When userland-proxy is enabled, fix the iptable rules appropriately

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-11 19:23:02 -07:00
Alessandro Boch 5774cc2463 Remove dnet binary
- It slipped in as part of a previous commit by mistake

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-11 18:38:03 -07:00
Madhu Venugopal cd54fb3dbe Merge pull request #271 from aboch/sv
Rework service UI
2015-06-11 17:02:04 -07:00
Jana Radhakrishnan 137ca9700b Merge pull request #280 from mavenugo/libkv_m
Replace swarm store with libkv
2015-06-11 16:51:32 -07:00
Madhu Venugopal b714b04cac Replace swarm store with libkv
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-11 16:19:28 -07:00
Alessandro Boch 6f496671d8 Promote Service cli
- To the same level of Network cli
  and to make use of the new service
  rest apis

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-11 16:07:09 -07:00
Alessandro Boch 496d267d96 Endpoint to provide ContainerInfo
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-11 16:06:58 -07:00
Alessandro Boch ba012a703a Add Service hierarchy to rest api
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-11 15:46:45 -07:00
aboch 45b7755298 Merge pull request #260 from squaremo/now_with_more_semantics
Add note on EndpointInfo semantics
2015-06-11 15:35:39 -07:00
Jana Radhakrishnan b465a35695 Merge pull request #279 from aboch/smrm
Make sure sandbox files are removed after tests
2015-06-11 15:34:19 -07:00
Jana Radhakrishnan 590b873ac3 Merge pull request #264 from mavenugo/mh-ln
datastore support for endpoint, GetObject, DeleteObject and swarm store API upgrade
2015-06-11 15:28:19 -07:00
Alessandro Boch 0888df37f6 Make sure sandbox files are removed after tests
- and check for error on sandbox.Destroy() in tests

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-11 14:55:17 -07:00
Madhu Venugopal 2e40befd82 Replacing isReservedNetwork with Driver capability
Currently store makes use of a static isReservedNetwork check to decide
if a network needs to be stored in the distributed store or not. But it
is better if the check is not static, but be determined based on the
capability of the driver that backs the network.

Hence introducing a new capability mechanism to the driver which it can
express its capability during registration. Making use of first such
capability : Scope. This can be expanded in the future for more such cases.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-10 23:59:38 -07:00
Madhu Venugopal 9c3695fae8 Reworked endpoint store operation to address a few cases
* Removed network from being marshalled (it is part of the key anyways)
* Reworked the watch function to handle container-id on endpoints
* Included ContainerInfo to be marshalled which needs to be synchronized
* Resolved multiple race issues by introducing data locks

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-10 23:59:29 -07:00
Jana Radhakrishnan 14e18d7a79 Merge pull request #276 from mrjana/cnm
Generate container mac address based on IP
2015-06-10 21:34:30 -07:00
Madhu Venugopal 2f07bc64a0 datastore delete support for network and endpoints
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-10 21:19:31 -07:00
Madhu Venugopal c653f03fe8 GetObject support
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-10 21:17:56 -07:00
Madhu Venugopal 09383f5077 datastore support for Endpoint
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-10 21:17:55 -07:00
Madhu Venugopal b987d2627b Updating to new Swarm discovery and store APIs
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-10 21:17:55 -07:00
Madhu Venugopal d7c4c8f558 Updating to latest Swarm dependancies
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-10 21:17:55 -07:00
Jana Radhakrishnan d8c505f256 Generate container mac address based on IP
Currently we craete container mac address completely
randomly. But we probably need to generate based on
IP so that the mac address stays the same for a given
IP.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-06-10 20:12:43 -07:00
Jana Radhakrishnan 40bdee8540 Merge pull request #273 from mavenugo/delete_restore
handling error condition for network and endpoint deletes
2015-06-10 19:54:44 -07:00
Madhu Venugopal eb1feb7dac handling error condition for network and endpoint deletes
Unless it is a forbidden error, libnetwork should not fail a forced
delete of a network and endpoint if the driver throws an error.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-10 16:21:46 -07:00
Madhu Venugopal 350db6a108 Merge pull request #272 from estesp/gc-startup-fix
Check GC loop is active/necessary before triggering GC
2015-06-10 14:08:37 -07:00
Phil Estes 4e0ffd72f8 Check GC loop is active/necessary before triggering GC
Calling GC() without ever creating a network namespace (sandbox on
Linux) will hang as the GC loop is not running (and therefore the
channel is not being listened to).

Tested via Docker that this corrects a daemon shutdown error if the
daemon is started and stopped without any containers or networks being
created while the daemon is up.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2015-06-10 16:43:31 -04:00
Madhu Venugopal 40f7ffc94f Merge pull request #267 from aboch/cp
Minor changes in bridge.go
2015-06-09 17:30:42 -07:00
Alessandro Boch 7473e35f27 Minor changes in bridge.go
- lock network struct before accessing config in NetworkCreate
- reorganize locks so that we lock only what needed and when needed
- conflict method really belongs to networkConfig not bridgeNetwork

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-09 16:44:43 -07:00
aboch 7b481d2ec9 Merge pull request #266 from mavenugo/master
Moved services to dnet top-level and removed experimental
2015-06-08 19:14:29 -07:00
Madhu Venugopal 22832b6fb8 Merge pull request #250 from aboch/ni
Provide isolation b/w bridge networks
2015-06-08 18:58:15 -07:00
Alessandro Boch c469e569d2 Provide isolation b/w bridge networks
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-08 17:15:57 -07:00
Madhu Venugopal 5da83aac26 Moved services to dnet top-level and removed experimental
In prep for the UI/API updates on Docker to integrate the network and
endpoints, this PR removes the experimental tag from dnet and moving it
to docker UI and API and wrap the top-level "network" and "service"
under experimental.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-08 14:23:41 -07:00
aboch 4f33e41257 Merge pull request #257 from mrjana/overlay
Refactor sandbox code to use interfaces and add bridge support to sandbox
2015-06-08 14:05:59 -07:00
Madhu Venugopal 0b134e19cb Merge pull request #265 from Microsoft/10662-compileagain
Windows: Allow compilation (again)
2015-06-08 11:27:44 -07:00
John Howard 7b876a9a72 Windows: Allow compilation (again)
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-08 11:12:56 -07:00
Jana Radhakrishnan 4aa51271fe Add support to add bridge to the sandbox.
Added support to add a bridge the same way as any other
interface into the namespace. The only difference is linux
does not support creating the bridge in one namespace and
moving it into another namespace. So for a bridge the sandbox
code also does the creation of the bridge inside the sandbox.
Also added an optional argument to interface which can now
select one of the already existing interfaces as it's master.
For this option to succeed the master interface should be of type
bridge.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-06-08 10:21:00 -07:00
Jana Radhakrishnan df6ed350ae Refactor sandbox code to use interfaces
Currently sandbox code exposes bare structs
externally to the package. It is untenable
to continue this way and it becomes too
inflexible to use it to store internal state.
Changed all of them to use interfaces.
Also cleaned up a lot of boiler plate code
which needs to set into namespace.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-06-08 10:17:56 -07:00
Jana Radhakrishnan 0197028220 Make GenerateIfaceName generic
Currently GenerateIfaceName is defined in bridge.go
and it specifically tries to only generate an interface
name only with `veth` prefix. Make it generic so that it
can accept a prefix and length of random bytes. Also
move it to netutils since it is useful to generate various
kinds of interface names using it.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-06-08 09:49:17 -07:00
Michael Bridgen d6db97f276 Add note on EndpointInfo semantics
The comments in the code don't explain enough, and this is arguably a
better place for such an explanation.
2015-06-08 17:06:31 +01:00
Jana Radhakrishnan 162925415c Merge pull request #252 from aboch/rm
Add restrictions for default drivers/bridge name
2015-06-08 08:38:06 -07:00
Alessandro Boch d8f6a585ac Add restrictions for default drivers/bridge name
- modified tests accordingly
- added extra tests for creating a couple of bridge nw and query them

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-08 08:32:08 -07:00
Madhu Venugopal 7de305a2a4 Merge pull request #262 from mrjana/cnm_integ
Add support to trigger immediate garbage collection
2015-06-05 14:21:35 -07:00
Jana Radhakrishnan d4a5676607 Add support to trigger immediate garbage collection
Right now the namespace paths are cleaned up every
garbage collection period. But if the daemon is restarted
before all the namespace paths of removed containers are
garbage collected they will remain there forever. The fix
is to provide a GC() api so that garbage collection can be
triggered immediately.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-06-05 14:15:29 -07:00