| package convert | |
| import ( | |
| "github.com/docker/docker/pkg/plugingetter" | |
| "github.com/moby/swarmkit/v2/node/plugin" | |
| ) | |
| // SwarmPluginGetter adapts a plugingetter.PluginGetter to a Swarmkit plugin.Getter. | |
| func SwarmPluginGetter(pg plugingetter.PluginGetter) plugin.Getter { | |
| return pluginGetter{pg} | |
| } | |
| type pluginGetter struct { | |
| pg plugingetter.PluginGetter | |
| } | |
| var _ plugin.Getter = (*pluginGetter)(nil) | |
| type swarmPlugin struct { | |
| plugingetter.CompatPlugin | |
| } | |
| func (p swarmPlugin) Client() plugin.Client { | |
| return p.CompatPlugin.Client() | |
| } | |
| func (g pluginGetter) Get(name string, capability string) (plugin.Plugin, error) { | |
| p, err := g.pg.Get(name, capability, plugingetter.Lookup) | |
| if err != nil { | |
| return nil, err | |
| } | |
| return swarmPlugin{p}, nil | |
| } | |
| func (g pluginGetter) GetAllManagedPluginsByCap(capability string) []plugin.Plugin { | |
| pp := g.pg.GetAllManagedPluginsByCap(capability) | |
| ret := make([]plugin.Plugin, len(pp)) | |
| for i, p := range pp { | |
| ret[i] = swarmPlugin{p} | |
| } | |
| return ret | |
| } |