|
@@ -29,12 +29,7 @@ func newDriver(name string, client *plugins.Client) driverapi.Driver {
|
|
// Init makes sure a remote driver is registered when a network driver
|
|
// Init makes sure a remote driver is registered when a network driver
|
|
// plugin is activated.
|
|
// plugin is activated.
|
|
func Init(dc driverapi.DriverCallback, config map[string]interface{}) error {
|
|
func Init(dc driverapi.DriverCallback, config map[string]interface{}) error {
|
|
- // Unit test code is unaware of a true PluginStore. So we fall back to v1 plugins.
|
|
|
|
- handleFunc := plugins.Handle
|
|
|
|
- if pg := dc.GetPluginGetter(); pg != nil {
|
|
|
|
- handleFunc = pg.Handle
|
|
|
|
- }
|
|
|
|
- handleFunc(driverapi.NetworkPluginEndpointType, func(name string, client *plugins.Client) {
|
|
|
|
|
|
+ newPluginHandler := func(name string, client *plugins.Client) {
|
|
// negotiate driver capability with client
|
|
// negotiate driver capability with client
|
|
d := newDriver(name, client)
|
|
d := newDriver(name, client)
|
|
c, err := d.(*driver).getCapabilities()
|
|
c, err := d.(*driver).getCapabilities()
|
|
@@ -45,7 +40,19 @@ func Init(dc driverapi.DriverCallback, config map[string]interface{}) error {
|
|
if err = dc.RegisterDriver(name, d, *c); err != nil {
|
|
if err = dc.RegisterDriver(name, d, *c); err != nil {
|
|
logrus.Errorf("error registering driver for %s due to %v", name, err)
|
|
logrus.Errorf("error registering driver for %s due to %v", name, err)
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // Unit test code is unaware of a true PluginStore. So we fall back to v1 plugins.
|
|
|
|
+ handleFunc := plugins.Handle
|
|
|
|
+ if pg := dc.GetPluginGetter(); pg != nil {
|
|
|
|
+ handleFunc = pg.Handle
|
|
|
|
+ activePlugins := pg.GetAllManagedPluginsByCap(driverapi.NetworkPluginEndpointType)
|
|
|
|
+ for _, ap := range activePlugins {
|
|
|
|
+ newPluginHandler(ap.Name(), ap.Client())
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ handleFunc(driverapi.NetworkPluginEndpointType, newPluginHandler)
|
|
|
|
+
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
@@ -305,6 +312,10 @@ func (d *driver) Type() string {
|
|
return d.networkType
|
|
return d.networkType
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func (d *driver) IsBuiltIn() bool {
|
|
|
|
+ return false
|
|
|
|
+}
|
|
|
|
+
|
|
// DiscoverNew is a notification for a new discovery event, such as a new node joining a cluster
|
|
// DiscoverNew is a notification for a new discovery event, such as a new node joining a cluster
|
|
func (d *driver) DiscoverNew(dType discoverapi.DiscoveryType, data interface{}) error {
|
|
func (d *driver) DiscoverNew(dType discoverapi.DiscoveryType, data interface{}) error {
|
|
if dType != discoverapi.NodeDiscovery {
|
|
if dType != discoverapi.NodeDiscovery {
|