From a8139460ff98b081c06ecf28a821d6f456d9a079 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Tue, 15 Nov 2016 14:59:08 -0800 Subject: [PATCH] explicitly show plugins as unsupported on !linux Signed-off-by: Victor Vieux --- plugin/{backend.go => backend_linux.go} | 2 + plugin/backend_unsupported.go | 60 +++++++++++++++++++++++++ 2 files changed, 62 insertions(+) rename plugin/{backend.go => backend_linux.go} (99%) create mode 100644 plugin/backend_unsupported.go diff --git a/plugin/backend.go b/plugin/backend_linux.go similarity index 99% rename from plugin/backend.go rename to plugin/backend_linux.go index 2372f6f5bf..8c8f224561 100644 --- a/plugin/backend.go +++ b/plugin/backend_linux.go @@ -1,3 +1,5 @@ +// +build linux + package plugin import ( diff --git a/plugin/backend_unsupported.go b/plugin/backend_unsupported.go new file mode 100644 index 0000000000..cd3cf80d3b --- /dev/null +++ b/plugin/backend_unsupported.go @@ -0,0 +1,60 @@ +// +build !linux + +package plugin + +import ( + "errors" + "io" + "net/http" + + "github.com/docker/docker/api/types" + "golang.org/x/net/context" +) + +var ErrNotSupported = errors.New("plugins are not supported on this platform") + +// Disable deactivates a plugin, which implies that they cannot be used by containers. +func (pm *Manager) Disable(name string) error { + return ErrNotSupported +} + +// Enable activates a plugin, which implies that they are ready to be used by containers. +func (pm *Manager) Enable(name string) error { + return ErrNotSupported +} + +// Inspect examines a plugin config +func (pm *Manager) Inspect(name string) (tp types.Plugin, err error) { + return tp, ErrNotSupported +} + +// Pull pulls a plugin and computes the privileges required to install it. +func (pm *Manager) Pull(name string, metaHeader http.Header, authConfig *types.AuthConfig) (types.PluginPrivileges, error) { + return nil, ErrNotSupported +} + +// List displays the list of plugins and associated metadata. +func (pm *Manager) List() ([]types.Plugin, error) { + return nil, ErrNotSupported +} + +// Push pushes a plugin to the store. +func (pm *Manager) Push(name string, metaHeader http.Header, authConfig *types.AuthConfig) error { + return ErrNotSupported +} + +// Remove deletes plugin's root directory. +func (pm *Manager) Remove(name string, config *types.PluginRmConfig) error { + return ErrNotSupported +} + +// Set sets plugin args +func (pm *Manager) Set(name string, args []string) error { + return ErrNotSupported +} + +// CreateFromContext creates a plugin from the given pluginDir which contains +// both the rootfs and the config.json and a repoName with optional tag. +func (pm *Manager) CreateFromContext(ctx context.Context, tarCtx io.Reader, options *types.PluginCreateOptions) error { + return ErrNotSupported +}