Add only legacy plugins to the legacy lookup map.

Legacy plugin model maintained a map of plugins. This is
not used by the new model. Using this map in the new model
causes incorrect lookup of plugins. This change uses adds
a plugin to the map only if its legacy.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
(cherry picked from commit 8fd779dc28)
Signed-off-by: Tibor Vass <tibor@docker.com>
This commit is contained in:
Anusha Ragunathan 2016-07-18 15:39:27 -07:00 committed by Tibor Vass
parent 45920009cc
commit fee68def8f
4 changed files with 17 additions and 2 deletions

View file

@ -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{

View file

@ -6,4 +6,5 @@ import "github.com/docker/docker/pkg/plugins"
type Plugin interface {
Client() *plugins.Client
Name() string
IsLegacy() bool
}

View file

@ -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 {

View file

@ -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