| package libnetwork |
| |
| import ( |
| "github.com/docker/docker/libnetwork/ipamapi" |
| builtinIpam "github.com/docker/docker/libnetwork/ipams/builtin" |
| nullIpam "github.com/docker/docker/libnetwork/ipams/null" |
| remoteIpam "github.com/docker/docker/libnetwork/ipams/remote" |
| "github.com/docker/docker/libnetwork/ipamutils" |
| "github.com/docker/docker/pkg/plugingetter" |
| ) |
| |
| func initIPAMDrivers(r ipamapi.Registerer, pg plugingetter.PluginGetter, addressPool []*ipamutils.NetworkToSplit) error { |
| // TODO: pass address pools as arguments to builtinIpam.Init instead of |
| // indirectly through global mutable state. Swarmkit references that |
| // function so changing its signature breaks the build. |
| if err := builtinIpam.SetDefaultIPAddressPool(addressPool); err != nil { |
| return err |
| } |
| |
| for _, fn := range [](func(ipamapi.Registerer) error){ |
| builtinIpam.Register, |
| nullIpam.Register, |
| } { |
| if err := fn(r); err != nil { |
| return err |
| } |
| } |
| |
| return remoteIpam.Register(r, pg) |
| } |