Update libnetwork to 96d45528599c32354230480a1ebc0
This fixes an issue with hanging tests due to store.
Fixes #23560
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
(cherry picked from commit e927df7b4b
)
This commit is contained in:
parent
38305cb676
commit
cdb04519e2
6 changed files with 36 additions and 22 deletions
|
@ -65,7 +65,7 @@ clone git github.com/RackSec/srslog 259aed10dfa74ea2961eddd1d9847619f6e98837
|
|||
clone git github.com/imdario/mergo 0.2.1
|
||||
|
||||
#get libnetwork packages
|
||||
clone git github.com/docker/libnetwork 0d517a9e4e5cbdb889b3257eebd2351addcd46d4
|
||||
clone git github.com/docker/libnetwork 96d45528599c32354230480a1ebc0657cd4d077f
|
||||
clone git github.com/docker/go-events 39718a26497694185f8fb58a7d6f31947f3dc42d
|
||||
clone git github.com/armon/go-radix e39d623f12e8e41c7b5529e9a9dd67a1e2261f80
|
||||
clone git github.com/armon/go-metrics eb0af217e5e9747e41dd5303755356b62d28e3ec
|
||||
|
|
|
@ -203,6 +203,8 @@ func New(cfgOptions ...config.Option) (NetworkController, error) {
|
|||
}
|
||||
}
|
||||
|
||||
c.WalkNetworks(populateSpecial)
|
||||
|
||||
// Reserve pools first before doing cleanup. Otherwise the
|
||||
// cleanups of endpoint/network and sandbox below will
|
||||
// generate many unnecessary warnings
|
||||
|
|
|
@ -70,7 +70,7 @@ func (e *encrMap) String() string {
|
|||
}
|
||||
|
||||
func (d *driver) checkEncryption(nid string, rIP net.IP, vxlanID uint32, isLocal, add bool) error {
|
||||
log.Infof("checkEncryption(%s, %v, %d, %t)", nid[0:7], rIP, vxlanID, isLocal)
|
||||
log.Debugf("checkEncryption(%s, %v, %d, %t)", nid[0:7], rIP, vxlanID, isLocal)
|
||||
|
||||
n := d.network(nid)
|
||||
if n == nil || !n.secure {
|
||||
|
@ -120,7 +120,7 @@ func (d *driver) checkEncryption(nid string, rIP net.IP, vxlanID uint32, isLocal
|
|||
}
|
||||
|
||||
func setupEncryption(localIP, remoteIP net.IP, vni uint32, em *encrMap, keys []*key) error {
|
||||
log.Infof("Programming encryption for vxlan %d between %s and %s", vni, localIP, remoteIP)
|
||||
log.Debugf("Programming encryption for vxlan %d between %s and %s", vni, localIP, remoteIP)
|
||||
rIPs := remoteIP.String()
|
||||
|
||||
indices := make([]*spi, 0, len(keys))
|
||||
|
@ -242,7 +242,7 @@ func programSA(localIP, remoteIP net.IP, spi *spi, k *key, dir int, add bool) (f
|
|||
}
|
||||
|
||||
if add != exists {
|
||||
log.Infof("%s: rSA{%s}", action, rSA)
|
||||
log.Debugf("%s: rSA{%s}", action, rSA)
|
||||
if err := xfrmProgram(rSA); err != nil {
|
||||
log.Warnf("Failed %s rSA{%s}: %v", action, rSA, err)
|
||||
}
|
||||
|
@ -267,7 +267,7 @@ func programSA(localIP, remoteIP net.IP, spi *spi, k *key, dir int, add bool) (f
|
|||
}
|
||||
|
||||
if add != exists {
|
||||
log.Infof("%s fSA{%s}", action, fSA)
|
||||
log.Debugf("%s fSA{%s}", action, fSA)
|
||||
if err := xfrmProgram(fSA); err != nil {
|
||||
log.Warnf("Failed %s fSA{%s}: %v.", action, fSA, err)
|
||||
}
|
||||
|
@ -313,7 +313,7 @@ func programSP(fSA *netlink.XfrmState, rSA *netlink.XfrmState, add bool) error {
|
|||
}
|
||||
|
||||
if add != exists {
|
||||
log.Infof("%s fSP{%s}", action, fPol)
|
||||
log.Debugf("%s fSP{%s}", action, fPol)
|
||||
if err := xfrmProgram(fPol); err != nil {
|
||||
log.Warnf("%s fSP{%s}: %v", action, fPol, err)
|
||||
}
|
||||
|
@ -380,16 +380,16 @@ func (d *driver) setKeys(keys []*key) error {
|
|||
return types.ForbiddenErrorf("initial keys are already present")
|
||||
}
|
||||
d.keys = keys
|
||||
log.Infof("Initial encryption keys: %v", d.keys)
|
||||
log.Debugf("Initial encryption keys: %v", d.keys)
|
||||
return nil
|
||||
}
|
||||
|
||||
// updateKeys allows to add a new key and/or change the primary key and/or prune an existing key
|
||||
// The primary key is the key used in transmission and will go in first position in the list.
|
||||
func (d *driver) updateKeys(newKey, primary, pruneKey *key) error {
|
||||
log.Infof("Updating Keys. New: %v, Primary: %v, Pruned: %v", newKey, primary, pruneKey)
|
||||
log.Debugf("Updating Keys. New: %v, Primary: %v, Pruned: %v", newKey, primary, pruneKey)
|
||||
|
||||
log.Infof("Current: %v", d.keys)
|
||||
log.Debugf("Current: %v", d.keys)
|
||||
|
||||
var (
|
||||
newIdx = -1
|
||||
|
@ -444,7 +444,7 @@ func (d *driver) updateKeys(newKey, primary, pruneKey *key) error {
|
|||
}
|
||||
d.Unlock()
|
||||
|
||||
log.Infof("Updated: %v", d.keys)
|
||||
log.Debugf("Updated: %v", d.keys)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -458,10 +458,10 @@ func (d *driver) updateKeys(newKey, primary, pruneKey *key) error {
|
|||
|
||||
// Spis and keys are sorted in such away the one in position 0 is the primary
|
||||
func updateNodeKey(lIP, rIP net.IP, idxs []*spi, curKeys []*key, newIdx, priIdx, delIdx int) []*spi {
|
||||
log.Infof("Updating keys for node: %s (%d,%d,%d)", rIP, newIdx, priIdx, delIdx)
|
||||
log.Debugf("Updating keys for node: %s (%d,%d,%d)", rIP, newIdx, priIdx, delIdx)
|
||||
|
||||
spis := idxs
|
||||
log.Infof("Current: %v", spis)
|
||||
log.Debugf("Current: %v", spis)
|
||||
|
||||
// add new
|
||||
if newIdx != -1 {
|
||||
|
@ -482,7 +482,7 @@ func updateNodeKey(lIP, rIP net.IP, idxs []*spi, curKeys []*key, newIdx, priIdx,
|
|||
Crypt: &netlink.XfrmStateAlgo{Name: "cbc(aes)", Key: curKeys[delIdx].value},
|
||||
Limits: netlink.XfrmStateLimits{TimeSoft: timeout},
|
||||
}
|
||||
log.Infof("Updating rSA0{%s}", rSA0)
|
||||
log.Debugf("Updating rSA0{%s}", rSA0)
|
||||
if err := ns.NlHandle().XfrmStateUpdate(rSA0); err != nil {
|
||||
log.Warnf("Failed to update rSA0{%s}: %v", rSA0, err)
|
||||
}
|
||||
|
@ -518,7 +518,7 @@ func updateNodeKey(lIP, rIP net.IP, idxs []*spi, curKeys []*key, newIdx, priIdx,
|
|||
},
|
||||
},
|
||||
}
|
||||
log.Infof("Updating fSP{%s}", fSP1)
|
||||
log.Debugf("Updating fSP{%s}", fSP1)
|
||||
if err := ns.NlHandle().XfrmPolicyUpdate(fSP1); err != nil {
|
||||
log.Warnf("Failed to update fSP{%s}: %v", fSP1, err)
|
||||
}
|
||||
|
@ -533,7 +533,7 @@ func updateNodeKey(lIP, rIP net.IP, idxs []*spi, curKeys []*key, newIdx, priIdx,
|
|||
Crypt: &netlink.XfrmStateAlgo{Name: "cbc(aes)", Key: curKeys[0].value},
|
||||
Limits: netlink.XfrmStateLimits{TimeHard: timeout},
|
||||
}
|
||||
log.Infof("Removing fSA0{%s}", fSA0)
|
||||
log.Debugf("Removing fSA0{%s}", fSA0)
|
||||
if err := ns.NlHandle().XfrmStateUpdate(fSA0); err != nil {
|
||||
log.Warnf("Failed to remove fSA0{%s}: %v", fSA0, err)
|
||||
}
|
||||
|
@ -553,7 +553,7 @@ func updateNodeKey(lIP, rIP net.IP, idxs []*spi, curKeys []*key, newIdx, priIdx,
|
|||
spis = append(spis[:delIdx], spis[delIdx+1:]...)
|
||||
}
|
||||
|
||||
log.Infof("Updated: %v", spis)
|
||||
log.Debugf("Updated: %v", spis)
|
||||
|
||||
return spis
|
||||
}
|
||||
|
|
|
@ -987,7 +987,7 @@ func (ep *endpoint) assignAddress(ipam ipamapi.Ipam, assignIPv4, assignIPv6 bool
|
|||
var err error
|
||||
|
||||
n := ep.getNetwork()
|
||||
if n.Type() == "host" || n.Type() == "null" {
|
||||
if n.hasSpecialDriver() {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -1067,7 +1067,7 @@ func (ep *endpoint) assignAddressVersion(ipVer int, ipam ipamapi.Ipam) error {
|
|||
|
||||
func (ep *endpoint) releaseAddress() {
|
||||
n := ep.getNetwork()
|
||||
if n.Type() == "host" || n.Type() == "null" {
|
||||
if n.hasSpecialDriver() {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -1123,8 +1123,7 @@ func (n *network) getController() *controller {
|
|||
}
|
||||
|
||||
func (n *network) ipamAllocate() error {
|
||||
// For now also exclude bridge from using new ipam
|
||||
if n.Type() == "host" || n.Type() == "null" {
|
||||
if n.hasSpecialDriver() {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -1295,8 +1294,7 @@ func (n *network) ipamAllocateVersion(ipVer int, ipam ipamapi.Ipam) error {
|
|||
}
|
||||
|
||||
func (n *network) ipamRelease() {
|
||||
// For now exclude host and null
|
||||
if n.Type() == "host" || n.Type() == "null" {
|
||||
if n.hasSpecialDriver() {
|
||||
return
|
||||
}
|
||||
ipam, _, err := n.getController().getIPAMDriver(n.ipamType)
|
||||
|
@ -1504,3 +1502,8 @@ func (n *network) TableEventRegister(tableName string) error {
|
|||
n.driverTables = append(n.driverTables, tableName)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Special drivers are ones which do not need to perform any network plumbing
|
||||
func (n *network) hasSpecialDriver() bool {
|
||||
return n.Type() == "host" || n.Type() == "null"
|
||||
}
|
||||
|
|
|
@ -464,3 +464,12 @@ func (c *controller) networkCleanup() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
var populateSpecial NetworkWalker = func(nw Network) bool {
|
||||
if n := nw.(*network); n.hasSpecialDriver() {
|
||||
if err := n.getController().addNetwork(n); err != nil {
|
||||
log.Warnf("Failed to populate network %q with driver %q", nw.Name(), nw.Type())
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue