mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
27a55fba28
Split plugin package into `store` and `v2/plugin`. Now the functionality is clearly delineated: - Manager: Manages the global state of the plugin sub-system. - PluginStore: Manages a collection of plugins (in memory and on-disk) - Plugin: Manages the single plugin unit. This also facilitates splitting the global PluginManager lock into: - PluginManager lock to protect global states. - PluginStore lock to protect store states. - Plugin lock to protect individual plugin states. Importing "github.com/docker/docker/plugin/store" will provide access to plugins and has lesser dependencies when compared to importing the original monolithic `plugin package`. Signed-off-by: Anusha Ragunathan <anusha@docker.com>
25 lines
620 B
Go
25 lines
620 B
Go
// +build !experimental
|
|
|
|
package store
|
|
|
|
import (
|
|
"github.com/docker/docker/pkg/plugins"
|
|
)
|
|
|
|
// FindWithCapability returns a list of plugins matching the given capability.
|
|
func FindWithCapability(capability string) ([]CompatPlugin, error) {
|
|
pl, err := plugins.GetAll(capability)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := make([]CompatPlugin, len(pl))
|
|
for i, p := range pl {
|
|
result[i] = p
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
// LookupWithCapability returns a plugin matching the given name and capability.
|
|
func LookupWithCapability(name, capability string) (CompatPlugin, error) {
|
|
return plugins.Get(name, capability)
|
|
}
|