Skip to content

Commit 3c97181

Browse files
committed
libnet/ipams: register all drivers
Signed-off-by: Albin Kerouanton <[email protected]>
1 parent eda4750 commit 3c97181

5 files changed

Lines changed: 24 additions & 37 deletions

File tree

libnetwork/cnmallocator/drivers_ipam.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ import (
77

88
"github.com/containerd/log"
99
"github.com/docker/docker/libnetwork/ipamapi"
10-
builtinIpam "github.com/docker/docker/libnetwork/ipams"
11-
nullIpam "github.com/docker/docker/libnetwork/ipams/null"
10+
"github.com/docker/docker/libnetwork/ipams"
1211
"github.com/docker/docker/libnetwork/ipamutils"
1312
"github.com/moby/swarmkit/v2/manager/allocator/networkallocator"
1413
)
@@ -40,10 +39,7 @@ func initIPAMDrivers(r ipamapi.Registerer, netConfig *networkallocator.Config) e
4039
log.G(context.TODO()).Infof("Swarm initialized global default address pool to: " + str.String())
4140
}
4241

43-
if err := builtinIpam.Register(r, []*ipamutils.NetworkToSplit(nil)); err != nil {
44-
return err
45-
}
46-
if err := nullIpam.Register(r); err != nil {
42+
if err := ipams.Register(r, nil, []*ipamutils.NetworkToSplit(nil)); err != nil {
4743
return err
4844
}
4945

libnetwork/controller.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import (
6363
remotedriver "github.com/docker/docker/libnetwork/drivers/remote"
6464
"github.com/docker/docker/libnetwork/drvregistry"
6565
"github.com/docker/docker/libnetwork/ipamapi"
66+
"github.com/docker/docker/libnetwork/ipams"
6667
"github.com/docker/docker/libnetwork/netlabel"
6768
"github.com/docker/docker/libnetwork/osl"
6869
"github.com/docker/docker/libnetwork/scope"
@@ -132,7 +133,7 @@ func New(cfgOptions ...config.Option) (*Controller, error) {
132133
return nil, err
133134
}
134135

135-
if err := initIPAMDrivers(&c.ipamRegistry, c.cfg.PluginGetter, c.cfg.DefaultAddressPool); err != nil {
136+
if err := ipams.Register(&c.ipamRegistry, c.cfg.PluginGetter, c.cfg.DefaultAddressPool); err != nil {
136137
return nil, err
137138
}
138139

libnetwork/drivers_ipam.go

Lines changed: 0 additions & 20 deletions
This file was deleted.

libnetwork/drvregistry/ipams_test.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ import (
66
"testing"
77

88
"github.com/docker/docker/libnetwork/ipamapi"
9-
builtinIpam "github.com/docker/docker/libnetwork/ipams"
10-
nullIpam "github.com/docker/docker/libnetwork/ipams/null"
11-
remoteIpam "github.com/docker/docker/libnetwork/ipams/remote"
9+
"github.com/docker/docker/libnetwork/ipams"
1210
"github.com/docker/docker/libnetwork/ipamutils"
1311
"gotest.tools/v3/assert"
1412
is "gotest.tools/v3/assert/cmp"
@@ -17,9 +15,7 @@ import (
1715
func getNewIPAMs(t *testing.T) *IPAMs {
1816
r := &IPAMs{}
1917

20-
assert.Assert(t, builtinIpam.Register(r, []*ipamutils.NetworkToSplit(nil)))
21-
assert.Assert(t, remoteIpam.Register(r, nil))
22-
assert.Assert(t, nullIpam.Register(r))
18+
assert.Assert(t, ipams.Register(r, nil, []*ipamutils.NetworkToSplit(nil)))
2319

2420
return r
2521
}

libnetwork/ipams/drivers.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,29 @@ package ipams
33
import (
44
"github.com/docker/docker/libnetwork/ipamapi"
55
"github.com/docker/docker/libnetwork/ipams/defaultipam"
6+
"github.com/docker/docker/libnetwork/ipams/null"
7+
remoteIpam "github.com/docker/docker/libnetwork/ipams/remote"
68
"github.com/docker/docker/libnetwork/ipams/windowsipam"
79
"github.com/docker/docker/libnetwork/ipamutils"
10+
"github.com/docker/docker/pkg/plugingetter"
811
)
912

10-
// Register registers the built-in ipam services with libnetwork.
11-
func Register(r ipamapi.Registerer, addressPools []*ipamutils.NetworkToSplit) error {
13+
// Register registers all the builtin drivers (ie. default, windowsipam, null
14+
// and remote). If 'pg' is nil, the remote driver won't be registered.
15+
func Register(r ipamapi.Registerer, pg plugingetter.PluginGetter, addressPools []*ipamutils.NetworkToSplit) error {
1216
if err := defaultipam.Register(r, addressPools); err != nil {
1317
return err
1418
}
15-
16-
return windowsipam.Register(r)
19+
if err := windowsipam.Register(r); err != nil {
20+
return err
21+
}
22+
if err := null.Register(r); err != nil {
23+
return err
24+
}
25+
if pg != nil {
26+
if err := remoteIpam.Register(r, pg); err != nil {
27+
return err
28+
}
29+
}
30+
return nil
1731
}

0 commit comments

Comments
 (0)