This allows a plugin to be upgraded without requiring to uninstall/reinstall a plugin. Since plugin resources (e.g. volumes) are tied to a plugin ID, this is important to ensure resources aren't lost. The plugin must be disabled while upgrading (errors out if enabled). This does not add any convenience flags for automatically disabling/re-enabling the plugin during before/after upgrade. Since an upgrade may change requested permissions, the user is required to accept permissions just like `docker plugin install`. Signed-off-by: Brian Goff <cpuguy83@gmail.com> Upstream-commit: 03c694973968f63743ed53cef83d0b7455695081 Component: engine
27 lines
1.3 KiB
Go
27 lines
1.3 KiB
Go
package plugin
|
|
|
|
import (
|
|
"io"
|
|
"net/http"
|
|
|
|
enginetypes "github.com/docker/docker/api/types"
|
|
"github.com/docker/docker/api/types/filters"
|
|
"github.com/docker/docker/reference"
|
|
"golang.org/x/net/context"
|
|
)
|
|
|
|
// Backend for Plugin
|
|
type Backend interface {
|
|
Disable(name string, config *enginetypes.PluginDisableConfig) error
|
|
Enable(name string, config *enginetypes.PluginEnableConfig) error
|
|
List(filters.Args) ([]enginetypes.Plugin, error)
|
|
Inspect(name string) (*enginetypes.Plugin, error)
|
|
Remove(name string, config *enginetypes.PluginRmConfig) error
|
|
Set(name string, args []string) error
|
|
Privileges(ctx context.Context, ref reference.Named, metaHeaders http.Header, authConfig *enginetypes.AuthConfig) (enginetypes.PluginPrivileges, error)
|
|
Pull(ctx context.Context, ref reference.Named, name string, metaHeaders http.Header, authConfig *enginetypes.AuthConfig, privileges enginetypes.PluginPrivileges, outStream io.Writer) error
|
|
Push(ctx context.Context, name string, metaHeaders http.Header, authConfig *enginetypes.AuthConfig, outStream io.Writer) error
|
|
Upgrade(ctx context.Context, ref reference.Named, name string, metaHeaders http.Header, authConfig *enginetypes.AuthConfig, privileges enginetypes.PluginPrivileges, outStream io.Writer) error
|
|
CreateFromContext(ctx context.Context, tarCtx io.ReadCloser, options *enginetypes.PluginCreateOptions) error
|
|
}
|