mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
![Brian Goff](/assets/img/avatar_default.png)
Use the (new) plugin fixtures for plugin tests rather than pulling plugins from hub. This removes the restriction for platforms/archs since plugin binaries get built in the test environment. Future work would be to add test plugins for the various subsystems so tests that are actually using plugins (e.g. volumes, networks) can be ported to use the fixtures as well. Signed-off-by: Brian Goff <cpuguy83@gmail.com>
34 lines
876 B
Go
34 lines
876 B
Go
package plugin
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/docker/docker/api/types"
|
|
"golang.org/x/net/context"
|
|
)
|
|
|
|
// CreateOpt is is passed used to change the defualt plugin config before
|
|
// creating it
|
|
type CreateOpt func(*Config)
|
|
|
|
// Config wraps types.PluginConfig to provide some extra state for options
|
|
// extra customizations on the plugin details, such as using a custom binary to
|
|
// create the plugin with.
|
|
type Config struct {
|
|
*types.PluginConfig
|
|
binPath string
|
|
}
|
|
|
|
// WithBinary is a CreateOpt to set an custom binary to create the plugin with.
|
|
// This binary must be statically compiled.
|
|
func WithBinary(bin string) CreateOpt {
|
|
return func(cfg *Config) {
|
|
cfg.binPath = bin
|
|
}
|
|
}
|
|
|
|
// CreateClient is the interface used for `BuildPlugin` to interact with the
|
|
// daemon.
|
|
type CreateClient interface {
|
|
PluginCreate(context.Context, io.Reader, types.PluginCreateOptions) error
|
|
}
|