| package executor // import "github.com/docker/docker/daemon/cluster/executor" | |
| import ( | |
| "context" | |
| "io" | |
| "time" | |
| "github.com/docker/distribution" | |
| "github.com/docker/distribution/reference" | |
| "github.com/docker/docker/api/types" | |
| "github.com/docker/docker/api/types/backend" | |
| "github.com/docker/docker/api/types/container" | |
| "github.com/docker/docker/api/types/events" | |
| "github.com/docker/docker/api/types/filters" | |
| opts "github.com/docker/docker/api/types/image" | |
| "github.com/docker/docker/api/types/network" | |
| "github.com/docker/docker/api/types/registry" | |
| "github.com/docker/docker/api/types/swarm" | |
| "github.com/docker/docker/api/types/volume" | |
| containerpkg "github.com/docker/docker/container" | |
| clustertypes "github.com/docker/docker/daemon/cluster/provider" | |
| networkSettings "github.com/docker/docker/daemon/network" | |
| "github.com/docker/docker/image" | |
| "github.com/docker/docker/libnetwork" | |
| "github.com/docker/docker/libnetwork/cluster" | |
| networktypes "github.com/docker/docker/libnetwork/types" | |
| "github.com/docker/docker/plugin" | |
| volumeopts "github.com/docker/docker/volume/service/opts" | |
| "github.com/moby/swarmkit/v2/agent/exec" | |
| ocispec "github.com/opencontainers/image-spec/specs-go/v1" | |
| ) | |
| // Backend defines the executor component for a swarm agent. | |
| type Backend interface { | |
| CreateManagedNetwork(clustertypes.NetworkCreateRequest) error | |
| DeleteManagedNetwork(networkID string) error | |
| FindNetwork(idName string) (libnetwork.Network, error) | |
| SetupIngress(clustertypes.NetworkCreateRequest, string) (<-chan struct{}, error) | |
| ReleaseIngress() (<-chan struct{}, error) | |
| CreateManagedContainer(ctx context.Context, config types.ContainerCreateConfig) (container.CreateResponse, error) | |
| ContainerStart(ctx context.Context, name string, hostConfig *container.HostConfig, checkpoint string, checkpointDir string) error | |
| ContainerStop(ctx context.Context, name string, config container.StopOptions) error | |
| ContainerLogs(ctx context.Context, name string, config *types.ContainerLogsOptions) (msgs <-chan *backend.LogMessage, tty bool, err error) | |
| ConnectContainerToNetwork(containerName, networkName string, endpointConfig *network.EndpointSettings) error | |
| ActivateContainerServiceBinding(containerName string) error | |
| DeactivateContainerServiceBinding(containerName string) error | |
| UpdateContainerServiceConfig(containerName string, serviceConfig *clustertypes.ServiceConfig) error | |
| ContainerInspectCurrent(ctx context.Context, name string, size bool) (*types.ContainerJSON, error) | |
| ContainerWait(ctx context.Context, name string, condition containerpkg.WaitCondition) (<-chan containerpkg.StateStatus, error) | |
| ContainerRm(name string, config *types.ContainerRmConfig) error | |
| ContainerKill(name string, sig string) error | |
| SetContainerDependencyStore(name string, store exec.DependencyGetter) error | |
| SetContainerSecretReferences(name string, refs []*swarm.SecretReference) error | |
| SetContainerConfigReferences(name string, refs []*swarm.ConfigReference) error | |
| SystemInfo() *types.Info | |
| Containers(ctx context.Context, config *types.ContainerListOptions) ([]*types.Container, error) | |
| SetNetworkBootstrapKeys([]*networktypes.EncryptionKey) error | |
| DaemonJoinsCluster(provider cluster.Provider) | |
| DaemonLeavesCluster() | |
| IsSwarmCompatible() error | |
| SubscribeToEvents(since, until time.Time, filter filters.Args) ([]events.Message, chan interface{}) | |
| UnsubscribeFromEvents(listener chan interface{}) | |
| UpdateAttachment(string, string, string, *network.NetworkingConfig) error | |
| WaitForDetachment(context.Context, string, string, string, string) error | |
| PluginManager() *plugin.Manager | |
| PluginGetter() *plugin.Store | |
| GetAttachmentStore() *networkSettings.AttachmentStore | |
| HasExperimental() bool | |
| } | |
| // VolumeBackend is used by an executor to perform volume operations | |
| type VolumeBackend interface { | |
| Create(ctx context.Context, name, driverName string, opts ...volumeopts.CreateOption) (*volume.Volume, error) | |
| } | |
| // ImageBackend is used by an executor to perform image operations | |
| type ImageBackend interface { | |
| PullImage(ctx context.Context, image, tag string, platform *ocispec.Platform, metaHeaders map[string][]string, authConfig *registry.AuthConfig, outStream io.Writer) error | |
| GetRepository(context.Context, reference.Named, *registry.AuthConfig) (distribution.Repository, error) | |
| GetImage(ctx context.Context, refOrID string, options opts.GetImageOpts) (*image.Image, error) | |
| } |