Revendor engine-api

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
Aaron Lehmann 2016-07-20 17:32:24 -07:00
parent 2cc5bd33ee
commit 852091ad41
7 changed files with 46 additions and 50 deletions

View file

@ -60,7 +60,7 @@ clone git golang.org/x/net 2beffdc2e92c8a3027590f898fe88f69af48a3f8 https://gith
clone git golang.org/x/sys eb2c74142fd19a79b3f237334c7384d5167b1b46 https://github.com/golang/sys.git
clone git github.com/docker/go-units 651fc226e7441360384da338d0fd37f2440ffbe3
clone git github.com/docker/go-connections fa2850ff103453a9ad190da0df0af134f0314b3d
clone git github.com/docker/engine-api 1d247454d4307fb1ddf10d09fd2996394b085904
clone git github.com/docker/engine-api c977588a28fa81fbbb06c295e936853cef37cf27
clone git github.com/RackSec/srslog 259aed10dfa74ea2961eddd1d9847619f6e98837
clone git github.com/imdario/mergo 0.2.1

View file

@ -115,7 +115,7 @@ type SwarmAPIClient interface {
SwarmJoin(ctx context.Context, req swarm.JoinRequest) error
SwarmLeave(ctx context.Context, force bool) error
SwarmInspect(ctx context.Context) (swarm.Swarm, error)
SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec) error
SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error
}
// SystemAPIClient defines API client methods for the system

View file

@ -1,6 +1,7 @@
package client
import (
"fmt"
"net/url"
"strconv"
@ -9,9 +10,11 @@ import (
)
// SwarmUpdate updates the Swarm.
func (cli *Client) SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec) error {
func (cli *Client) SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error {
query := url.Values{}
query.Set("version", strconv.FormatUint(version.Index, 10))
query.Set("rotate_worker_token", fmt.Sprintf("%v", flags.RotateWorkerToken))
query.Set("rotate_manager_token", fmt.Sprintf("%v", flags.RotateManagerToken))
resp, err := cli.post(ctx, "/swarm/update", query, swarm, nil)
ensureReaderClosed(resp)
return err

View file

@ -30,7 +30,7 @@ var (
//
// This function deviates from the upstream version in golang.org/x/net/context/ctxhttp by
// taking a Sender interface rather than a *http.Client directly. That allow us to use
// this funcion with mocked clients and hijacked connections.
// this function with mocked clients and hijacked connections.
func Do(ctx context.Context, client transport.Sender, req *http.Request) (*http.Response, error) {
if client == nil {
client = http.DefaultClient

View file

@ -45,8 +45,8 @@ type ExecConfig struct {
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 output
AttachStdout bool // Attach the standard error
AttachStderr bool // Attach the standard error
AttachStdout bool // Attach the standard output
Detach bool // Execute in detach mode
DetachKeys string // Escape keys for detach
Cmd []string // Execution commands and args

View file

@ -15,7 +15,6 @@ type Node struct {
type NodeSpec struct {
Annotations
Role NodeRole `json:",omitempty"`
Membership NodeMembership `json:",omitempty"`
Availability NodeAvailability `json:",omitempty"`
}
@ -29,16 +28,6 @@ const (
NodeRoleManager NodeRole = "manager"
)
// NodeMembership represents the membership of a node.
type NodeMembership string
const (
// NodeMembershipPending PENDING
NodeMembershipPending NodeMembership = "pending"
// NodeMembershipAccepted ACCEPTED
NodeMembershipAccepted NodeMembership = "accepted"
)
// NodeAvailability represents the availability of a node.
type NodeAvailability string

View file

@ -6,38 +6,25 @@ import "time"
type Swarm struct {
ID string
Meta
Spec Spec
Spec Spec
JoinTokens JoinTokens
}
// JoinTokens contains the tokens workers and managers need to join the swarm.
type JoinTokens struct {
Worker string
Manager string
}
// Spec represents the spec of a swarm.
type Spec struct {
Annotations
AcceptancePolicy AcceptancePolicy `json:",omitempty"`
Orchestration OrchestrationConfig `json:",omitempty"`
Raft RaftConfig `json:",omitempty"`
Dispatcher DispatcherConfig `json:",omitempty"`
CAConfig CAConfig `json:",omitempty"`
// DefaultLogDriver sets the log driver to use at task creation time if
// unspecified by a task.
//
// Updating this value will only have an affect on new tasks. Old tasks
// will continue use their previously configured log driver until
// recreated.
DefaultLogDriver *Driver `json:",omitempty"`
}
// AcceptancePolicy represents the list of policies.
type AcceptancePolicy struct {
Policies []Policy `json:",omitempty"`
}
// Policy represents a role, autoaccept and secret.
type Policy struct {
Role NodeRole
Autoaccept bool
Secret *string `json:",omitempty"`
Orchestration OrchestrationConfig `json:",omitempty"`
Raft RaftConfig `json:",omitempty"`
Dispatcher DispatcherConfig `json:",omitempty"`
CAConfig CAConfig `json:",omitempty"`
TaskDefaults TaskDefaults `json:",omitempty"`
}
// OrchestrationConfig represents orchestration configuration.
@ -45,6 +32,17 @@ type OrchestrationConfig struct {
TaskHistoryRetentionLimit int64 `json:",omitempty"`
}
// TaskDefaults parameterizes cluster-level task creation with default values.
type TaskDefaults struct {
// LogDriver selects the log driver to use for tasks created in the
// orchestrator if unspecified by a service.
//
// Updating this value will only have an affect on new tasks. Old tasks
// will continue use their previously configured log driver until
// recreated.
LogDriver *Driver `json:",omitempty"`
}
// RaftConfig represents raft configuration.
type RaftConfig struct {
SnapshotInterval uint64 `json:",omitempty"`
@ -81,17 +79,17 @@ type ExternalCA struct {
// InitRequest is the request used to init a swarm.
type InitRequest struct {
ListenAddr string
AdvertiseAddr string
ForceNewCluster bool
Spec Spec
}
// JoinRequest is the request used to join a swarm.
type JoinRequest struct {
ListenAddr string
RemoteAddrs []string
Secret string // accept by secret
CACertHash string
Manager bool
ListenAddr string
AdvertiseAddr string
RemoteAddrs []string
JoinToken string // accept by secret
}
// LocalNodeState represents the state of the local node.
@ -110,7 +108,8 @@ const (
// Info represents generic information about swarm.
type Info struct {
NodeID string
NodeID string
NodeAddr string
LocalNodeState LocalNodeState
ControlAvailable bool
@ -119,7 +118,6 @@ type Info struct {
RemoteManagers []Peer
Nodes int
Managers int
CACertHash string
}
// Peer represents a peer.
@ -127,3 +125,9 @@ type Peer struct {
NodeID string
Addr string
}
// UpdateFlags contains flags for SwarmUpdate.
type UpdateFlags struct {
RotateWorkerToken bool
RotateManagerToken bool
}