1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/pkg/plugingetter/getter.go
Madhu Venugopal 8f1b793528 Add a GetAll function that returns only managed plugins supported by V2
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>
2016-12-22 10:26:04 -08:00

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))
}