diff --git a/plugin/getter/interface.go b/plugin/getter/interface.go index 1c1977d300..12558437e6 100644 --- a/plugin/getter/interface.go +++ b/plugin/getter/interface.go @@ -22,4 +22,5 @@ type CompatPlugin interface { type PluginGetter interface { Get(name, capability string, mode int) (CompatPlugin, error) GetAllByCap(capability string) ([]CompatPlugin, error) + Handle(capability string, callback func(string, *plugins.Client)) } diff --git a/plugin/store/store.go b/plugin/store/store.go index 2ba1b4ad94..46103379c3 100644 --- a/plugin/store/store.go +++ b/plugin/store/store.go @@ -24,3 +24,10 @@ func (ps Store) GetAllByCap(capability string) ([]getter.CompatPlugin, error) { func (ps Store) Get(name, capability string, _ int) (getter.CompatPlugin, error) { return plugins.Get(name, capability) } + +// Handle sets a callback for a given capability. It is only used by network +// and ipam drivers during plugin registration. The callback registers the +// driver with the subsystem (network, ipam). +func (ps *Store) Handle(capability string, callback func(string, *plugins.Client)) { + plugins.Handle(capability, callback) +} diff --git a/plugin/store/store_experimental.go b/plugin/store/store_experimental.go index a1fe10851f..6e9e0b7d91 100644 --- a/plugin/store/store_experimental.go +++ b/plugin/store/store_experimental.go @@ -208,15 +208,13 @@ func (ps *Store) GetAllByCap(capability string) ([]getter.CompatPlugin, error) { // Handle sets a callback for a given capability. It is only used by network // and ipam drivers during plugin registration. The callback registers the // driver with the subsystem (network, ipam). -func (ps Store) Handle(capability string, callback func(string, *plugins.Client)) { +func (ps *Store) Handle(capability string, callback func(string, *plugins.Client)) { pluginType := fmt.Sprintf("docker.%s/1", strings.ToLower(capability)) - store := &ps - // Register callback with new plugin model. - store.Lock() - store.handlers[pluginType] = callback - store.Unlock() + ps.Lock() + ps.handlers[pluginType] = callback + ps.Unlock() // Register callback with legacy plugin model. if allowV1PluginsFallback {