Moving IPAM initalization out of drvRegistry into libnetwork core
Signed-off-by: Madhu Venugopal <madhu@docker.com>
This commit is contained in:
parent
370cd93a86
commit
cc765cc648
|
@ -193,6 +193,11 @@ func New(cfgOptions ...config.Option) (NetworkController, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err = initIPAMDrivers(drvRegistry, nil, c.getStore(datastore.GlobalScope)); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
c.drvRegistry = drvRegistry
|
c.drvRegistry = drvRegistry
|
||||||
|
|
||||||
if c.cfg != nil && c.cfg.Cluster.Watcher != nil {
|
if c.cfg != nil && c.cfg.Cluster.Watcher != nil {
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package libnetwork
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/docker/libnetwork/drvregistry"
|
||||||
|
"github.com/docker/libnetwork/ipamapi"
|
||||||
|
builtinIpam "github.com/docker/libnetwork/ipams/builtin"
|
||||||
|
nullIpam "github.com/docker/libnetwork/ipams/null"
|
||||||
|
remoteIpam "github.com/docker/libnetwork/ipams/remote"
|
||||||
|
)
|
||||||
|
|
||||||
|
func initIPAMDrivers(r *drvregistry.DrvRegistry, lDs, gDs interface{}) error {
|
||||||
|
for _, fn := range [](func(ipamapi.Callback, interface{}, interface{}) error){
|
||||||
|
builtinIpam.Init,
|
||||||
|
remoteIpam.Init,
|
||||||
|
nullIpam.Init,
|
||||||
|
} {
|
||||||
|
if err := fn(r, lDs, gDs); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -8,10 +8,6 @@ import (
|
||||||
"github.com/docker/libnetwork/driverapi"
|
"github.com/docker/libnetwork/driverapi"
|
||||||
"github.com/docker/libnetwork/ipamapi"
|
"github.com/docker/libnetwork/ipamapi"
|
||||||
"github.com/docker/libnetwork/types"
|
"github.com/docker/libnetwork/types"
|
||||||
|
|
||||||
builtinIpam "github.com/docker/libnetwork/ipams/builtin"
|
|
||||||
nullIpam "github.com/docker/libnetwork/ipams/null"
|
|
||||||
remoteIpam "github.com/docker/libnetwork/ipams/remote"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type driverData struct {
|
type driverData struct {
|
||||||
|
@ -64,10 +60,6 @@ func New(lDs, gDs interface{}, dfn DriverNotifyFunc, ifn IPAMNotifyFunc) (*DrvRe
|
||||||
ifn: ifn,
|
ifn: ifn,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := r.initIPAMs(lDs, gDs); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return r, nil
|
return r, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,20 +149,6 @@ func (r *DrvRegistry) IPAMDefaultAddressSpaces(name string) (string, string, err
|
||||||
return i.defaultLocalAddressSpace, i.defaultGlobalAddressSpace, nil
|
return i.defaultLocalAddressSpace, i.defaultGlobalAddressSpace, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *DrvRegistry) initIPAMs(lDs, gDs interface{}) error {
|
|
||||||
for _, fn := range [](func(ipamapi.Callback, interface{}, interface{}) error){
|
|
||||||
builtinIpam.Init,
|
|
||||||
remoteIpam.Init,
|
|
||||||
nullIpam.Init,
|
|
||||||
} {
|
|
||||||
if err := fn(r, nil, gDs); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// RegisterDriver registers the network driver when it gets discovered.
|
// RegisterDriver registers the network driver when it gets discovered.
|
||||||
func (r *DrvRegistry) RegisterDriver(ntype string, driver driverapi.Driver, capability driverapi.Capability) error {
|
func (r *DrvRegistry) RegisterDriver(ntype string, driver driverapi.Driver, capability driverapi.Capability) error {
|
||||||
if strings.TrimSpace(ntype) == "" {
|
if strings.TrimSpace(ntype) == "" {
|
||||||
|
|
|
@ -9,6 +9,9 @@ import (
|
||||||
"github.com/docker/libnetwork/discoverapi"
|
"github.com/docker/libnetwork/discoverapi"
|
||||||
"github.com/docker/libnetwork/driverapi"
|
"github.com/docker/libnetwork/driverapi"
|
||||||
"github.com/docker/libnetwork/ipamapi"
|
"github.com/docker/libnetwork/ipamapi"
|
||||||
|
builtinIpam "github.com/docker/libnetwork/ipams/builtin"
|
||||||
|
nullIpam "github.com/docker/libnetwork/ipams/null"
|
||||||
|
remoteIpam "github.com/docker/libnetwork/ipams/remote"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -90,9 +93,26 @@ func getNew(t *testing.T) *DrvRegistry {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = initIPAMDrivers(reg, nil, nil)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
return reg
|
return reg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initIPAMDrivers(r *DrvRegistry, lDs, gDs interface{}) error {
|
||||||
|
for _, fn := range [](func(ipamapi.Callback, interface{}, interface{}) error){
|
||||||
|
builtinIpam.Init,
|
||||||
|
remoteIpam.Init,
|
||||||
|
nullIpam.Init,
|
||||||
|
} {
|
||||||
|
if err := fn(r, lDs, gDs); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
func TestNew(t *testing.T) {
|
func TestNew(t *testing.T) {
|
||||||
getNew(t)
|
getNew(t)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue