f37117045c
This patch introduces a new experimental engine-level plugin management with a new API and command line. Plugins can be distributed via a Docker registry, and their lifecycle is managed by the engine. This makes plugins a first-class construct. For more background, have a look at issue #20363. Documentation is in a separate commit. If you want to understand how the new plugin system works, you can start by reading the documentation. Note: backwards compatibility with existing plugins is maintained, albeit they won't benefit from the advantages of the new system. Signed-off-by: Tibor Vass <tibor@docker.com> Signed-off-by: Anusha Ragunathan <anusha@docker.com>
23 lines
598 B
Go
23 lines
598 B
Go
// +build !experimental
|
|
|
|
package plugin
|
|
|
|
import "github.com/docker/docker/pkg/plugins"
|
|
|
|
// FindWithCapability returns a list of plugins matching the given capability.
|
|
func FindWithCapability(capability string) ([]Plugin, error) {
|
|
pl, err := plugins.GetAll(capability)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := make([]Plugin, 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) (Plugin, error) {
|
|
return plugins.Get(name, capability)
|
|
}
|