diff --git a/components/engine/pkg/plugins/plugins.go b/components/engine/pkg/plugins/plugins.go index 9cda7fcd4c..debcd087c9 100644 --- a/components/engine/pkg/plugins/plugins.go +++ b/components/engine/pkg/plugins/plugins.go @@ -83,6 +83,11 @@ func (p *Plugin) Client() *Client { return p.client } +// IsLegacy returns true for legacy plugins and false otherwise. +func (p *Plugin) IsLegacy() bool { + return true +} + // NewLocalPlugin creates a new local plugin. func NewLocalPlugin(name, addr string) *Plugin { return &Plugin{ diff --git a/components/engine/plugin/interface.go b/components/engine/plugin/interface.go index 4a3ed64df2..80e6b5b8df 100644 --- a/components/engine/plugin/interface.go +++ b/components/engine/plugin/interface.go @@ -6,4 +6,5 @@ import "github.com/docker/docker/pkg/plugins" type Plugin interface { Client() *plugins.Client Name() string + IsLegacy() bool } diff --git a/components/engine/plugin/manager.go b/components/engine/plugin/manager.go index 47b3d3bcc1..be2f601671 100644 --- a/components/engine/plugin/manager.go +++ b/components/engine/plugin/manager.go @@ -54,6 +54,11 @@ func (p *plugin) Client() *plugins.Client { return p.client } +// IsLegacy returns true for legacy plugins and false otherwise. +func (p *plugin) IsLegacy() bool { + return false +} + func (p *plugin) Name() string { name := p.P.Name if len(p.P.Tag) > 0 { diff --git a/components/engine/volume/drivers/extpoint.go b/components/engine/volume/drivers/extpoint.go index 537a25f472..785063dfff 100644 --- a/components/engine/volume/drivers/extpoint.go +++ b/components/engine/volume/drivers/extpoint.go @@ -118,7 +118,9 @@ func lookup(name string) (volume.Driver, error) { return nil, err } - drivers.extensions[name] = d + if p.IsLegacy() { + drivers.extensions[name] = d + } return d, nil } @@ -174,7 +176,9 @@ func GetAllDrivers() ([]volume.Driver, error) { } ext = NewVolumeDriver(name, p.Client()) - drivers.extensions[name] = ext + if p.IsLegacy() { + drivers.extensions[name] = ext + } ds = append(ds, ext) } return ds, nil