mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package agent
|
|
|
|
import (
|
|
"github.com/docker/swarmkit/agent/configs"
|
|
"github.com/docker/swarmkit/agent/exec"
|
|
"github.com/docker/swarmkit/agent/secrets"
|
|
"github.com/docker/swarmkit/api"
|
|
)
|
|
|
|
type dependencyManager struct {
|
|
secrets exec.SecretsManager
|
|
configs exec.ConfigsManager
|
|
}
|
|
|
|
// NewDependencyManager creates a dependency manager object that wraps
|
|
// objects which provide access to various dependency types.
|
|
func NewDependencyManager() exec.DependencyManager {
|
|
return &dependencyManager{
|
|
secrets: secrets.NewManager(),
|
|
configs: configs.NewManager(),
|
|
}
|
|
}
|
|
|
|
func (d *dependencyManager) Secrets() exec.SecretsManager {
|
|
return d.secrets
|
|
}
|
|
|
|
func (d *dependencyManager) Configs() exec.ConfigsManager {
|
|
return d.configs
|
|
}
|
|
|
|
type dependencyGetter struct {
|
|
secrets exec.SecretGetter
|
|
configs exec.ConfigGetter
|
|
}
|
|
|
|
func (d *dependencyGetter) Secrets() exec.SecretGetter {
|
|
return d.secrets
|
|
}
|
|
|
|
func (d *dependencyGetter) Configs() exec.ConfigGetter {
|
|
return d.configs
|
|
}
|
|
|
|
// Restrict provides getters that only allows access to the dependencies
|
|
// referenced by the task.
|
|
func Restrict(dependencies exec.DependencyManager, t *api.Task) exec.DependencyGetter {
|
|
return &dependencyGetter{
|
|
secrets: secrets.Restrict(dependencies.Secrets(), t),
|
|
configs: configs.Restrict(dependencies.Configs(), t),
|
|
}
|
|
}
|