123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package exec
- import (
- "github.com/docker/swarmkit/api"
- "golang.org/x/net/context"
- )
- // Executor provides controllers for tasks.
- type Executor interface {
- // Describe returns the underlying node description.
- Describe(ctx context.Context) (*api.NodeDescription, error)
- // Configure uses the node object state to propagate node
- // state to the underlying executor.
- Configure(ctx context.Context, node *api.Node) error
- // Controller provides a controller for the given task.
- Controller(t *api.Task) (Controller, error)
- // SetNetworkBootstrapKeys passes the symmetric keys from the
- // manager to the executor.
- SetNetworkBootstrapKeys([]*api.EncryptionKey) error
- }
- // SecretsProvider is implemented by objects that can store secrets, typically
- // an executor.
- type SecretsProvider interface {
- Secrets() SecretsManager
- }
- // ConfigsProvider is implemented by objects that can store configs,
- // typically an executor.
- type ConfigsProvider interface {
- Configs() ConfigsManager
- }
- // DependencyManager is a meta-object that can keep track of typed objects
- // such as secrets and configs.
- type DependencyManager interface {
- SecretsProvider
- ConfigsProvider
- }
- // DependencyGetter is a meta-object that can provide access to typed objects
- // such as secrets and configs.
- type DependencyGetter interface {
- Secrets() SecretGetter
- Configs() ConfigGetter
- }
- // SecretGetter contains secret data necessary for the Controller.
- type SecretGetter interface {
- // Get returns the the secret with a specific secret ID, if available.
- // When the secret is not available, the return will be nil.
- Get(secretID string) *api.Secret
- }
- // SecretsManager is the interface for secret storage and updates.
- type SecretsManager interface {
- SecretGetter
- Add(secrets ...api.Secret) // add one or more secrets
- Remove(secrets []string) // remove the secrets by ID
- Reset() // remove all secrets
- }
- // ConfigGetter contains config data necessary for the Controller.
- type ConfigGetter interface {
- // Get returns the the config with a specific config ID, if available.
- // When the config is not available, the return will be nil.
- Get(configID string) *api.Config
- }
- // ConfigsManager is the interface for config storage and updates.
- type ConfigsManager interface {
- ConfigGetter
- Add(configs ...api.Config) // add one or more configs
- Remove(configs []string) // remove the configs by ID
- Reset() // remove all configs
- }
|