2039ea6adc
When plugins have a positive refcount, they were not allowed to be
removed. However, plugins could still be disabled when volumes
referenced it and containers using them were running.
This change fixes that by enforcing plugin refcount during disable.
A "force" disable option is also added to ignore reference refcounting.
Signed-off-by: Anusha Ragunathan <anusha@docker.com>
(cherry picked from commit 8cb2229cd1
)
69 lines
2.1 KiB
Go
69 lines
2.1 KiB
Go
package types
|
|
|
|
import (
|
|
"github.com/docker/docker/api/types/container"
|
|
"github.com/docker/docker/api/types/network"
|
|
)
|
|
|
|
// configs holds structs used for internal communication between the
|
|
// frontend (such as an http server) and the backend (such as the
|
|
// docker daemon).
|
|
|
|
// ContainerCreateConfig is the parameter set to ContainerCreate()
|
|
type ContainerCreateConfig struct {
|
|
Name string
|
|
Config *container.Config
|
|
HostConfig *container.HostConfig
|
|
NetworkingConfig *network.NetworkingConfig
|
|
AdjustCPUShares bool
|
|
}
|
|
|
|
// ContainerRmConfig holds arguments for the container remove
|
|
// operation. This struct is used to tell the backend what operations
|
|
// to perform.
|
|
type ContainerRmConfig struct {
|
|
ForceRemove, RemoveVolume, RemoveLink bool
|
|
}
|
|
|
|
// ContainerCommitConfig contains build configs for commit operation,
|
|
// and is used when making a commit with the current state of the container.
|
|
type ContainerCommitConfig struct {
|
|
Pause bool
|
|
Repo string
|
|
Tag string
|
|
Author string
|
|
Comment string
|
|
// merge container config into commit config before commit
|
|
MergeConfigs bool
|
|
Config *container.Config
|
|
}
|
|
|
|
// ExecConfig is a small subset of the Config struct that holds the configuration
|
|
// for the exec feature of docker.
|
|
type ExecConfig struct {
|
|
User string // User that will run the command
|
|
Privileged bool // Is the container in privileged mode
|
|
Tty bool // Attach standard streams to a tty.
|
|
AttachStdin bool // Attach the standard input, makes possible user interaction
|
|
AttachStderr bool // Attach the standard error
|
|
AttachStdout bool // Attach the standard output
|
|
Detach bool // Execute in detach mode
|
|
DetachKeys string // Escape keys for detach
|
|
Env []string // Environment variables
|
|
Cmd []string // Execution commands and args
|
|
}
|
|
|
|
// PluginRmConfig holds arguments for plugin remove.
|
|
type PluginRmConfig struct {
|
|
ForceRemove bool
|
|
}
|
|
|
|
// PluginEnableConfig holds arguments for plugin enable
|
|
type PluginEnableConfig struct {
|
|
Timeout int
|
|
}
|
|
|
|
// PluginDisableConfig holds arguments for plugin disable.
|
|
type PluginDisableConfig struct {
|
|
ForceDisable bool
|
|
}
|