mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Vendor Libnetwork v0.7.0-rc.6
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
(cherry picked from commit 6dd2c33217
)
This commit is contained in:
parent
490c26524c
commit
3522bdfc99
7 changed files with 42 additions and 14 deletions
|
@ -30,7 +30,7 @@ clone git github.com/RackSec/srslog 259aed10dfa74ea2961eddd1d9847619f6e98837
|
||||||
clone git github.com/imdario/mergo 0.2.1
|
clone git github.com/imdario/mergo 0.2.1
|
||||||
|
|
||||||
#get libnetwork packages
|
#get libnetwork packages
|
||||||
clone git github.com/docker/libnetwork v0.7.0-rc.4
|
clone git github.com/docker/libnetwork v0.7.0-rc.6
|
||||||
clone git github.com/armon/go-metrics eb0af217e5e9747e41dd5303755356b62d28e3ec
|
clone git github.com/armon/go-metrics eb0af217e5e9747e41dd5303755356b62d28e3ec
|
||||||
clone git github.com/hashicorp/go-msgpack 71c2886f5a673a35f909803f38ece5810165097b
|
clone git github.com/hashicorp/go-msgpack 71c2886f5a673a35f909803f38ece5810165097b
|
||||||
clone git github.com/hashicorp/memberlist 9a1e242e454d2443df330bdd51a436d5a9058fc4
|
clone git github.com/hashicorp/memberlist 9a1e242e454d2443df330bdd51a436d5a9058fc4
|
||||||
|
|
|
@ -1,5 +1,15 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.7.0-rc.6 (2016-04-10)
|
||||||
|
- Flush cached resolver socket on default gateway change
|
||||||
|
|
||||||
|
## 0.7.0-rc.5 (2016-04-08)
|
||||||
|
- Persist ipam driver options
|
||||||
|
- Fixes https://github.com/docker/libnetwork/issues/1087
|
||||||
|
- Use go vet from go tool
|
||||||
|
- Godep update to pick up latest docker/docker packages
|
||||||
|
- Validate remote driver response using docker plugins package method.
|
||||||
|
|
||||||
## 0.7.0-rc.4 (2016-04-06)
|
## 0.7.0-rc.4 (2016-04-06)
|
||||||
- Fix the handling for default gateway Endpoint join/leave.
|
- Fix the handling for default gateway Endpoint join/leave.
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,5 @@ RUN apt-get update && apt-get -y install iptables
|
||||||
|
|
||||||
RUN go get github.com/tools/godep \
|
RUN go get github.com/tools/godep \
|
||||||
github.com/golang/lint/golint \
|
github.com/golang/lint/golint \
|
||||||
golang.org/x/tools/cmd/vet \
|
|
||||||
golang.org/x/tools/cmd/cover\
|
golang.org/x/tools/cmd/cover\
|
||||||
github.com/mattn/goveralls
|
github.com/mattn/goveralls
|
||||||
|
|
|
@ -3,7 +3,6 @@ package remote
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
"strings"
|
|
||||||
|
|
||||||
log "github.com/Sirupsen/logrus"
|
log "github.com/Sirupsen/logrus"
|
||||||
"github.com/docker/docker/pkg/plugins"
|
"github.com/docker/docker/pkg/plugins"
|
||||||
|
@ -14,10 +13,6 @@ import (
|
||||||
"github.com/docker/libnetwork/types"
|
"github.com/docker/libnetwork/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
missingMethod = "404 page not found"
|
|
||||||
)
|
|
||||||
|
|
||||||
type driver struct {
|
type driver struct {
|
||||||
endpoint *plugins.Client
|
endpoint *plugins.Client
|
||||||
networkType string
|
networkType string
|
||||||
|
@ -260,7 +255,7 @@ func (d *driver) ProgramExternalConnectivity(nid, eid string, options map[string
|
||||||
Options: options,
|
Options: options,
|
||||||
}
|
}
|
||||||
err := d.call("ProgramExternalConnectivity", data, &api.ProgramExternalConnectivityResponse{})
|
err := d.call("ProgramExternalConnectivity", data, &api.ProgramExternalConnectivityResponse{})
|
||||||
if err != nil && strings.Contains(err.Error(), missingMethod) {
|
if err != nil && plugins.IsNotFound(err) {
|
||||||
// It is not mandatory yet to support this method
|
// It is not mandatory yet to support this method
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -274,7 +269,7 @@ func (d *driver) RevokeExternalConnectivity(nid, eid string) error {
|
||||||
EndpointID: eid,
|
EndpointID: eid,
|
||||||
}
|
}
|
||||||
err := d.call("RevokeExternalConnectivity", data, &api.RevokeExternalConnectivityResponse{})
|
err := d.call("RevokeExternalConnectivity", data, &api.RevokeExternalConnectivityResponse{})
|
||||||
if err != nil && strings.Contains(err.Error(), missingMethod) {
|
if err != nil && plugins.IsNotFound(err) {
|
||||||
// It is not mandatory yet to support this method
|
// It is not mandatory yet to support this method
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -477,6 +477,10 @@ func (ep *endpoint) sbJoin(sb *sandbox, options ...EndpointOption) error {
|
||||||
ep.Name(), ep.ID(), err)
|
ep.Name(), ep.ID(), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if sb.resolver != nil {
|
||||||
|
sb.resolver.FlushExtServers()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !sb.needDefaultGW() {
|
if !sb.needDefaultGW() {
|
||||||
|
|
|
@ -320,6 +320,13 @@ func (n *network) CopyTo(o datastore.KVObject) error {
|
||||||
dstN.labels[k] = v
|
dstN.labels[k] = v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if n.ipamOptions != nil {
|
||||||
|
dstN.ipamOptions = make(map[string]string, len(n.ipamOptions))
|
||||||
|
for k, v := range n.ipamOptions {
|
||||||
|
dstN.ipamOptions[k] = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for _, v4conf := range n.ipamV4Config {
|
for _, v4conf := range n.ipamV4Config {
|
||||||
dstV4Conf := &IpamConf{}
|
dstV4Conf := &IpamConf{}
|
||||||
v4conf.CopyTo(dstV4Conf)
|
v4conf.CopyTo(dstV4Conf)
|
||||||
|
@ -372,6 +379,7 @@ func (n *network) MarshalJSON() ([]byte, error) {
|
||||||
netMap["scope"] = n.scope
|
netMap["scope"] = n.scope
|
||||||
netMap["labels"] = n.labels
|
netMap["labels"] = n.labels
|
||||||
netMap["ipamType"] = n.ipamType
|
netMap["ipamType"] = n.ipamType
|
||||||
|
netMap["ipamOptions"] = n.ipamOptions
|
||||||
netMap["addrSpace"] = n.addrSpace
|
netMap["addrSpace"] = n.addrSpace
|
||||||
netMap["enableIPv6"] = n.enableIPv6
|
netMap["enableIPv6"] = n.enableIPv6
|
||||||
if n.generic != nil {
|
if n.generic != nil {
|
||||||
|
@ -432,6 +440,15 @@ func (n *network) UnmarshalJSON(b []byte) (err error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if v, ok := netMap["ipamOptions"]; ok {
|
||||||
|
if iOpts, ok := v.(map[string]interface{}); ok {
|
||||||
|
n.ipamOptions = make(map[string]string, len(iOpts))
|
||||||
|
for k, v := range iOpts {
|
||||||
|
n.ipamOptions[k] = v.(string)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if v, ok := netMap["generic"]; ok {
|
if v, ok := netMap["generic"]; ok {
|
||||||
n.generic = v.(map[string]interface{})
|
n.generic = v.(map[string]interface{})
|
||||||
// Restore opts in their map[string]string form
|
// Restore opts in their map[string]string form
|
||||||
|
|
|
@ -45,7 +45,7 @@ const (
|
||||||
ptrIPv6domain = ".ip6.arpa."
|
ptrIPv6domain = ".ip6.arpa."
|
||||||
respTTL = 600
|
respTTL = 600
|
||||||
maxExtDNS = 3 //max number of external servers to try
|
maxExtDNS = 3 //max number of external servers to try
|
||||||
extIOTimeout = 3 * time.Second
|
extIOTimeout = 4 * time.Second
|
||||||
defaultRespSize = 512
|
defaultRespSize = 512
|
||||||
maxConcurrent = 50
|
maxConcurrent = 50
|
||||||
logInterval = 2 * time.Second
|
logInterval = 2 * time.Second
|
||||||
|
@ -158,6 +158,10 @@ func (r *resolver) Start() error {
|
||||||
|
|
||||||
func (r *resolver) FlushExtServers() {
|
func (r *resolver) FlushExtServers() {
|
||||||
for i := 0; i < maxExtDNS; i++ {
|
for i := 0; i < maxExtDNS; i++ {
|
||||||
|
if r.extDNSList[i].extConn != nil {
|
||||||
|
r.extDNSList[i].extConn.Close()
|
||||||
|
}
|
||||||
|
|
||||||
r.extDNSList[i].extConn = nil
|
r.extDNSList[i].extConn = nil
|
||||||
r.extDNSList[i].extOnce = sync.Once{}
|
r.extDNSList[i].extOnce = sync.Once{}
|
||||||
}
|
}
|
||||||
|
@ -344,9 +348,6 @@ func (r *resolver) ServeDNS(w dns.ResponseWriter, query *dns.Msg) {
|
||||||
if extDNS.ipStr == "" {
|
if extDNS.ipStr == "" {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
log.Debugf("Query %s[%d] from %s, forwarding to %s:%s", name, query.Question[0].Qtype,
|
|
||||||
w.LocalAddr().String(), proto, extDNS.ipStr)
|
|
||||||
|
|
||||||
extConnect := func() {
|
extConnect := func() {
|
||||||
addr := fmt.Sprintf("%s:%d", extDNS.ipStr, 53)
|
addr := fmt.Sprintf("%s:%d", extDNS.ipStr, 53)
|
||||||
extConn, err = net.DialTimeout(proto, addr, extIOTimeout)
|
extConn, err = net.DialTimeout(proto, addr, extIOTimeout)
|
||||||
|
@ -378,6 +379,8 @@ func (r *resolver) ServeDNS(w dns.ResponseWriter, query *dns.Msg) {
|
||||||
if extConn == nil {
|
if extConn == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
log.Debugf("Query %s[%d] from %s, forwarding to %s:%s", name, query.Question[0].Qtype,
|
||||||
|
extConn.LocalAddr().String(), proto, extDNS.ipStr)
|
||||||
|
|
||||||
// Timeout has to be set for every IO operation.
|
// Timeout has to be set for every IO operation.
|
||||||
extConn.SetDeadline(time.Now().Add(extIOTimeout))
|
extConn.SetDeadline(time.Now().Add(extIOTimeout))
|
||||||
|
@ -424,7 +427,7 @@ func (r *resolver) ServeDNS(w dns.ResponseWriter, query *dns.Msg) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if resp == nil {
|
if resp == nil || w == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue