1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/vendor/github.com/docker/swarmkit/agent/config.go
Aaron Lehmann f31ed6cb5b Update vendored swarmkit to 62d835f
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-01-10 13:00:11 -08:00

48 lines
1.1 KiB
Go

package agent
import (
"github.com/boltdb/bolt"
"github.com/docker/swarmkit/agent/exec"
"github.com/docker/swarmkit/api"
"github.com/docker/swarmkit/connectionbroker"
"github.com/pkg/errors"
"google.golang.org/grpc/credentials"
)
// Config provides values for an Agent.
type Config struct {
// Hostname the name of host for agent instance.
Hostname string
// ConnBroker provides a connection broker for retrieving gRPC
// connections to managers.
ConnBroker *connectionbroker.Broker
// Executor specifies the executor to use for the agent.
Executor exec.Executor
// DB used for task storage. Must be open for the lifetime of the agent.
DB *bolt.DB
// NotifyNodeChange channel receives new node changes from session messages.
NotifyNodeChange chan<- *api.Node
// Credentials is credentials for grpc connection to manager.
Credentials credentials.TransportCredentials
}
func (c *Config) validate() error {
if c.Credentials == nil {
return errors.New("agent: Credentials is required")
}
if c.Executor == nil {
return errors.New("agent: executor required")
}
if c.DB == nil {
return errors.New("agent: database required")
}
return nil
}