Przeglądaj źródła

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>
Anusha Ragunathan 9 lat temu
rodzic
commit
8fd779dc28
4 zmienionych plików z 17 dodań i 2 usunięć
  1. 5 0
      pkg/plugins/plugins.go
  2. 1 0
      plugin/interface.go
  3. 5 0
      plugin/manager.go
  4. 6 2
      volume/drivers/extpoint.go

+ 5 - 0
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{

+ 1 - 0
plugin/interface.go

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

+ 5 - 0
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 {

+ 6 - 2
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