mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
8f1b793528
The current GetAll handles both V2 and legacy plugins. Also due to the nature of V1 plugins, it also loads them. This causes problems when loading is not required. Hence adding an independent API that will return only the plugins that are loaded using v2 mangaed plugins. Signed-off-by: Madhu Venugopal <madhu@docker.com>
35 lines
864 B
Go
35 lines
864 B
Go
package plugingetter
|
|
|
|
import "github.com/docker/docker/pkg/plugins"
|
|
|
|
const (
|
|
// LOOKUP doesn't update RefCount
|
|
LOOKUP = 0
|
|
// ACQUIRE increments RefCount
|
|
ACQUIRE = 1
|
|
// RELEASE decrements RefCount
|
|
RELEASE = -1
|
|
)
|
|
|
|
// CompatPlugin is an abstraction to handle both v2(new) and v1(legacy) plugins.
|
|
type CompatPlugin interface {
|
|
Client() *plugins.Client
|
|
Name() string
|
|
BasePath() string
|
|
IsV1() bool
|
|
}
|
|
|
|
// CountedPlugin is a plugin which is reference counted.
|
|
type CountedPlugin interface {
|
|
Acquire()
|
|
Release()
|
|
CompatPlugin
|
|
}
|
|
|
|
// PluginGetter is the interface implemented by Store
|
|
type PluginGetter interface {
|
|
Get(name, capability string, mode int) (CompatPlugin, error)
|
|
GetAllByCap(capability string) ([]CompatPlugin, error)
|
|
GetAllManagedPluginsByCap(capability string) []CompatPlugin
|
|
Handle(capability string, callback func(string, *plugins.Client))
|
|
}
|