1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Relax restriction on IpamConfig

- Both an empty and nil list of IpamConf object
  will trigger auto-allocation for ipv4.
  Auto-allocation for ipv6 will still be excluded
  in the two cases above.

Signed-off-by: Alessandro Boch <aboch@docker.com>
This commit is contained in:
Alessandro Boch 2015-10-09 17:06:52 -07:00
parent 242ffc0b8b
commit 24339bea43
2 changed files with 3 additions and 5 deletions

View file

@ -238,7 +238,7 @@ func compareIpamConfList(listA, listB []*IpamConf) bool {
a = listA[i]
b = listB[i]
if a.PreferredPool != b.PreferredPool ||
a.SubPool != b.SubPool || a.IsV6 != b.IsV6 ||
a.SubPool != b.SubPool ||
!compareStringMaps(a.Options, b.Options) ||
a.Gateway != b.Gateway || !compareStringMaps(a.AuxAddresses, b.AuxAddresses) {
return false

View file

@ -76,8 +76,6 @@ type IpamConf struct {
SubPool string
// Input options for IPAM Driver (optional)
Options map[string]string
// IPv6 flag, Needed when no preferred pool is specified
IsV6 bool
// Preferred Network Gateway address (optional)
Gateway string
// Auxiliary addresses for network driver. Must be within the master pool.
@ -867,7 +865,7 @@ func (n *network) ipamAllocateVersion(ipVer int, ipam ipamapi.Ipam) error {
return types.InternalErrorf("incorrect ip version passed to ipam allocate: %d", ipVer)
}
if *cfgList == nil {
if len(*cfgList) == 0 {
if ipVer == 6 {
return nil
}
@ -885,7 +883,7 @@ func (n *network) ipamAllocateVersion(ipVer int, ipam ipamapi.Ipam) error {
d := &IpamInfo{}
(*infoList)[i] = d
d.PoolID, d.Pool, d.Meta, err = ipam.RequestPool(n.addrSpace, cfg.PreferredPool, cfg.SubPool, cfg.Options, cfg.IsV6)
d.PoolID, d.Pool, d.Meta, err = ipam.RequestPool(n.addrSpace, cfg.PreferredPool, cfg.SubPool, cfg.Options, ipVer == 6)
if err != nil {
return err
}