libnetwork: notify another driver registerer

There is no meaningful distinction between driverapi.Registerer and
drvregistry.DriverNotifyFunc. They are both used to register a network
driver with an interested party. They have the same function signature.
The only difference is that the latter could be satisfied by an
anonymous closure. However, in practice the only implementation of
drvregistry.DriverNotifyFunc is the
(*libnetwork.Controller).RegisterDriver method. This same method also
makes the libnetwork.Controller type satisfy the Registerer interface,
therefore the DriverNotifyFunc type is redundant. Change
drvregistry.Networks to notify a Registerer and drop the
DriverNotifyFunc type.

Signed-off-by: Cory Snider <csnider@mirantis.com>
This commit is contained in:
Cory Snider 2023-08-29 10:32:18 -04:00
parent cc1627ae10
commit a0a8d9d057
2 changed files with 3 additions and 6 deletions

View file

@ -124,7 +124,7 @@ func New(cfgOptions ...config.Option) (*Controller, error) {
return nil, err
}
c.drvRegistry.Notify = c.RegisterDriver
c.drvRegistry.Notify = c
// External plugins don't need config passed through daemon. They can
// bootstrap themselves.

View file

@ -11,9 +11,6 @@ import (
// DriverWalkFunc defines the network driver table walker function signature.
type DriverWalkFunc func(name string, driver driverapi.Driver, capability driverapi.Capability) bool
// DriverNotifyFunc defines the notify function signature when a new network driver gets registered.
type DriverNotifyFunc func(name string, driver driverapi.Driver, capability driverapi.Capability) error
type driverData struct {
driver driverapi.Driver
capability driverapi.Capability
@ -23,7 +20,7 @@ type driverData struct {
// driver registry, ready to use.
type Networks struct {
// Notify is called whenever a network driver is registered.
Notify DriverNotifyFunc
Notify driverapi.Registerer
mu sync.Mutex
drivers map[string]driverData
@ -76,7 +73,7 @@ func (nr *Networks) RegisterDriver(ntype string, driver driverapi.Driver, capabi
}
if nr.Notify != nil {
if err := nr.Notify(ntype, driver, capability); err != nil {
if err := nr.Notify.RegisterDriver(ntype, driver, capability); err != nil {
return err
}
}