From d599d53db27f4a24b18f51464c39707eae383c7e Mon Sep 17 00:00:00 2001 From: Anusha Ragunathan Date: Tue, 4 Oct 2016 10:52:18 -0700 Subject: [PATCH] Add plugingetter to pkg. plugingetter is indepedent of docker/docker packages, so it can be moved to pkg. This is also necessary for authorization plugins (part of pkg) to use pluginv2. The original path at plugin/getter will be eventually removed, when external repos (eg. libnetwork) update their import paths. Signed-off-by: Anusha Ragunathan --- pkg/plugingetter/getter.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 pkg/plugingetter/getter.go diff --git a/pkg/plugingetter/getter.go b/pkg/plugingetter/getter.go new file mode 100644 index 0000000000..cd8214cae9 --- /dev/null +++ b/pkg/plugingetter/getter.go @@ -0,0 +1,26 @@ +package plugingetter + +import "github.com/docker/docker/pkg/plugins" + +const ( + // LOOKUP doesn't update RefCount + LOOKUP = 0 + // CREATE increments RefCount + CREATE = 1 + // REMOVE decrements RefCount + REMOVE = -1 +) + +// CompatPlugin is a abstraction to handle both v2(new) and v1(legacy) plugins. +type CompatPlugin interface { + Client() *plugins.Client + Name() string + IsV1() bool +} + +// PluginGetter is the interface implemented by Store +type PluginGetter interface { + Get(name, capability string, mode int) (CompatPlugin, error) + GetAllByCap(capability string) ([]CompatPlugin, error) + Handle(capability string, callback func(string, *plugins.Client)) +}