mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Vendor libnetwork v0.6.0-rc4
- Add Endpoints() API to Sandbox interface - Fixes #19677 Signed-off-by: Madhu Venugopal <madhu@docker.com>
This commit is contained in:
parent
ced2d37901
commit
7029d9e6ad
4 changed files with 38 additions and 6 deletions
|
@ -27,7 +27,7 @@ clone git github.com/RackSec/srslog 6eb773f331e46fbba8eecb8e794e635e75fc04de
|
|||
clone git github.com/imdario/mergo 0.2.1
|
||||
|
||||
#get libnetwork packages
|
||||
clone git github.com/docker/libnetwork v0.6.0-rc3
|
||||
clone git github.com/docker/libnetwork v0.6.0-rc4
|
||||
clone git github.com/armon/go-metrics eb0af217e5e9747e41dd5303755356b62d28e3ec
|
||||
clone git github.com/hashicorp/go-msgpack 71c2886f5a673a35f909803f38ece5810165097b
|
||||
clone git github.com/hashicorp/memberlist 9a1e242e454d2443df330bdd51a436d5a9058fc4
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
# Changelog
|
||||
|
||||
## 0.6.0-rc4 (2016-01-25)
|
||||
- Add Endpoints() API to Sandbox interface
|
||||
- Fixed a race-condition in default gateway network creation
|
||||
|
||||
## 0.6.0-rc3 (2016-01-25)
|
||||
- Fixes docker/docker#19576
|
||||
- Fixed embedded DNS to listen in TCP as well
|
||||
|
|
|
@ -12,6 +12,8 @@ const (
|
|||
gwEPlen = 12
|
||||
)
|
||||
|
||||
var procGwNetwork = make(chan (bool), 1)
|
||||
|
||||
/*
|
||||
libnetwork creates a bridge network "docker_gw_bridge" for provding
|
||||
default gateway for the containers if none of the container's endpoints
|
||||
|
@ -35,13 +37,11 @@ func (sb *sandbox) setupDefaultGW(srcEp *endpoint) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// Look for default gw network. In case of error (includes not found),
|
||||
// retry and create it if needed in a serialized execution.
|
||||
n, err := c.NetworkByName(libnGWNetwork)
|
||||
if err != nil {
|
||||
if _, ok := err.(types.NotFoundError); !ok {
|
||||
return err
|
||||
}
|
||||
n, err = c.createGWNetwork()
|
||||
if err != nil {
|
||||
if n, err = c.defaultGwNetwork(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -150,3 +150,18 @@ func (sb *sandbox) getEPwithoutGateway() *endpoint {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Looks for the default gw network and creates it if not there.
|
||||
// Parallel executions are serialized.
|
||||
func (c *controller) defaultGwNetwork() (Network, error) {
|
||||
procGwNetwork <- true
|
||||
defer func() { <-procGwNetwork }()
|
||||
|
||||
n, err := c.NetworkByName(libnGWNetwork)
|
||||
if err != nil {
|
||||
if _, ok := err.(types.NotFoundError); ok {
|
||||
n, err = c.createGWNetwork()
|
||||
}
|
||||
}
|
||||
return n, err
|
||||
}
|
||||
|
|
|
@ -47,6 +47,8 @@ type Sandbox interface {
|
|||
// ResolveIP returns the service name for the passed in IP. IP is in reverse dotted
|
||||
// notation; the format used for DNS PTR records
|
||||
ResolveIP(name string) string
|
||||
// Endpoints returns all the endpoints connected to the sandbox
|
||||
Endpoints() []Endpoint
|
||||
}
|
||||
|
||||
// SandboxOption is a option setter function type used to pass varios options to
|
||||
|
@ -347,6 +349,17 @@ func (sb *sandbox) setupResolutionFiles() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (sb *sandbox) Endpoints() []Endpoint {
|
||||
sb.Lock()
|
||||
defer sb.Unlock()
|
||||
|
||||
endpoints := make([]Endpoint, len(sb.endpoints))
|
||||
for i, ep := range sb.endpoints {
|
||||
endpoints[i] = ep
|
||||
}
|
||||
return endpoints
|
||||
}
|
||||
|
||||
func (sb *sandbox) getConnectedEndpoints() []*endpoint {
|
||||
sb.Lock()
|
||||
defer sb.Unlock()
|
||||
|
|
Loading…
Add table
Reference in a new issue