diff --git a/components/engine/daemon/daemon.go b/components/engine/daemon/daemon.go index 9a07e5ce2e..0ea72975a9 100644 --- a/components/engine/daemon/daemon.go +++ b/components/engine/daemon/daemon.go @@ -40,6 +40,7 @@ import ( "github.com/docker/docker/pkg/fileutils" "github.com/docker/docker/pkg/graphdb" "github.com/docker/docker/pkg/idtools" + "github.com/docker/docker/pkg/plugingetter" "github.com/docker/docker/pkg/progress" "github.com/docker/docker/pkg/registrar" "github.com/docker/docker/pkg/signal" @@ -47,7 +48,6 @@ import ( "github.com/docker/docker/pkg/sysinfo" "github.com/docker/docker/pkg/system" "github.com/docker/docker/pkg/truncindex" - plugingetter "github.com/docker/docker/plugin/getter" pluginstore "github.com/docker/docker/plugin/store" "github.com/docker/docker/reference" "github.com/docker/docker/registry" diff --git a/components/engine/daemon/graphdriver/driver.go b/components/engine/daemon/graphdriver/driver.go index 19bd8afad5..b1cc307db1 100644 --- a/components/engine/daemon/graphdriver/driver.go +++ b/components/engine/daemon/graphdriver/driver.go @@ -12,7 +12,7 @@ import ( "github.com/docker/docker/pkg/archive" "github.com/docker/docker/pkg/idtools" - "github.com/docker/docker/plugin/getter" + "github.com/docker/docker/pkg/plugingetter" ) // FsMagic unsigned id of the filesystem in use. @@ -135,11 +135,11 @@ func Register(name string, initFunc InitFunc) error { } // GetDriver initializes and returns the registered driver -func GetDriver(name, home string, options []string, uidMaps, gidMaps []idtools.IDMap, plugingetter getter.PluginGetter) (Driver, error) { +func GetDriver(name, home string, options []string, uidMaps, gidMaps []idtools.IDMap, pg plugingetter.PluginGetter) (Driver, error) { if initFunc, exists := drivers[name]; exists { return initFunc(filepath.Join(home, name), options, uidMaps, gidMaps) } - if pluginDriver, err := lookupPlugin(name, home, options, plugingetter); err == nil { + if pluginDriver, err := lookupPlugin(name, home, options, pg); err == nil { return pluginDriver, nil } logrus.Errorf("Failed to GetDriver graph %s %s", name, home) @@ -156,10 +156,10 @@ func getBuiltinDriver(name, home string, options []string, uidMaps, gidMaps []id } // New creates the driver and initializes it at the specified root. -func New(root string, name string, options []string, uidMaps, gidMaps []idtools.IDMap, plugingetter getter.PluginGetter) (Driver, error) { +func New(root string, name string, options []string, uidMaps, gidMaps []idtools.IDMap, pg plugingetter.PluginGetter) (Driver, error) { if name != "" { logrus.Debugf("[graphdriver] trying provided driver: %s", name) // so the logs show specified driver - return GetDriver(name, root, options, uidMaps, gidMaps, plugingetter) + return GetDriver(name, root, options, uidMaps, gidMaps, pg) } // Guess for prior driver diff --git a/components/engine/daemon/graphdriver/plugin.go b/components/engine/daemon/graphdriver/plugin.go index 9a044d2f86..be1b244e72 100644 --- a/components/engine/daemon/graphdriver/plugin.go +++ b/components/engine/daemon/graphdriver/plugin.go @@ -6,7 +6,7 @@ import ( "fmt" "io" - "github.com/docker/docker/plugin/getter" + "github.com/docker/docker/pkg/plugingetter" ) type pluginClient interface { @@ -18,8 +18,8 @@ type pluginClient interface { SendFile(string, io.Reader, interface{}) error } -func lookupPlugin(name, home string, opts []string, pluginGetter getter.PluginGetter) (Driver, error) { - pl, err := pluginGetter.Get(name, "GraphDriver", getter.LOOKUP) +func lookupPlugin(name, home string, opts []string, pg plugingetter.PluginGetter) (Driver, error) { + pl, err := pg.Get(name, "GraphDriver", plugingetter.LOOKUP) if err != nil { return nil, fmt.Errorf("Error looking up graphdriver plugin %s: %v", name, err) } diff --git a/components/engine/daemon/graphdriver/plugin_unsupported.go b/components/engine/daemon/graphdriver/plugin_unsupported.go index a16ef06858..c2fad0fcd2 100644 --- a/components/engine/daemon/graphdriver/plugin_unsupported.go +++ b/components/engine/daemon/graphdriver/plugin_unsupported.go @@ -2,8 +2,8 @@ package graphdriver -import "github.com/docker/docker/plugin/getter" +import "github.com/docker/docker/pkg/plugingetter" -func lookupPlugin(name, home string, opts []string, plugingetter getter.PluginGetter) (Driver, error) { +func lookupPlugin(name, home string, opts []string, pg plugingetter.PluginGetter) (Driver, error) { return nil, ErrNotSupported } diff --git a/components/engine/layer/layer_store.go b/components/engine/layer/layer_store.go index 76b1d8ba20..8c7bd7526b 100644 --- a/components/engine/layer/layer_store.go +++ b/components/engine/layer/layer_store.go @@ -13,8 +13,8 @@ import ( "github.com/docker/docker/daemon/graphdriver" "github.com/docker/docker/pkg/archive" "github.com/docker/docker/pkg/idtools" + "github.com/docker/docker/pkg/plugingetter" "github.com/docker/docker/pkg/stringid" - "github.com/docker/docker/plugin/getter" "github.com/vbatts/tar-split/tar/asm" "github.com/vbatts/tar-split/tar/storage" ) @@ -45,7 +45,7 @@ type StoreOptions struct { GraphDriverOptions []string UIDMaps []idtools.IDMap GIDMaps []idtools.IDMap - PluginGetter getter.PluginGetter + PluginGetter plugingetter.PluginGetter } // NewStoreFromOptions creates a new Store instance diff --git a/components/engine/plugin/getter/interface.go b/components/engine/plugin/getter/interface.go deleted file mode 100644 index 12558437e6..0000000000 --- a/components/engine/plugin/getter/interface.go +++ /dev/null @@ -1,26 +0,0 @@ -package getter - -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)) -} diff --git a/components/engine/plugin/store/store.go b/components/engine/plugin/store/store.go index 46103379c3..375488f250 100644 --- a/components/engine/plugin/store/store.go +++ b/components/engine/plugin/store/store.go @@ -3,17 +3,17 @@ package store import ( + "github.com/docker/docker/pkg/plugingetter" "github.com/docker/docker/pkg/plugins" - "github.com/docker/docker/plugin/getter" ) // GetAllByCap returns a list of plugins matching the given capability. -func (ps Store) GetAllByCap(capability string) ([]getter.CompatPlugin, error) { +func (ps Store) GetAllByCap(capability string) ([]plugingetter.CompatPlugin, error) { pl, err := plugins.GetAll(capability) if err != nil { return nil, err } - result := make([]getter.CompatPlugin, len(pl)) + result := make([]plugingetter.CompatPlugin, len(pl)) for i, p := range pl { result[i] = p } @@ -21,7 +21,7 @@ func (ps Store) GetAllByCap(capability string) ([]getter.CompatPlugin, error) { } // Get returns a plugin matching the given name and capability. -func (ps Store) Get(name, capability string, _ int) (getter.CompatPlugin, error) { +func (ps Store) Get(name, capability string, _ int) (plugingetter.CompatPlugin, error) { return plugins.Get(name, capability) } diff --git a/components/engine/plugin/store/store_experimental.go b/components/engine/plugin/store/store_experimental.go index 3b33a45aa9..6eb99cc1ca 100644 --- a/components/engine/plugin/store/store_experimental.go +++ b/components/engine/plugin/store/store_experimental.go @@ -9,8 +9,8 @@ import ( "github.com/Sirupsen/logrus" "github.com/docker/docker/pkg/ioutils" + "github.com/docker/docker/pkg/plugingetter" "github.com/docker/docker/pkg/plugins" - "github.com/docker/docker/plugin/getter" "github.com/docker/docker/plugin/v2" "github.com/docker/docker/reference" ) @@ -80,11 +80,11 @@ func (ps *Store) getByCap(name string, capability string) (*v2.Plugin, error) { return p.FilterByCap(capability) } -func (ps *Store) getAllByCap(capability string) []getter.CompatPlugin { +func (ps *Store) getAllByCap(capability string) []plugingetter.CompatPlugin { ps.RLock() defer ps.RUnlock() - result := make([]getter.CompatPlugin, 0, 1) + result := make([]plugingetter.CompatPlugin, 0, 1) for _, p := range ps.plugins { if _, err := p.FilterByCap(capability); err == nil { result = append(result, p) @@ -132,7 +132,7 @@ func (ps *Store) updatePluginDB() error { } // Get returns a plugin matching the given name and capability. -func (ps *Store) Get(name, capability string, mode int) (getter.CompatPlugin, error) { +func (ps *Store) Get(name, capability string, mode int) (plugingetter.CompatPlugin, error) { var ( p *v2.Plugin err error @@ -176,8 +176,8 @@ func (ps *Store) Get(name, capability string, mode int) (getter.CompatPlugin, er } // GetAllByCap returns a list of plugins matching the given capability. -func (ps *Store) GetAllByCap(capability string) ([]getter.CompatPlugin, error) { - result := make([]getter.CompatPlugin, 0, 1) +func (ps *Store) GetAllByCap(capability string) ([]plugingetter.CompatPlugin, error) { + result := make([]plugingetter.CompatPlugin, 0, 1) /* Daemon start always calls plugin.Init thereby initializing a store. * So store on experimental builds can never be nil, even while diff --git a/components/engine/volume/drivers/extpoint.go b/components/engine/volume/drivers/extpoint.go index eae24d9fd9..a8c10746ec 100644 --- a/components/engine/volume/drivers/extpoint.go +++ b/components/engine/volume/drivers/extpoint.go @@ -7,7 +7,7 @@ import ( "sync" "github.com/docker/docker/pkg/locker" - "github.com/docker/docker/plugin/getter" + getter "github.com/docker/docker/pkg/plugingetter" "github.com/docker/docker/volume" )