mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #38831 from thaJeztah/bump_swarmkit
bump swarmkit to 415dc72789e2b733ea884f09188c286ca187d8ec
This commit is contained in:
commit
258edd715d
14 changed files with 5371 additions and 873 deletions
|
@ -128,7 +128,7 @@ github.com/containerd/ttrpc 2a805f71863501300ae1976d29f0454ae003e85a
|
||||||
github.com/gogo/googleapis 08a7655d27152912db7aaf4f983275eaf8d128ef
|
github.com/gogo/googleapis 08a7655d27152912db7aaf4f983275eaf8d128ef
|
||||||
|
|
||||||
# cluster
|
# cluster
|
||||||
github.com/docker/swarmkit ebfb0aa1118ebfd35a224d72a5d337ce0addd907
|
github.com/docker/swarmkit 415dc72789e2b733ea884f09188c286ca187d8ec
|
||||||
github.com/gogo/protobuf v1.0.0
|
github.com/gogo/protobuf v1.0.0
|
||||||
github.com/cloudflare/cfssl 1.3.2
|
github.com/cloudflare/cfssl 1.3.2
|
||||||
github.com/fernet/fernet-go 1b2437bc582b3cfbb341ee5a29f8ef5b42912ff2
|
github.com/fernet/fernet-go 1b2437bc582b3cfbb341ee5a29f8ef5b42912ff2
|
||||||
|
|
16
vendor/github.com/docker/swarmkit/api/ca.pb.go
generated
vendored
16
vendor/github.com/docker/swarmkit/api/ca.pb.go
generated
vendored
|
@ -86,6 +86,22 @@
|
||||||
CreateConfigResponse
|
CreateConfigResponse
|
||||||
RemoveConfigRequest
|
RemoveConfigRequest
|
||||||
RemoveConfigResponse
|
RemoveConfigResponse
|
||||||
|
CreateExtensionRequest
|
||||||
|
CreateExtensionResponse
|
||||||
|
RemoveExtensionRequest
|
||||||
|
RemoveExtensionResponse
|
||||||
|
GetExtensionRequest
|
||||||
|
GetExtensionResponse
|
||||||
|
CreateResourceRequest
|
||||||
|
CreateResourceResponse
|
||||||
|
RemoveResourceRequest
|
||||||
|
RemoveResourceResponse
|
||||||
|
UpdateResourceRequest
|
||||||
|
UpdateResourceResponse
|
||||||
|
GetResourceRequest
|
||||||
|
GetResourceResponse
|
||||||
|
ListResourcesRequest
|
||||||
|
ListResourcesResponse
|
||||||
SessionRequest
|
SessionRequest
|
||||||
SessionMessage
|
SessionMessage
|
||||||
HeartbeatRequest
|
HeartbeatRequest
|
||||||
|
|
4170
vendor/github.com/docker/swarmkit/api/control.pb.go
generated
vendored
4170
vendor/github.com/docker/swarmkit/api/control.pb.go
generated
vendored
File diff suppressed because it is too large
Load diff
183
vendor/github.com/docker/swarmkit/api/control.proto
generated
vendored
183
vendor/github.com/docker/swarmkit/api/control.proto
generated
vendored
|
@ -6,6 +6,7 @@ import "github.com/docker/swarmkit/api/specs.proto";
|
||||||
import "github.com/docker/swarmkit/api/objects.proto";
|
import "github.com/docker/swarmkit/api/objects.proto";
|
||||||
import "github.com/docker/swarmkit/api/types.proto";
|
import "github.com/docker/swarmkit/api/types.proto";
|
||||||
import "gogoproto/gogo.proto";
|
import "gogoproto/gogo.proto";
|
||||||
|
import "google/protobuf/any.proto";
|
||||||
import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto";
|
import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto";
|
||||||
|
|
||||||
// Control defines the RPC methods for controlling a cluster.
|
// Control defines the RPC methods for controlling a cluster.
|
||||||
|
@ -161,6 +162,80 @@ service Control {
|
||||||
rpc RemoveConfig(RemoveConfigRequest) returns (RemoveConfigResponse) {
|
rpc RemoveConfig(RemoveConfigRequest) returns (RemoveConfigResponse) {
|
||||||
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --- extension APIs ---
|
||||||
|
|
||||||
|
// GetExtension returns a `GetExtensionResponse` with a `Extension` with the same
|
||||||
|
// id as `GetExtensionRequest.ExtensionId`
|
||||||
|
// - Returns `NotFound` if the Extension with the given id is not found.
|
||||||
|
// - Returns `InvalidArgument` if the `GetExtensionRequest.ExtensionId` is empty.
|
||||||
|
// - Returns an error if the get fails.
|
||||||
|
rpc GetExtension(GetExtensionRequest) returns (GetExtensionResponse) {
|
||||||
|
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateExtension creates an `Extension` based on the provided `CreateExtensionRequest.Extension`
|
||||||
|
// and returns a `CreateExtensionResponse`.
|
||||||
|
// - Returns `InvalidArgument` if the `CreateExtensionRequest.Extension` is malformed,
|
||||||
|
// or fails validation.
|
||||||
|
// - Returns an error if the creation fails.
|
||||||
|
rpc CreateExtension(CreateExtensionRequest) returns (CreateExtensionResponse) {
|
||||||
|
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveExtension removes the extension referenced by `RemoveExtensionRequest.ID`.
|
||||||
|
// - Returns `InvalidArgument` if `RemoveExtensionRequest.ExtensionId` is empty.
|
||||||
|
// - Returns `NotFound` if the an extension named `RemoveExtensionRequest.ExtensionId` is not found.
|
||||||
|
// - Returns an error if the deletion fails.
|
||||||
|
rpc RemoveExtension(RemoveExtensionRequest) returns (RemoveExtensionResponse) {
|
||||||
|
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- resource APIs ---
|
||||||
|
|
||||||
|
// GetResource returns a `GetResourceResponse` with a `Resource` with the same
|
||||||
|
// id as `GetResourceRequest.Resource`
|
||||||
|
// - Returns `NotFound` if the Resource with the given id is not found.
|
||||||
|
// - Returns `InvalidArgument` if the `GetResourceRequest.Resource` is empty.
|
||||||
|
// - Returns an error if getting fails.
|
||||||
|
rpc GetResource(GetResourceRequest) returns (GetResourceResponse) {
|
||||||
|
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateResource updates the resource with the given `UpdateResourceRequest.Resource.Id` using the given `UpdateResourceRequest.Resource` and returns a `UpdateResourceResponse`.
|
||||||
|
// - Returns `NotFound` if the Resource with the given `UpdateResourceRequest.Resource.Id` is not found.
|
||||||
|
// - Returns `InvalidArgument` if the UpdateResourceRequest.Resource.Id` is empty.
|
||||||
|
// - Returns an error if updating fails.
|
||||||
|
rpc UpdateResource(UpdateResourceRequest) returns (UpdateResourceResponse) {
|
||||||
|
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListResources returns a `ListResourcesResponse` with a list of `Resource`s stored in the raft store,
|
||||||
|
// or all resources matching any name in `ListConfigsRequest.Names`, any
|
||||||
|
// name prefix in `ListResourcesRequest.NamePrefixes`, any id in
|
||||||
|
// `ListResourcesRequest.ResourceIDs`, or any id prefix in `ListResourcesRequest.IDPrefixes`,
|
||||||
|
// extension name equal to `ListResourcesRequest.Extension`.
|
||||||
|
// - Returns an error if listing fails.
|
||||||
|
rpc ListResources(ListResourcesRequest) returns (ListResourcesResponse) {
|
||||||
|
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateResource returns a `CreateResourceResponse` after creating a `Resource` based
|
||||||
|
// on the provided `CreateResourceRequest.Resource`.
|
||||||
|
// - Returns `InvalidArgument` if the `CreateResourceRequest.Resource` is malformed,
|
||||||
|
// or if the config data is too long or contains invalid characters.
|
||||||
|
// - Returns an error if the creation fails.
|
||||||
|
rpc CreateResource(CreateResourceRequest) returns (CreateResourceResponse) {
|
||||||
|
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveResource removes the `Resource` referenced by `RemoveResourceRequest.ResourceID`.
|
||||||
|
// - Returns `InvalidArgument` if `RemoveResourceRequest.ResourceID` is empty.
|
||||||
|
// - Returns `NotFound` if the a resource named `RemoveResourceRequest.ResourceID` is not found.
|
||||||
|
// - Returns an error if the deletion fails.
|
||||||
|
rpc RemoveResource(RemoveResourceRequest) returns (RemoveResourceResponse) {
|
||||||
|
option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
message GetNodeRequest {
|
message GetNodeRequest {
|
||||||
|
@ -556,3 +631,111 @@ message RemoveConfigRequest {
|
||||||
// RemoveConfigResponse is an empty object indicating the successful removal of
|
// RemoveConfigResponse is an empty object indicating the successful removal of
|
||||||
// a config.
|
// a config.
|
||||||
message RemoveConfigResponse {}
|
message RemoveConfigResponse {}
|
||||||
|
|
||||||
|
// CreateExtensionRequest creates a new extension as specified by the provided
|
||||||
|
// parameters
|
||||||
|
message CreateExtensionRequest {
|
||||||
|
Annotations annotations = 1;
|
||||||
|
string description = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateExtensionResponse contains the newly created `Extension` corresponding
|
||||||
|
// to the parameters in the CreateExtensionRequest.
|
||||||
|
message CreateExtensionResponse {
|
||||||
|
Extension extension = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveExtensionRequest contains the ID of the extension that should be removed. This
|
||||||
|
// removes all versions of the extension.
|
||||||
|
message RemoveExtensionRequest {
|
||||||
|
string extension_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveExtensionResponse is an empty object indicating the successful removal
|
||||||
|
// of an extension.
|
||||||
|
message RemoveExtensionResponse {
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetResourceRequest is the request to get a Extension object given a extension id.
|
||||||
|
message GetExtensionRequest {
|
||||||
|
string extension_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetExtensionResponse contains the Extension corresponding to the id in
|
||||||
|
// `GetExtensionRequest`.
|
||||||
|
message GetExtensionResponse {
|
||||||
|
Extension extension = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateResourceRequest creates a new resource specified by the included
|
||||||
|
// resource object. An existing resource will not be updated.
|
||||||
|
message CreateResourceRequest {
|
||||||
|
Annotations annotations = 1;
|
||||||
|
string kind = 2;
|
||||||
|
google.protobuf.Any payload = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateResourceResponse contains the newly created `Resource` corresponding
|
||||||
|
// to the resource in the CreateResourceRequest.
|
||||||
|
message CreateResourceResponse {
|
||||||
|
Resource resource = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveResourceRequest contains the ID of the resource that should be removed. This
|
||||||
|
// removes all versions of the resource.
|
||||||
|
message RemoveResourceRequest {
|
||||||
|
string resource_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveResourceResponse is an empty object indicating the successful removal
|
||||||
|
// of a resource.
|
||||||
|
message RemoveResourceResponse {
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateResourceRequest updates the resource specified by the given resource object.
|
||||||
|
message UpdateResourceRequest {
|
||||||
|
string resource_id = 1;
|
||||||
|
Version resource_version = 2;
|
||||||
|
// Annotations describes the annotations to update. If the Annotations should
|
||||||
|
// be unchanged, then this field should be left empty. Note that the name of
|
||||||
|
// a Resource cannot be changed, only its labels.
|
||||||
|
Annotations annotations = 3;
|
||||||
|
// Payload describes the new payload of the resource. If the Payload should
|
||||||
|
// be unchanged, then this field should be left empty.
|
||||||
|
google.protobuf.Any payload = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UpdateResourceResponse {
|
||||||
|
Resource resource = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetResourceRequest is the request to get a Resource object given a resource id.
|
||||||
|
message GetResourceRequest {
|
||||||
|
string resource_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetResourceResponse contains the Resource corresponding to the id in
|
||||||
|
// `GetResourceRequest`.
|
||||||
|
message GetResourceResponse {
|
||||||
|
Resource resource = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListResourcesRequest is the request to list all resources in the raft store,
|
||||||
|
// or all resources filtered by (name or name prefix or id prefix), labels and extension.
|
||||||
|
message ListResourcesRequest {
|
||||||
|
message Filters {
|
||||||
|
repeated string names = 1;
|
||||||
|
repeated string id_prefixes = 2;
|
||||||
|
map<string, string> labels = 3;
|
||||||
|
repeated string name_prefixes = 4;
|
||||||
|
string kind = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
Filters filters = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListResourcesResponse contains a list of all the resources that match the name or
|
||||||
|
// name prefix filters provided in `ListResourcesRequest`.
|
||||||
|
message ListResourcesResponse {
|
||||||
|
repeated Resource resources = 1;
|
||||||
|
}
|
||||||
|
|
10
vendor/github.com/docker/swarmkit/api/objects.pb.go
generated
vendored
10
vendor/github.com/docker/swarmkit/api/objects.pb.go
generated
vendored
|
@ -8,7 +8,7 @@ import fmt "fmt"
|
||||||
import math "math"
|
import math "math"
|
||||||
import google_protobuf "github.com/gogo/protobuf/types"
|
import google_protobuf "github.com/gogo/protobuf/types"
|
||||||
import _ "github.com/gogo/protobuf/gogoproto"
|
import _ "github.com/gogo/protobuf/gogoproto"
|
||||||
import google_protobuf3 "github.com/gogo/protobuf/types"
|
import google_protobuf4 "github.com/gogo/protobuf/types"
|
||||||
import _ "github.com/docker/swarmkit/protobuf/plugin"
|
import _ "github.com/docker/swarmkit/protobuf/plugin"
|
||||||
|
|
||||||
import deepcopy "github.com/docker/swarmkit/api/deepcopy"
|
import deepcopy "github.com/docker/swarmkit/api/deepcopy"
|
||||||
|
@ -357,7 +357,7 @@ type Resource struct {
|
||||||
Kind string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"`
|
Kind string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"`
|
||||||
// Payload bytes. This data is not interpreted in any way by SwarmKit.
|
// Payload bytes. This data is not interpreted in any way by SwarmKit.
|
||||||
// By convention, it should be a marshalled protocol buffers message.
|
// By convention, it should be a marshalled protocol buffers message.
|
||||||
Payload *google_protobuf3.Any `protobuf:"bytes,5,opt,name=payload" json:"payload,omitempty"`
|
Payload *google_protobuf4.Any `protobuf:"bytes,5,opt,name=payload" json:"payload,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Resource) Reset() { *m = Resource{} }
|
func (m *Resource) Reset() { *m = Resource{} }
|
||||||
|
@ -749,7 +749,7 @@ func (m *Resource) CopyFrom(src interface{}) {
|
||||||
deepcopy.Copy(&m.Meta, &o.Meta)
|
deepcopy.Copy(&m.Meta, &o.Meta)
|
||||||
deepcopy.Copy(&m.Annotations, &o.Annotations)
|
deepcopy.Copy(&m.Annotations, &o.Annotations)
|
||||||
if o.Payload != nil {
|
if o.Payload != nil {
|
||||||
m.Payload = &google_protobuf3.Any{}
|
m.Payload = &google_protobuf4.Any{}
|
||||||
deepcopy.Copy(m.Payload, o.Payload)
|
deepcopy.Copy(m.Payload, o.Payload)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4958,7 +4958,7 @@ func (this *Resource) String() string {
|
||||||
`Meta:` + strings.Replace(strings.Replace(this.Meta.String(), "Meta", "Meta", 1), `&`, ``, 1) + `,`,
|
`Meta:` + strings.Replace(strings.Replace(this.Meta.String(), "Meta", "Meta", 1), `&`, ``, 1) + `,`,
|
||||||
`Annotations:` + strings.Replace(strings.Replace(this.Annotations.String(), "Annotations", "Annotations", 1), `&`, ``, 1) + `,`,
|
`Annotations:` + strings.Replace(strings.Replace(this.Annotations.String(), "Annotations", "Annotations", 1), `&`, ``, 1) + `,`,
|
||||||
`Kind:` + fmt.Sprintf("%v", this.Kind) + `,`,
|
`Kind:` + fmt.Sprintf("%v", this.Kind) + `,`,
|
||||||
`Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf3.Any", 1) + `,`,
|
`Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf4.Any", 1) + `,`,
|
||||||
`}`,
|
`}`,
|
||||||
}, "")
|
}, "")
|
||||||
return s
|
return s
|
||||||
|
@ -7976,7 +7976,7 @@ func (m *Resource) Unmarshal(dAtA []byte) error {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
if m.Payload == nil {
|
if m.Payload == nil {
|
||||||
m.Payload = &google_protobuf3.Any{}
|
m.Payload = &google_protobuf4.Any{}
|
||||||
}
|
}
|
||||||
if err := m.Payload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.Payload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
469
vendor/github.com/docker/swarmkit/api/specs.pb.go
generated
vendored
469
vendor/github.com/docker/swarmkit/api/specs.pb.go
generated
vendored
|
@ -8,8 +8,8 @@ import fmt "fmt"
|
||||||
import math "math"
|
import math "math"
|
||||||
import _ "github.com/gogo/protobuf/gogoproto"
|
import _ "github.com/gogo/protobuf/gogoproto"
|
||||||
import google_protobuf1 "github.com/gogo/protobuf/types"
|
import google_protobuf1 "github.com/gogo/protobuf/types"
|
||||||
import google_protobuf3 "github.com/gogo/protobuf/types"
|
|
||||||
import google_protobuf4 "github.com/gogo/protobuf/types"
|
import google_protobuf4 "github.com/gogo/protobuf/types"
|
||||||
|
import google_protobuf2 "github.com/gogo/protobuf/types"
|
||||||
|
|
||||||
import deepcopy "github.com/docker/swarmkit/api/deepcopy"
|
import deepcopy "github.com/docker/swarmkit/api/deepcopy"
|
||||||
|
|
||||||
|
@ -506,7 +506,7 @@ func (*ResourceReference) Descriptor() ([]byte, []int) { return fileDescriptorSp
|
||||||
|
|
||||||
type GenericRuntimeSpec struct {
|
type GenericRuntimeSpec struct {
|
||||||
Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
|
Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
|
||||||
Payload *google_protobuf3.Any `protobuf:"bytes,2,opt,name=payload" json:"payload,omitempty"`
|
Payload *google_protobuf4.Any `protobuf:"bytes,2,opt,name=payload" json:"payload,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *GenericRuntimeSpec) Reset() { *m = GenericRuntimeSpec{} }
|
func (m *GenericRuntimeSpec) Reset() { *m = GenericRuntimeSpec{} }
|
||||||
|
@ -572,7 +572,7 @@ type ContainerSpec struct {
|
||||||
// Privileges specifies security configuration/permissions.
|
// Privileges specifies security configuration/permissions.
|
||||||
Privileges *Privileges `protobuf:"bytes,22,opt,name=privileges" json:"privileges,omitempty"`
|
Privileges *Privileges `protobuf:"bytes,22,opt,name=privileges" json:"privileges,omitempty"`
|
||||||
// Init declares that a custom init will be running inside the container, if null, use the daemon's configured settings
|
// Init declares that a custom init will be running inside the container, if null, use the daemon's configured settings
|
||||||
Init *google_protobuf4.BoolValue `protobuf:"bytes,23,opt,name=init" json:"init,omitempty"`
|
Init *google_protobuf2.BoolValue `protobuf:"bytes,23,opt,name=init" json:"init,omitempty"`
|
||||||
// TTY declares that a TTY should be attached to the standard streams,
|
// TTY declares that a TTY should be attached to the standard streams,
|
||||||
// including stdin if it is still open.
|
// including stdin if it is still open.
|
||||||
TTY bool `protobuf:"varint,13,opt,name=tty,proto3" json:"tty,omitempty"`
|
TTY bool `protobuf:"varint,13,opt,name=tty,proto3" json:"tty,omitempty"`
|
||||||
|
@ -636,12 +636,6 @@ type ContainerSpec struct {
|
||||||
//
|
//
|
||||||
// https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime
|
// https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime
|
||||||
Sysctls map[string]string `protobuf:"bytes,26,rep,name=sysctls" json:"sysctls,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
Sysctls map[string]string `protobuf:"bytes,26,rep,name=sysctls" json:"sysctls,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||||
// Swap limit equal to memory plus swap: '-1' to enable unlimited swap
|
|
||||||
MemorySwap int64 `protobuf:"varint,27,opt,name=memory_swap,json=memorySwap,proto3" json:"memory_swap,omitempty"`
|
|
||||||
// Tune container memory swappiness (0 to 100) - if not specified, defaults
|
|
||||||
// to the container OS's default - generally 60, or the value predefined in
|
|
||||||
// the image; set to -1 to unset a previously set value
|
|
||||||
MemorySwappiness *google_protobuf4.Int64Value `protobuf:"bytes,28,opt,name=memory_swappiness,json=memorySwappiness" json:"memory_swappiness,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ContainerSpec) Reset() { *m = ContainerSpec{} }
|
func (m *ContainerSpec) Reset() { *m = ContainerSpec{} }
|
||||||
|
@ -1084,7 +1078,7 @@ func (m *GenericRuntimeSpec) CopyFrom(src interface{}) {
|
||||||
o := src.(*GenericRuntimeSpec)
|
o := src.(*GenericRuntimeSpec)
|
||||||
*m = *o
|
*m = *o
|
||||||
if o.Payload != nil {
|
if o.Payload != nil {
|
||||||
m.Payload = &google_protobuf3.Any{}
|
m.Payload = &google_protobuf4.Any{}
|
||||||
deepcopy.Copy(m.Payload, o.Payload)
|
deepcopy.Copy(m.Payload, o.Payload)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1149,7 +1143,7 @@ func (m *ContainerSpec) CopyFrom(src interface{}) {
|
||||||
deepcopy.Copy(m.Privileges, o.Privileges)
|
deepcopy.Copy(m.Privileges, o.Privileges)
|
||||||
}
|
}
|
||||||
if o.Init != nil {
|
if o.Init != nil {
|
||||||
m.Init = &google_protobuf4.BoolValue{}
|
m.Init = &google_protobuf2.BoolValue{}
|
||||||
deepcopy.Copy(m.Init, o.Init)
|
deepcopy.Copy(m.Init, o.Init)
|
||||||
}
|
}
|
||||||
if o.Mounts != nil {
|
if o.Mounts != nil {
|
||||||
|
@ -1203,10 +1197,6 @@ func (m *ContainerSpec) CopyFrom(src interface{}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if o.MemorySwappiness != nil {
|
|
||||||
m.MemorySwappiness = &google_protobuf4.Int64Value{}
|
|
||||||
deepcopy.Copy(m.MemorySwappiness, o.MemorySwappiness)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ContainerSpec_PullOptions) Copy() *ContainerSpec_PullOptions {
|
func (m *ContainerSpec_PullOptions) Copy() *ContainerSpec_PullOptions {
|
||||||
|
@ -2114,25 +2104,6 @@ func (m *ContainerSpec) MarshalTo(dAtA []byte) (int, error) {
|
||||||
i += copy(dAtA[i:], v)
|
i += copy(dAtA[i:], v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if m.MemorySwap != 0 {
|
|
||||||
dAtA[i] = 0xd8
|
|
||||||
i++
|
|
||||||
dAtA[i] = 0x1
|
|
||||||
i++
|
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.MemorySwap))
|
|
||||||
}
|
|
||||||
if m.MemorySwappiness != nil {
|
|
||||||
dAtA[i] = 0xe2
|
|
||||||
i++
|
|
||||||
dAtA[i] = 0x1
|
|
||||||
i++
|
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.MemorySwappiness.Size()))
|
|
||||||
n25, err := m.MemorySwappiness.MarshalTo(dAtA[i:])
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
i += n25
|
|
||||||
}
|
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2278,20 +2249,20 @@ func (m *NetworkSpec) MarshalTo(dAtA []byte) (int, error) {
|
||||||
dAtA[i] = 0xa
|
dAtA[i] = 0xa
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size()))
|
||||||
n26, err := m.Annotations.MarshalTo(dAtA[i:])
|
n25, err := m.Annotations.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n26
|
i += n25
|
||||||
if m.DriverConfig != nil {
|
if m.DriverConfig != nil {
|
||||||
dAtA[i] = 0x12
|
dAtA[i] = 0x12
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.DriverConfig.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.DriverConfig.Size()))
|
||||||
n27, err := m.DriverConfig.MarshalTo(dAtA[i:])
|
n26, err := m.DriverConfig.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n27
|
i += n26
|
||||||
}
|
}
|
||||||
if m.Ipv6Enabled {
|
if m.Ipv6Enabled {
|
||||||
dAtA[i] = 0x18
|
dAtA[i] = 0x18
|
||||||
|
@ -2317,11 +2288,11 @@ func (m *NetworkSpec) MarshalTo(dAtA []byte) (int, error) {
|
||||||
dAtA[i] = 0x2a
|
dAtA[i] = 0x2a
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.IPAM.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.IPAM.Size()))
|
||||||
n28, err := m.IPAM.MarshalTo(dAtA[i:])
|
n27, err := m.IPAM.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n28
|
i += n27
|
||||||
}
|
}
|
||||||
if m.Attachable {
|
if m.Attachable {
|
||||||
dAtA[i] = 0x30
|
dAtA[i] = 0x30
|
||||||
|
@ -2344,11 +2315,11 @@ func (m *NetworkSpec) MarshalTo(dAtA []byte) (int, error) {
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
if m.ConfigFrom != nil {
|
if m.ConfigFrom != nil {
|
||||||
nn29, err := m.ConfigFrom.MarshalTo(dAtA[i:])
|
nn28, err := m.ConfigFrom.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += nn29
|
i += nn28
|
||||||
}
|
}
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
|
@ -2379,67 +2350,67 @@ func (m *ClusterSpec) MarshalTo(dAtA []byte) (int, error) {
|
||||||
dAtA[i] = 0xa
|
dAtA[i] = 0xa
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size()))
|
||||||
n30, err := m.Annotations.MarshalTo(dAtA[i:])
|
n29, err := m.Annotations.MarshalTo(dAtA[i:])
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
i += n29
|
||||||
|
dAtA[i] = 0x12
|
||||||
|
i++
|
||||||
|
i = encodeVarintSpecs(dAtA, i, uint64(m.AcceptancePolicy.Size()))
|
||||||
|
n30, err := m.AcceptancePolicy.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n30
|
i += n30
|
||||||
dAtA[i] = 0x12
|
dAtA[i] = 0x1a
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.AcceptancePolicy.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Orchestration.Size()))
|
||||||
n31, err := m.AcceptancePolicy.MarshalTo(dAtA[i:])
|
n31, err := m.Orchestration.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n31
|
i += n31
|
||||||
dAtA[i] = 0x1a
|
dAtA[i] = 0x22
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Orchestration.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Raft.Size()))
|
||||||
n32, err := m.Orchestration.MarshalTo(dAtA[i:])
|
n32, err := m.Raft.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n32
|
i += n32
|
||||||
dAtA[i] = 0x22
|
dAtA[i] = 0x2a
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Raft.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Dispatcher.Size()))
|
||||||
n33, err := m.Raft.MarshalTo(dAtA[i:])
|
n33, err := m.Dispatcher.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n33
|
i += n33
|
||||||
dAtA[i] = 0x2a
|
dAtA[i] = 0x32
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Dispatcher.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.CAConfig.Size()))
|
||||||
n34, err := m.Dispatcher.MarshalTo(dAtA[i:])
|
n34, err := m.CAConfig.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n34
|
i += n34
|
||||||
dAtA[i] = 0x32
|
dAtA[i] = 0x3a
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.CAConfig.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.TaskDefaults.Size()))
|
||||||
n35, err := m.CAConfig.MarshalTo(dAtA[i:])
|
n35, err := m.TaskDefaults.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n35
|
i += n35
|
||||||
dAtA[i] = 0x3a
|
dAtA[i] = 0x42
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.TaskDefaults.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.EncryptionConfig.Size()))
|
||||||
n36, err := m.TaskDefaults.MarshalTo(dAtA[i:])
|
n36, err := m.EncryptionConfig.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n36
|
i += n36
|
||||||
dAtA[i] = 0x42
|
|
||||||
i++
|
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.EncryptionConfig.Size()))
|
|
||||||
n37, err := m.EncryptionConfig.MarshalTo(dAtA[i:])
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
i += n37
|
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2461,11 +2432,11 @@ func (m *SecretSpec) MarshalTo(dAtA []byte) (int, error) {
|
||||||
dAtA[i] = 0xa
|
dAtA[i] = 0xa
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size()))
|
||||||
n38, err := m.Annotations.MarshalTo(dAtA[i:])
|
n37, err := m.Annotations.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n38
|
i += n37
|
||||||
if len(m.Data) > 0 {
|
if len(m.Data) > 0 {
|
||||||
dAtA[i] = 0x12
|
dAtA[i] = 0x12
|
||||||
i++
|
i++
|
||||||
|
@ -2476,21 +2447,21 @@ func (m *SecretSpec) MarshalTo(dAtA []byte) (int, error) {
|
||||||
dAtA[i] = 0x1a
|
dAtA[i] = 0x1a
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Templating.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Templating.Size()))
|
||||||
n39, err := m.Templating.MarshalTo(dAtA[i:])
|
n38, err := m.Templating.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n39
|
i += n38
|
||||||
}
|
}
|
||||||
if m.Driver != nil {
|
if m.Driver != nil {
|
||||||
dAtA[i] = 0x22
|
dAtA[i] = 0x22
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Driver.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Driver.Size()))
|
||||||
n40, err := m.Driver.MarshalTo(dAtA[i:])
|
n39, err := m.Driver.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n40
|
i += n39
|
||||||
}
|
}
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
|
@ -2513,11 +2484,11 @@ func (m *ConfigSpec) MarshalTo(dAtA []byte) (int, error) {
|
||||||
dAtA[i] = 0xa
|
dAtA[i] = 0xa
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size()))
|
||||||
n41, err := m.Annotations.MarshalTo(dAtA[i:])
|
n40, err := m.Annotations.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n41
|
i += n40
|
||||||
if len(m.Data) > 0 {
|
if len(m.Data) > 0 {
|
||||||
dAtA[i] = 0x12
|
dAtA[i] = 0x12
|
||||||
i++
|
i++
|
||||||
|
@ -2528,11 +2499,11 @@ func (m *ConfigSpec) MarshalTo(dAtA []byte) (int, error) {
|
||||||
dAtA[i] = 0x1a
|
dAtA[i] = 0x1a
|
||||||
i++
|
i++
|
||||||
i = encodeVarintSpecs(dAtA, i, uint64(m.Templating.Size()))
|
i = encodeVarintSpecs(dAtA, i, uint64(m.Templating.Size()))
|
||||||
n42, err := m.Templating.MarshalTo(dAtA[i:])
|
n41, err := m.Templating.MarshalTo(dAtA[i:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
i += n42
|
i += n41
|
||||||
}
|
}
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
|
@ -2858,13 +2829,6 @@ func (m *ContainerSpec) Size() (n int) {
|
||||||
n += mapEntrySize + 2 + sovSpecs(uint64(mapEntrySize))
|
n += mapEntrySize + 2 + sovSpecs(uint64(mapEntrySize))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if m.MemorySwap != 0 {
|
|
||||||
n += 2 + sovSpecs(uint64(m.MemorySwap))
|
|
||||||
}
|
|
||||||
if m.MemorySwappiness != nil {
|
|
||||||
l = m.MemorySwappiness.Size()
|
|
||||||
n += 2 + l + sovSpecs(uint64(l))
|
|
||||||
}
|
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3158,7 +3122,7 @@ func (this *GenericRuntimeSpec) String() string {
|
||||||
}
|
}
|
||||||
s := strings.Join([]string{`&GenericRuntimeSpec{`,
|
s := strings.Join([]string{`&GenericRuntimeSpec{`,
|
||||||
`Kind:` + fmt.Sprintf("%v", this.Kind) + `,`,
|
`Kind:` + fmt.Sprintf("%v", this.Kind) + `,`,
|
||||||
`Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf3.Any", 1) + `,`,
|
`Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf4.Any", 1) + `,`,
|
||||||
`}`,
|
`}`,
|
||||||
}, "")
|
}, "")
|
||||||
return s
|
return s
|
||||||
|
@ -3220,12 +3184,10 @@ func (this *ContainerSpec) String() string {
|
||||||
`StopSignal:` + fmt.Sprintf("%v", this.StopSignal) + `,`,
|
`StopSignal:` + fmt.Sprintf("%v", this.StopSignal) + `,`,
|
||||||
`Configs:` + strings.Replace(fmt.Sprintf("%v", this.Configs), "ConfigReference", "ConfigReference", 1) + `,`,
|
`Configs:` + strings.Replace(fmt.Sprintf("%v", this.Configs), "ConfigReference", "ConfigReference", 1) + `,`,
|
||||||
`Privileges:` + strings.Replace(fmt.Sprintf("%v", this.Privileges), "Privileges", "Privileges", 1) + `,`,
|
`Privileges:` + strings.Replace(fmt.Sprintf("%v", this.Privileges), "Privileges", "Privileges", 1) + `,`,
|
||||||
`Init:` + strings.Replace(fmt.Sprintf("%v", this.Init), "BoolValue", "google_protobuf4.BoolValue", 1) + `,`,
|
`Init:` + strings.Replace(fmt.Sprintf("%v", this.Init), "BoolValue", "google_protobuf2.BoolValue", 1) + `,`,
|
||||||
`Isolation:` + fmt.Sprintf("%v", this.Isolation) + `,`,
|
`Isolation:` + fmt.Sprintf("%v", this.Isolation) + `,`,
|
||||||
`PidsLimit:` + fmt.Sprintf("%v", this.PidsLimit) + `,`,
|
`PidsLimit:` + fmt.Sprintf("%v", this.PidsLimit) + `,`,
|
||||||
`Sysctls:` + mapStringForSysctls + `,`,
|
`Sysctls:` + mapStringForSysctls + `,`,
|
||||||
`MemorySwap:` + fmt.Sprintf("%v", this.MemorySwap) + `,`,
|
|
||||||
`MemorySwappiness:` + strings.Replace(fmt.Sprintf("%v", this.MemorySwappiness), "Int64Value", "google_protobuf4.Int64Value", 1) + `,`,
|
|
||||||
`}`,
|
`}`,
|
||||||
}, "")
|
}, "")
|
||||||
return s
|
return s
|
||||||
|
@ -4442,7 +4404,7 @@ func (m *GenericRuntimeSpec) Unmarshal(dAtA []byte) error {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
if m.Payload == nil {
|
if m.Payload == nil {
|
||||||
m.Payload = &google_protobuf3.Any{}
|
m.Payload = &google_protobuf4.Any{}
|
||||||
}
|
}
|
||||||
if err := m.Payload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.Payload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -5330,7 +5292,7 @@ func (m *ContainerSpec) Unmarshal(dAtA []byte) error {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
if m.Init == nil {
|
if m.Init == nil {
|
||||||
m.Init = &google_protobuf4.BoolValue{}
|
m.Init = &google_protobuf2.BoolValue{}
|
||||||
}
|
}
|
||||||
if err := m.Init.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.Init.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -5492,58 +5454,6 @@ func (m *ContainerSpec) Unmarshal(dAtA []byte) error {
|
||||||
}
|
}
|
||||||
m.Sysctls[mapkey] = mapvalue
|
m.Sysctls[mapkey] = mapvalue
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
case 27:
|
|
||||||
if wireType != 0 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field MemorySwap", wireType)
|
|
||||||
}
|
|
||||||
m.MemorySwap = 0
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowSpecs
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
m.MemorySwap |= (int64(b) & 0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case 28:
|
|
||||||
if wireType != 2 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field MemorySwappiness", wireType)
|
|
||||||
}
|
|
||||||
var msglen int
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowSpecs
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
msglen |= (int(b) & 0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if msglen < 0 {
|
|
||||||
return ErrInvalidLengthSpecs
|
|
||||||
}
|
|
||||||
postIndex := iNdEx + msglen
|
|
||||||
if postIndex > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
if m.MemorySwappiness == nil {
|
|
||||||
m.MemorySwappiness = &google_protobuf4.Int64Value{}
|
|
||||||
}
|
|
||||||
if err := m.MemorySwappiness.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
iNdEx = postIndex
|
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := skipSpecs(dAtA[iNdEx:])
|
skippy, err := skipSpecs(dAtA[iNdEx:])
|
||||||
|
@ -6855,144 +6765,141 @@ var (
|
||||||
func init() { proto.RegisterFile("github.com/docker/swarmkit/api/specs.proto", fileDescriptorSpecs) }
|
func init() { proto.RegisterFile("github.com/docker/swarmkit/api/specs.proto", fileDescriptorSpecs) }
|
||||||
|
|
||||||
var fileDescriptorSpecs = []byte{
|
var fileDescriptorSpecs = []byte{
|
||||||
// 2213 bytes of a gzipped FileDescriptorProto
|
// 2166 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcf, 0x6f, 0x1b, 0xb9,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4d, 0x6f, 0x1b, 0xc9,
|
||||||
0xf5, 0xb7, 0x6c, 0x59, 0x3f, 0xde, 0xc8, 0x89, 0xcc, 0xcd, 0xee, 0x8e, 0x95, 0xac, 0xad, 0xd5,
|
0xd1, 0x16, 0x25, 0x8a, 0x1f, 0x35, 0x94, 0x4d, 0xf5, 0xda, 0xde, 0x11, 0x6d, 0x4b, 0x34, 0xd7,
|
||||||
0x66, 0xf3, 0xf5, 0xee, 0xe2, 0x2b, 0xa3, 0x6e, 0x90, 0x66, 0x93, 0x6e, 0x5b, 0xc9, 0xd2, 0xda,
|
0xeb, 0x57, 0xbb, 0x8b, 0x97, 0x42, 0x94, 0xc5, 0xc6, 0x6b, 0x67, 0x93, 0x90, 0x22, 0x57, 0x62,
|
||||||
0x6a, 0x12, 0x5b, 0xa0, 0x1c, 0xb7, 0x01, 0x0a, 0x08, 0xf4, 0x0c, 0x2d, 0x0d, 0x3c, 0x1a, 0x4e,
|
0x6c, 0x4b, 0x44, 0x53, 0x56, 0x62, 0x20, 0x00, 0xd1, 0x9a, 0x69, 0x91, 0x03, 0x0d, 0xa7, 0x27,
|
||||||
0x49, 0xca, 0x81, 0x6e, 0x3d, 0x2e, 0xdc, 0xbf, 0xc1, 0xe8, 0xa1, 0xe8, 0xbd, 0xfd, 0x2f, 0x72,
|
0xdd, 0x4d, 0x19, 0xbc, 0xe5, 0xb8, 0x50, 0x7e, 0x83, 0x90, 0x43, 0x90, 0x7b, 0xf2, 0x2f, 0x7c,
|
||||||
0x6c, 0x6f, 0xed, 0xc5, 0xe8, 0xfa, 0x5f, 0xe8, 0xad, 0x97, 0x16, 0xe4, 0x70, 0xa4, 0x91, 0x2d,
|
0xcc, 0x31, 0xb9, 0x08, 0x59, 0x1d, 0xf2, 0x07, 0x72, 0xcb, 0x25, 0x41, 0xf7, 0xf4, 0xf0, 0x43,
|
||||||
0xc7, 0x29, 0x9a, 0x43, 0x6f, 0xe4, 0x9b, 0xcf, 0xe7, 0x91, 0x7c, 0xfc, 0xf0, 0xf1, 0x71, 0xe0,
|
0x1e, 0x59, 0x0e, 0xe2, 0x43, 0x6e, 0xdd, 0x35, 0xcf, 0x53, 0xfd, 0xf5, 0x54, 0x75, 0xf5, 0xc0,
|
||||||
0xcb, 0x9e, 0x27, 0xfb, 0xc3, 0xc3, 0xaa, 0xc3, 0x06, 0x1b, 0x2e, 0x73, 0x8e, 0x29, 0xdf, 0x10,
|
0xe7, 0x3d, 0x4f, 0xf6, 0x87, 0x87, 0x55, 0x87, 0x0d, 0x36, 0x5c, 0xe6, 0x1c, 0x53, 0xbe, 0x21,
|
||||||
0xaf, 0x09, 0x1f, 0x1c, 0x7b, 0x72, 0x83, 0x84, 0xde, 0x86, 0x08, 0xa9, 0x23, 0xaa, 0x21, 0x67,
|
0x5e, 0x13, 0x3e, 0x38, 0xf6, 0xe4, 0x06, 0x09, 0xbd, 0x0d, 0x11, 0x52, 0x47, 0x54, 0x43, 0xce,
|
||||||
0x92, 0x21, 0x14, 0x01, 0xaa, 0x31, 0xa0, 0x7a, 0xf2, 0x83, 0xd2, 0x4d, 0x7c, 0x39, 0x0a, 0xa9,
|
0x24, 0x43, 0x28, 0x02, 0x54, 0x63, 0x40, 0xf5, 0xe4, 0x07, 0xa5, 0xeb, 0xf8, 0x72, 0x14, 0x52,
|
||||||
0xe1, 0x97, 0xee, 0xf4, 0x58, 0x8f, 0xe9, 0xe6, 0x86, 0x6a, 0x19, 0xeb, 0x6a, 0x8f, 0xb1, 0x9e,
|
0xc3, 0x2f, 0xdd, 0xea, 0xb1, 0x1e, 0xd3, 0xcd, 0x0d, 0xd5, 0x32, 0xd6, 0xd5, 0x1e, 0x63, 0x3d,
|
||||||
0x4f, 0x37, 0x74, 0xef, 0x70, 0x78, 0xb4, 0xe1, 0x0e, 0x39, 0x91, 0x1e, 0x0b, 0xcc, 0xf7, 0x95,
|
0x9f, 0x6e, 0xe8, 0xde, 0xe1, 0xf0, 0x68, 0xc3, 0x1d, 0x72, 0x22, 0x3d, 0x16, 0x98, 0xef, 0x2b,
|
||||||
0xcb, 0xdf, 0x49, 0x30, 0xba, 0x8e, 0xfa, 0x9a, 0x93, 0x30, 0xa4, 0xdc, 0x0c, 0x58, 0x39, 0x4b,
|
0x97, 0xbf, 0x93, 0x60, 0x74, 0x15, 0xf5, 0x35, 0x27, 0x61, 0x48, 0xb9, 0x19, 0xb0, 0x72, 0x96,
|
||||||
0x43, 0x6e, 0x97, 0xb9, 0xb4, 0x13, 0x52, 0x07, 0x6d, 0x83, 0x45, 0x82, 0x80, 0x49, 0xed, 0x5b,
|
0x86, 0xdc, 0x2e, 0x73, 0x69, 0x27, 0xa4, 0x0e, 0xda, 0x06, 0x8b, 0x04, 0x01, 0x93, 0xda, 0xb7,
|
||||||
0xd8, 0xa9, 0x72, 0x6a, 0xdd, 0xda, 0x5c, 0xab, 0x5e, 0x5d, 0x53, 0xb5, 0x36, 0x81, 0xd5, 0xd3,
|
0xb0, 0x53, 0xe5, 0xd4, 0xba, 0xb5, 0xb9, 0x56, 0x7d, 0x7b, 0x4d, 0xd5, 0xda, 0x04, 0x56, 0x4f,
|
||||||
0x6f, 0xce, 0xd7, 0xe6, 0x70, 0x92, 0x89, 0x7e, 0x0a, 0x05, 0x97, 0x0a, 0x8f, 0x53, 0xb7, 0xcb,
|
0xbf, 0x39, 0x5f, 0x9b, 0xc3, 0xd3, 0x4c, 0xf4, 0x53, 0x28, 0xb8, 0x54, 0x78, 0x9c, 0xba, 0x5d,
|
||||||
0x99, 0x4f, 0xed, 0xf9, 0x72, 0x6a, 0xfd, 0xd6, 0xe6, 0xbd, 0x59, 0x9e, 0xd4, 0xe0, 0x98, 0xf9,
|
0xce, 0x7c, 0x6a, 0xcf, 0x97, 0x53, 0xeb, 0x37, 0x36, 0xef, 0x25, 0x79, 0x52, 0x83, 0x63, 0xe6,
|
||||||
0x14, 0x5b, 0x86, 0xa1, 0x3a, 0x68, 0x1b, 0x60, 0x40, 0x07, 0x87, 0x94, 0x8b, 0xbe, 0x17, 0xda,
|
0x53, 0x6c, 0x19, 0x86, 0xea, 0xa0, 0x6d, 0x80, 0x01, 0x1d, 0x1c, 0x52, 0x2e, 0xfa, 0x5e, 0x68,
|
||||||
0x0b, 0x9a, 0xfe, 0x7f, 0xd7, 0xd1, 0xd5, 0xdc, 0xab, 0x2f, 0xc6, 0x70, 0x9c, 0xa0, 0xa2, 0x17,
|
0x2f, 0x68, 0xfa, 0xff, 0x5d, 0x45, 0x57, 0x73, 0xaf, 0xbe, 0x18, 0xc3, 0xf1, 0x14, 0x15, 0xbd,
|
||||||
0x50, 0x20, 0x27, 0xc4, 0xf3, 0xc9, 0xa1, 0xe7, 0x7b, 0x72, 0x64, 0xa7, 0xb5, 0xab, 0x2f, 0xde,
|
0x80, 0x02, 0x39, 0x21, 0x9e, 0x4f, 0x0e, 0x3d, 0xdf, 0x93, 0x23, 0x3b, 0xad, 0x5d, 0x7d, 0xf6,
|
||||||
0xea, 0xaa, 0x96, 0x20, 0xe0, 0x29, 0x7a, 0xc5, 0x05, 0x98, 0x0c, 0x84, 0x1e, 0x40, 0xb6, 0xdd,
|
0x4e, 0x57, 0xb5, 0x29, 0x02, 0x9e, 0xa1, 0x57, 0x5c, 0x80, 0xc9, 0x40, 0xe8, 0x11, 0x64, 0xdb,
|
||||||
0xdc, 0x6d, 0xb4, 0x76, 0xb7, 0x8b, 0x73, 0xa5, 0x95, 0xd3, 0xb3, 0xf2, 0x87, 0xca, 0xc7, 0x04,
|
0xcd, 0xdd, 0x46, 0x6b, 0x77, 0xbb, 0x38, 0x57, 0x5a, 0x39, 0x3d, 0x2b, 0xdf, 0x56, 0x3e, 0x26,
|
||||||
0xd0, 0xa6, 0x81, 0xeb, 0x05, 0x3d, 0xb4, 0x0e, 0xb9, 0xda, 0xd6, 0x56, 0xb3, 0xbd, 0xdf, 0x6c,
|
0x80, 0x36, 0x0d, 0x5c, 0x2f, 0xe8, 0xa1, 0x75, 0xc8, 0xd5, 0xb6, 0xb6, 0x9a, 0xed, 0xfd, 0x66,
|
||||||
0x14, 0x53, 0xa5, 0xd2, 0xe9, 0x59, 0xf9, 0xa3, 0x69, 0x60, 0xcd, 0x71, 0x68, 0x28, 0xa9, 0x5b,
|
0xa3, 0x98, 0x2a, 0x95, 0x4e, 0xcf, 0xca, 0x77, 0x66, 0x81, 0x35, 0xc7, 0xa1, 0xa1, 0xa4, 0x6e,
|
||||||
0x4a, 0x7f, 0xf7, 0xfb, 0xd5, 0xb9, 0xca, 0x77, 0x29, 0x28, 0x24, 0x27, 0x81, 0x1e, 0x40, 0xa6,
|
0x29, 0xfd, 0xdd, 0xef, 0x57, 0xe7, 0x2a, 0xdf, 0xa5, 0xa0, 0x30, 0x3d, 0x09, 0xf4, 0x08, 0x32,
|
||||||
0xb6, 0xb5, 0xdf, 0x3a, 0x68, 0x16, 0xe7, 0x26, 0xf4, 0x24, 0xa2, 0xe6, 0x48, 0xef, 0x84, 0xa2,
|
0xb5, 0xad, 0xfd, 0xd6, 0x41, 0xb3, 0x38, 0x37, 0xa1, 0x4f, 0x23, 0x6a, 0x8e, 0xf4, 0x4e, 0x28,
|
||||||
0xfb, 0xb0, 0xd8, 0xae, 0xbd, 0xec, 0x34, 0x8b, 0xa9, 0xc9, 0x74, 0x92, 0xb0, 0x36, 0x19, 0x0a,
|
0x7a, 0x08, 0x8b, 0xed, 0xda, 0xcb, 0x4e, 0xb3, 0x98, 0x9a, 0x4c, 0x67, 0x1a, 0xd6, 0x26, 0x43,
|
||||||
0x8d, 0x6a, 0xe0, 0x5a, 0x6b, 0xb7, 0x38, 0x3f, 0x1b, 0xd5, 0xe0, 0xc4, 0x0b, 0xcc, 0x54, 0x7e,
|
0xa1, 0x51, 0x0d, 0x5c, 0x6b, 0xed, 0x16, 0xe7, 0x93, 0x51, 0x0d, 0x4e, 0xbc, 0xc0, 0x4c, 0xe5,
|
||||||
0x97, 0x06, 0xab, 0x43, 0xf9, 0x89, 0xe7, 0xbc, 0x67, 0x89, 0x3c, 0x82, 0xb4, 0x24, 0xe2, 0x58,
|
0x77, 0x69, 0xb0, 0x3a, 0x94, 0x9f, 0x78, 0xce, 0x07, 0x96, 0xc8, 0x57, 0x90, 0x96, 0x44, 0x1c,
|
||||||
0x4b, 0xc3, 0x9a, 0x2d, 0x8d, 0x7d, 0x22, 0x8e, 0xd5, 0xa0, 0x86, 0xae, 0xf1, 0x4a, 0x19, 0x9c,
|
0x6b, 0x69, 0x58, 0xc9, 0xd2, 0xd8, 0x27, 0xe2, 0x58, 0x0d, 0x6a, 0xe8, 0x1a, 0xaf, 0x94, 0xc1,
|
||||||
0x86, 0xbe, 0xe7, 0x10, 0x49, 0x5d, 0xad, 0x0c, 0x6b, 0xf3, 0xf3, 0x59, 0x6c, 0x3c, 0x46, 0x99,
|
0x69, 0xe8, 0x7b, 0x0e, 0x91, 0xd4, 0xd5, 0xca, 0xb0, 0x36, 0x3f, 0x4d, 0x62, 0xe3, 0x31, 0xca,
|
||||||
0xf9, 0xef, 0xcc, 0xe1, 0x04, 0x15, 0x3d, 0x85, 0x4c, 0xcf, 0x67, 0x87, 0xc4, 0xd7, 0x9a, 0xb0,
|
0xcc, 0x7f, 0x67, 0x0e, 0x4f, 0x51, 0xd1, 0x53, 0xc8, 0xf4, 0x7c, 0x76, 0x48, 0x7c, 0xad, 0x09,
|
||||||
0x36, 0x3f, 0x9d, 0xe5, 0x64, 0x5b, 0x23, 0x26, 0x0e, 0x0c, 0x05, 0x3d, 0x86, 0xcc, 0x30, 0x74,
|
0x6b, 0xf3, 0x41, 0x92, 0x93, 0x6d, 0x8d, 0x98, 0x38, 0x30, 0x14, 0xf4, 0x18, 0x32, 0xc3, 0xd0,
|
||||||
0x89, 0xa4, 0x76, 0x46, 0x93, 0xcb, 0xb3, 0xc8, 0x2f, 0x35, 0x62, 0x8b, 0x05, 0x47, 0x5e, 0x0f,
|
0x25, 0x92, 0xda, 0x19, 0x4d, 0x2e, 0x27, 0x91, 0x5f, 0x6a, 0xc4, 0x16, 0x0b, 0x8e, 0xbc, 0x1e,
|
||||||
0x1b, 0x3c, 0x7a, 0x06, 0xb9, 0x80, 0xca, 0xd7, 0x8c, 0x1f, 0x0b, 0x3b, 0x5b, 0x5e, 0x58, 0xb7,
|
0x36, 0x78, 0xf4, 0x0c, 0x72, 0x01, 0x95, 0xaf, 0x19, 0x3f, 0x16, 0x76, 0xb6, 0xbc, 0xb0, 0x6e,
|
||||||
0x36, 0xbf, 0x9a, 0x29, 0xc6, 0x08, 0x53, 0x93, 0x92, 0x38, 0xfd, 0x01, 0x0d, 0x64, 0xe4, 0xa6,
|
0x6d, 0x7e, 0x91, 0x28, 0xc6, 0x08, 0x53, 0x93, 0x92, 0x38, 0xfd, 0x01, 0x0d, 0x64, 0xe4, 0xa6,
|
||||||
0x3e, 0x6f, 0xa7, 0xf0, 0xd8, 0x01, 0xfa, 0x31, 0xe4, 0x68, 0xe0, 0x86, 0xcc, 0x0b, 0xa4, 0x9d,
|
0x3e, 0x6f, 0xa7, 0xf0, 0xd8, 0x01, 0xfa, 0x31, 0xe4, 0x68, 0xe0, 0x86, 0xcc, 0x0b, 0xa4, 0x9d,
|
||||||
0xbb, 0x7e, 0x22, 0x4d, 0x83, 0x51, 0xc1, 0xc4, 0x63, 0x86, 0x62, 0x73, 0xe6, 0xfb, 0x87, 0xc4,
|
0xbb, 0x7a, 0x22, 0x4d, 0x83, 0x51, 0x9b, 0x89, 0xc7, 0x0c, 0xc5, 0xe6, 0xcc, 0xf7, 0x0f, 0x89,
|
||||||
0x39, 0xb6, 0xf3, 0xef, 0xb8, 0x8c, 0x31, 0xa3, 0x9e, 0x81, 0xf4, 0x80, 0xb9, 0xb4, 0xb2, 0x01,
|
0x73, 0x6c, 0xe7, 0xdf, 0x73, 0x19, 0x63, 0x46, 0x3d, 0x03, 0xe9, 0x01, 0x73, 0x69, 0x65, 0x03,
|
||||||
0xcb, 0x57, 0x42, 0x8d, 0x4a, 0x90, 0x33, 0xa1, 0x8e, 0x34, 0x92, 0xc6, 0xe3, 0x7e, 0xe5, 0x36,
|
0x96, 0xdf, 0xda, 0x6a, 0x54, 0x82, 0x9c, 0xd9, 0xea, 0x48, 0x23, 0x69, 0x3c, 0xee, 0x57, 0x6e,
|
||||||
0x2c, 0x4d, 0x85, 0xb5, 0xf2, 0xc7, 0x45, 0xc8, 0xc5, 0x7b, 0x8d, 0x6a, 0x90, 0x77, 0x58, 0x20,
|
0xc2, 0xd2, 0xcc, 0xb6, 0x56, 0xfe, 0xb8, 0x08, 0xb9, 0xf8, 0xac, 0x51, 0x0d, 0xf2, 0x0e, 0x0b,
|
||||||
0x89, 0x17, 0x50, 0x6e, 0xe4, 0x35, 0x73, 0x67, 0xb6, 0x62, 0x90, 0x62, 0xed, 0xcc, 0xe1, 0x09,
|
0x24, 0xf1, 0x02, 0xca, 0x8d, 0xbc, 0x12, 0x4f, 0x66, 0x2b, 0x06, 0x29, 0xd6, 0xce, 0x1c, 0x9e,
|
||||||
0x0b, 0x7d, 0x0b, 0x79, 0x4e, 0x05, 0x1b, 0x72, 0x87, 0x0a, 0xa3, 0xaf, 0xf5, 0xd9, 0x0a, 0x89,
|
0xb0, 0xd0, 0xb7, 0x90, 0xe7, 0x54, 0xb0, 0x21, 0x77, 0xa8, 0x30, 0xfa, 0x5a, 0x4f, 0x56, 0x48,
|
||||||
0x40, 0x98, 0xfe, 0x7a, 0xe8, 0x71, 0xaa, 0xa2, 0x2c, 0xf0, 0x84, 0x8a, 0x9e, 0x42, 0x96, 0x53,
|
0x04, 0xc2, 0xf4, 0xd7, 0x43, 0x8f, 0x53, 0xb5, 0xcb, 0x02, 0x4f, 0xa8, 0xe8, 0x29, 0x64, 0x39,
|
||||||
0x21, 0x09, 0x97, 0x6f, 0x93, 0x08, 0x8e, 0x20, 0x6d, 0xe6, 0x7b, 0xce, 0x08, 0xc7, 0x0c, 0xf4,
|
0x15, 0x92, 0x70, 0xf9, 0x2e, 0x89, 0xe0, 0x08, 0xd2, 0x66, 0xbe, 0xe7, 0x8c, 0x70, 0xcc, 0x40,
|
||||||
0x14, 0xf2, 0xa1, 0x4f, 0x1c, 0xed, 0xd5, 0x5e, 0xd4, 0xf4, 0x4f, 0x66, 0xd1, 0xdb, 0x31, 0x08,
|
0x4f, 0x21, 0x1f, 0xfa, 0xc4, 0xd1, 0x5e, 0xed, 0x45, 0x4d, 0xbf, 0x9f, 0x44, 0x6f, 0xc7, 0x20,
|
||||||
0x4f, 0xf0, 0xe8, 0x6b, 0x00, 0x9f, 0xf5, 0xba, 0x2e, 0xf7, 0x4e, 0x28, 0x37, 0x12, 0x2b, 0xcd,
|
0x3c, 0xc1, 0xa3, 0xaf, 0x01, 0x7c, 0xd6, 0xeb, 0xba, 0xdc, 0x3b, 0xa1, 0xdc, 0x48, 0xac, 0x94,
|
||||||
0x62, 0x37, 0x34, 0x02, 0xe7, 0x7d, 0xd6, 0x8b, 0x9a, 0x68, 0xfb, 0xbf, 0xd2, 0x57, 0x42, 0x5b,
|
0xc4, 0x6e, 0x68, 0x04, 0xce, 0xfb, 0xac, 0x17, 0x35, 0xd1, 0xf6, 0x7f, 0xa5, 0xaf, 0x29, 0x6d,
|
||||||
0xcf, 0x00, 0xc8, 0xf8, 0xab, 0x51, 0xd7, 0x17, 0xef, 0xe4, 0xca, 0xec, 0x48, 0x82, 0x8e, 0x3e,
|
0x3d, 0x03, 0x20, 0xe3, 0xaf, 0x46, 0x5d, 0x9f, 0xbd, 0x97, 0x2b, 0x73, 0x22, 0x53, 0x74, 0xf4,
|
||||||
0x85, 0xc2, 0x11, 0xe3, 0x0e, 0xed, 0x9a, 0x53, 0x93, 0xd7, 0x9a, 0xb0, 0xb4, 0x2d, 0xd2, 0x17,
|
0x00, 0x0a, 0x47, 0x8c, 0x3b, 0xb4, 0x6b, 0xa2, 0x26, 0xaf, 0x35, 0x61, 0x69, 0x5b, 0xa4, 0x2f,
|
||||||
0xaa, 0x43, 0xb6, 0x47, 0x03, 0xca, 0x3d, 0xc7, 0x06, 0x3d, 0xd8, 0x83, 0x99, 0x07, 0x32, 0x82,
|
0x54, 0x87, 0x6c, 0x8f, 0x06, 0x94, 0x7b, 0x8e, 0x0d, 0x7a, 0xb0, 0x47, 0x89, 0x01, 0x19, 0x41,
|
||||||
0xe0, 0x61, 0x20, 0xbd, 0x01, 0x35, 0x23, 0xc5, 0x44, 0xf4, 0x2b, 0xf8, 0x20, 0xde, 0xbe, 0x2e,
|
0xf0, 0x30, 0x90, 0xde, 0x80, 0x9a, 0x91, 0x62, 0x22, 0xfa, 0x15, 0x7c, 0x14, 0x1f, 0x5f, 0x97,
|
||||||
0xa7, 0x47, 0x94, 0xd3, 0x40, 0x69, 0xc0, 0xd2, 0x71, 0xf8, 0xfc, 0xed, 0x1a, 0x30, 0x68, 0x93,
|
0xd3, 0x23, 0xca, 0x69, 0xa0, 0x34, 0x60, 0xe9, 0x7d, 0xf8, 0xf4, 0xdd, 0x1a, 0x30, 0x68, 0x93,
|
||||||
0x6c, 0x10, 0xbf, 0xfc, 0x41, 0xd4, 0xf3, 0x90, 0xe5, 0xd1, 0xb8, 0x95, 0xdf, 0xa6, 0x94, 0xea,
|
0x6c, 0x10, 0xbf, 0xfc, 0x41, 0xd4, 0xf3, 0x90, 0xe5, 0xd1, 0xb8, 0x95, 0xdf, 0xa6, 0x94, 0xea,
|
||||||
0x2f, 0x21, 0xd0, 0x06, 0x58, 0xe3, 0xe1, 0x3d, 0x57, 0xab, 0x37, 0x5f, 0xbf, 0x75, 0x71, 0xbe,
|
0x2f, 0x21, 0xd0, 0x06, 0x58, 0xe3, 0xe1, 0x3d, 0x57, 0xab, 0x37, 0x5f, 0xbf, 0x71, 0x71, 0xbe,
|
||||||
0x06, 0x31, 0xb6, 0xd5, 0x50, 0x39, 0xc8, 0xb4, 0x5d, 0xd4, 0x84, 0xa5, 0x31, 0x41, 0x95, 0x01,
|
0x06, 0x31, 0xb6, 0xd5, 0x50, 0x39, 0xc8, 0xb4, 0x5d, 0xd4, 0x84, 0xa5, 0x31, 0x41, 0x95, 0x01,
|
||||||
0xe6, 0xa2, 0x2c, 0xbf, 0x6d, 0xa6, 0xfb, 0xa3, 0x90, 0xe2, 0x02, 0x4f, 0xf4, 0x2a, 0xbf, 0x04,
|
0xe6, 0xa2, 0x2c, 0xbf, 0x6b, 0xa6, 0xfb, 0xa3, 0x90, 0xe2, 0x02, 0x9f, 0xea, 0x55, 0x7e, 0x09,
|
||||||
0x74, 0x35, 0x2e, 0x08, 0x41, 0xfa, 0xd8, 0x0b, 0xcc, 0x34, 0xb0, 0x6e, 0xa3, 0x2a, 0x64, 0x43,
|
0xe8, 0xed, 0x7d, 0x41, 0x08, 0xd2, 0xc7, 0x5e, 0x60, 0xa6, 0x81, 0x75, 0x1b, 0x55, 0x21, 0x1b,
|
||||||
0x32, 0xf2, 0x19, 0x71, 0xcd, 0xc1, 0xb8, 0x53, 0x8d, 0x0a, 0x84, 0x6a, 0x5c, 0x20, 0x54, 0x6b,
|
0x92, 0x91, 0xcf, 0x88, 0x6b, 0x02, 0xe3, 0x56, 0x35, 0x2a, 0x10, 0xaa, 0x71, 0x81, 0x50, 0xad,
|
||||||
0xc1, 0x08, 0xc7, 0xa0, 0xca, 0x33, 0xf8, 0x70, 0xe6, 0xf6, 0xa2, 0x4d, 0x28, 0x8c, 0x0f, 0xdc,
|
0x05, 0x23, 0x1c, 0x83, 0x2a, 0xcf, 0xe0, 0x76, 0xe2, 0xf1, 0xa2, 0x4d, 0x28, 0x8c, 0x03, 0x6e,
|
||||||
0x64, 0xad, 0xb7, 0x2f, 0xce, 0xd7, 0xac, 0xf1, 0xc9, 0x6c, 0x35, 0xb0, 0x35, 0x06, 0xb5, 0xdc,
|
0xb2, 0xd6, 0x9b, 0x17, 0xe7, 0x6b, 0xd6, 0x38, 0x32, 0x5b, 0x0d, 0x6c, 0x8d, 0x41, 0x2d, 0xb7,
|
||||||
0xca, 0x5f, 0x96, 0x60, 0x69, 0xea, 0xd8, 0xa2, 0x3b, 0xb0, 0xe8, 0x0d, 0x48, 0x8f, 0x9a, 0x39,
|
0xf2, 0xf7, 0x02, 0x2c, 0xcd, 0x84, 0x2d, 0xba, 0x05, 0x8b, 0xde, 0x80, 0xf4, 0xa8, 0x99, 0x63,
|
||||||
0x46, 0x1d, 0xd4, 0x84, 0x8c, 0x4f, 0x0e, 0xa9, 0xaf, 0x0e, 0xaf, 0xda, 0xb8, 0xff, 0xbf, 0xf1,
|
0xd4, 0x41, 0x4d, 0xc8, 0xf8, 0xe4, 0x90, 0xfa, 0x2a, 0x78, 0xd5, 0xc1, 0xfd, 0xff, 0xb5, 0xf1,
|
||||||
0xfc, 0x57, 0x9f, 0x6b, 0x7c, 0x33, 0x90, 0x7c, 0x84, 0x0d, 0x19, 0xd9, 0x90, 0x75, 0xd8, 0x60,
|
0x5f, 0x7d, 0xae, 0xf1, 0xcd, 0x40, 0xf2, 0x11, 0x36, 0x64, 0x64, 0x43, 0xd6, 0x61, 0x83, 0x01,
|
||||||
0x40, 0x02, 0x75, 0x4d, 0x2c, 0xac, 0xe7, 0x71, 0xdc, 0x55, 0x91, 0x21, 0xbc, 0x27, 0xec, 0xb4,
|
0x09, 0xd4, 0x35, 0xb1, 0xb0, 0x9e, 0xc7, 0x71, 0x57, 0xed, 0x0c, 0xe1, 0x3d, 0x61, 0xa7, 0xb5,
|
||||||
0x36, 0xeb, 0x36, 0x2a, 0xc2, 0x02, 0x0d, 0x4e, 0xec, 0x45, 0x6d, 0x52, 0x4d, 0x65, 0x71, 0xbd,
|
0x59, 0xb7, 0x51, 0x11, 0x16, 0x68, 0x70, 0x62, 0x2f, 0x6a, 0x93, 0x6a, 0x2a, 0x8b, 0xeb, 0x45,
|
||||||
0xe8, 0xf4, 0xe5, 0xb1, 0x6a, 0x2a, 0xde, 0x50, 0x50, 0x6e, 0x67, 0xa3, 0x88, 0xaa, 0x36, 0xfa,
|
0xd1, 0x97, 0xc7, 0xaa, 0xa9, 0x78, 0x43, 0x41, 0xb9, 0x9d, 0x8d, 0x76, 0x54, 0xb5, 0xd1, 0x8f,
|
||||||
0x11, 0x64, 0x06, 0x6c, 0x18, 0x48, 0x61, 0xe7, 0xf4, 0x64, 0x57, 0x66, 0x4d, 0xf6, 0x85, 0x42,
|
0x20, 0x33, 0x60, 0xc3, 0x40, 0x0a, 0x3b, 0xa7, 0x27, 0xbb, 0x92, 0x34, 0xd9, 0x17, 0x0a, 0x61,
|
||||||
0x18, 0x65, 0x19, 0x38, 0x6a, 0xc2, 0xb2, 0x90, 0x2c, 0xec, 0xf6, 0x38, 0x71, 0x68, 0x37, 0xa4,
|
0x94, 0x65, 0xe0, 0xa8, 0x09, 0xcb, 0x42, 0xb2, 0xb0, 0xdb, 0xe3, 0xc4, 0xa1, 0xdd, 0x90, 0x72,
|
||||||
0xdc, 0x63, 0xae, 0x49, 0xc3, 0x2b, 0x57, 0x36, 0xa5, 0x61, 0x0a, 0x3e, 0x7c, 0x5b, 0x71, 0xb6,
|
0x8f, 0xb9, 0x26, 0x0d, 0xaf, 0xbc, 0x75, 0x28, 0x0d, 0x53, 0xf0, 0xe1, 0x9b, 0x8a, 0xb3, 0xad,
|
||||||
0x15, 0xa5, 0xad, 0x19, 0xa8, 0x0d, 0x85, 0x70, 0xe8, 0xfb, 0x5d, 0x16, 0x46, 0x37, 0x72, 0x74,
|
0x28, 0x6d, 0xcd, 0x40, 0x6d, 0x28, 0x84, 0x43, 0xdf, 0xef, 0xb2, 0x30, 0xba, 0x91, 0xa3, 0xd8,
|
||||||
0x76, 0xde, 0x21, 0x64, 0xed, 0xa1, 0xef, 0xef, 0x45, 0x24, 0x6c, 0x85, 0x93, 0x0e, 0xfa, 0x08,
|
0x79, 0x8f, 0x2d, 0x6b, 0x0f, 0x7d, 0x7f, 0x2f, 0x22, 0x61, 0x2b, 0x9c, 0x74, 0xd0, 0x1d, 0xc8,
|
||||||
0x32, 0x3d, 0xce, 0x86, 0x61, 0x74, 0x6e, 0xf2, 0xd8, 0xf4, 0xd0, 0x37, 0x90, 0x15, 0xd4, 0xe1,
|
0xf4, 0x38, 0x1b, 0x86, 0x51, 0xdc, 0xe4, 0xb1, 0xe9, 0xa1, 0x6f, 0x20, 0x2b, 0xa8, 0xc3, 0xa9,
|
||||||
0x54, 0x0a, 0xbb, 0xa0, 0x97, 0xfa, 0xd9, 0xac, 0x41, 0x3a, 0x1a, 0x32, 0x3e, 0x13, 0x38, 0xe6,
|
0x14, 0x76, 0x41, 0x2f, 0xf5, 0x93, 0xa4, 0x41, 0x3a, 0x1a, 0x32, 0x8e, 0x09, 0x1c, 0x73, 0xd0,
|
||||||
0xa0, 0x15, 0x58, 0x90, 0x72, 0x64, 0x2f, 0x95, 0x53, 0xeb, 0xb9, 0x7a, 0xf6, 0xe2, 0x7c, 0x6d,
|
0x0a, 0x2c, 0x48, 0x39, 0xb2, 0x97, 0xca, 0xa9, 0xf5, 0x5c, 0x3d, 0x7b, 0x71, 0xbe, 0xb6, 0xb0,
|
||||||
0x61, 0x7f, 0xff, 0x15, 0x56, 0x36, 0x75, 0x5b, 0xf4, 0x99, 0x90, 0x01, 0x19, 0x50, 0xfb, 0x96,
|
0xbf, 0xff, 0x0a, 0x2b, 0x9b, 0xba, 0x2d, 0xfa, 0x4c, 0xc8, 0x80, 0x0c, 0xa8, 0x7d, 0x43, 0xef,
|
||||||
0x8e, 0xed, 0xb8, 0x8f, 0x5e, 0x01, 0xb8, 0x81, 0xe8, 0x3a, 0x3a, 0x3d, 0xd9, 0xb7, 0xf5, 0xea,
|
0xed, 0xb8, 0x8f, 0x5e, 0x01, 0xb8, 0x81, 0xe8, 0x3a, 0x3a, 0x3d, 0xd9, 0x37, 0xf5, 0xea, 0xbe,
|
||||||
0xbe, 0xba, 0x79, 0x75, 0x8d, 0xdd, 0x8e, 0xb9, 0x31, 0x97, 0x2e, 0xce, 0xd7, 0xf2, 0xe3, 0x2e,
|
0xb8, 0x7e, 0x75, 0x8d, 0xdd, 0x8e, 0xb9, 0x31, 0x97, 0x2e, 0xce, 0xd7, 0xf2, 0xe3, 0x2e, 0xce,
|
||||||
0xce, 0xbb, 0x81, 0x88, 0x9a, 0xa8, 0x0e, 0x56, 0x9f, 0x12, 0x5f, 0xf6, 0x9d, 0x3e, 0x75, 0x8e,
|
0xbb, 0x81, 0x88, 0x9a, 0xa8, 0x0e, 0x56, 0x9f, 0x12, 0x5f, 0xf6, 0x9d, 0x3e, 0x75, 0x8e, 0xed,
|
||||||
0xed, 0xe2, 0xf5, 0x57, 0xe0, 0x8e, 0x86, 0x19, 0x0f, 0x49, 0x92, 0x52, 0xb0, 0x9a, 0xaa, 0xb0,
|
0xe2, 0xd5, 0x57, 0xe0, 0x8e, 0x86, 0x19, 0x0f, 0xd3, 0x24, 0xa5, 0x60, 0x35, 0x55, 0x61, 0x2f,
|
||||||
0x97, 0x75, 0xac, 0xa2, 0x0e, 0xfa, 0x04, 0x80, 0x85, 0x34, 0xe8, 0x0a, 0xe9, 0x7a, 0x81, 0x8d,
|
0xeb, 0xbd, 0x8a, 0x3a, 0xe8, 0x3e, 0x00, 0x0b, 0x69, 0xd0, 0x15, 0xd2, 0xf5, 0x02, 0x1b, 0xa9,
|
||||||
0xd4, 0x92, 0x71, 0x5e, 0x59, 0x3a, 0xca, 0x80, 0xee, 0xaa, 0x0b, 0x8a, 0xb8, 0x5d, 0x16, 0xf8,
|
0x25, 0xe3, 0xbc, 0xb2, 0x74, 0x94, 0x01, 0xdd, 0x55, 0x17, 0x14, 0x71, 0xbb, 0x2c, 0xf0, 0x47,
|
||||||
0x23, 0xfb, 0x03, 0xfd, 0x35, 0xa7, 0x0c, 0x7b, 0x81, 0x3f, 0x42, 0x6b, 0x60, 0x69, 0x5d, 0x08,
|
0xf6, 0x47, 0xfa, 0x6b, 0x4e, 0x19, 0xf6, 0x02, 0x7f, 0x84, 0xd6, 0xc0, 0xd2, 0xba, 0x10, 0x5e,
|
||||||
0xaf, 0x17, 0x10, 0xdf, 0xbe, 0xa3, 0xe3, 0x01, 0xca, 0xd4, 0xd1, 0x16, 0xb5, 0x0f, 0x51, 0x34,
|
0x2f, 0x20, 0xbe, 0x7d, 0x4b, 0xef, 0x07, 0x28, 0x53, 0x47, 0x5b, 0xd4, 0x39, 0x44, 0xbb, 0x21,
|
||||||
0x84, 0xfd, 0xe1, 0xf5, 0xfb, 0x60, 0x26, 0x3b, 0xd9, 0x07, 0xc3, 0x41, 0x3f, 0x01, 0x08, 0xb9,
|
0xec, 0xdb, 0x57, 0x9f, 0x83, 0x99, 0xec, 0xe4, 0x1c, 0x0c, 0x07, 0xfd, 0x04, 0x20, 0xe4, 0xde,
|
||||||
0x77, 0xe2, 0xf9, 0xb4, 0x47, 0x85, 0xfd, 0x91, 0x5e, 0xf4, 0xea, 0xcc, 0x9b, 0x69, 0x8c, 0xc2,
|
0x89, 0xe7, 0xd3, 0x1e, 0x15, 0xf6, 0x1d, 0xbd, 0xe8, 0xd5, 0xc4, 0x9b, 0x69, 0x8c, 0xc2, 0x53,
|
||||||
0x09, 0x06, 0xaa, 0x42, 0xda, 0x0b, 0x3c, 0x69, 0x7f, 0x6c, 0x6e, 0xa5, 0xcb, 0x52, 0xad, 0x33,
|
0x0c, 0x54, 0x85, 0xb4, 0x17, 0x78, 0xd2, 0xfe, 0xd8, 0xdc, 0x4a, 0x97, 0xa5, 0x5a, 0x67, 0xcc,
|
||||||
0xe6, 0x1f, 0x10, 0x7f, 0x48, 0xb1, 0xc6, 0xa1, 0x16, 0xe4, 0x3d, 0xc1, 0x7c, 0x2d, 0x5f, 0xdb,
|
0x3f, 0x20, 0xfe, 0x90, 0x62, 0x8d, 0x43, 0x2d, 0xc8, 0x7b, 0x82, 0xf9, 0x5a, 0xbe, 0xb6, 0xad,
|
||||||
0xd6, 0xf9, 0xed, 0x1d, 0xf6, 0xaf, 0x15, 0x53, 0xf0, 0x84, 0x8d, 0xee, 0x41, 0x3e, 0xf4, 0x5c,
|
0xf3, 0xdb, 0x7b, 0x9c, 0x5f, 0x2b, 0xa6, 0xe0, 0x09, 0x1b, 0xdd, 0x83, 0x7c, 0xe8, 0xb9, 0xe2,
|
||||||
0xf1, 0xdc, 0x1b, 0x78, 0xd2, 0x5e, 0x29, 0xa7, 0xd6, 0x17, 0xf0, 0xc4, 0x80, 0x76, 0x20, 0x2b,
|
0xb9, 0x37, 0xf0, 0xa4, 0xbd, 0x52, 0x4e, 0xad, 0x2f, 0xe0, 0x89, 0x01, 0xed, 0x40, 0x56, 0x8c,
|
||||||
0x46, 0xc2, 0x91, 0xbe, 0xb0, 0x4b, 0x3a, 0x2e, 0xd5, 0x9b, 0x87, 0xe9, 0x44, 0x84, 0x28, 0x71,
|
0x84, 0x23, 0x7d, 0x61, 0x97, 0xf4, 0xbe, 0x54, 0xaf, 0x1f, 0xa6, 0x13, 0x11, 0xa2, 0xc4, 0x11,
|
||||||
0xc4, 0x74, 0xb5, 0x05, 0x03, 0x3a, 0x60, 0x7c, 0xd4, 0x15, 0xaf, 0x49, 0x68, 0xdf, 0xd5, 0x23,
|
0xd3, 0x4b, 0x5f, 0x83, 0x35, 0x95, 0x50, 0x54, 0x22, 0x38, 0xa6, 0x23, 0x93, 0xa3, 0x54, 0x53,
|
||||||
0x41, 0x64, 0xea, 0xbc, 0x26, 0x21, 0xda, 0x81, 0xe5, 0x04, 0x20, 0xf4, 0x02, 0x2a, 0x84, 0x7d,
|
0x9d, 0xfa, 0x89, 0x5a, 0xa2, 0x4e, 0xa2, 0x79, 0x1c, 0x75, 0x9e, 0xcc, 0x3f, 0x4e, 0x95, 0x36,
|
||||||
0x4f, 0x07, 0xe4, 0xee, 0x95, 0x80, 0xb4, 0x02, 0xf9, 0xe8, 0x61, 0x14, 0x91, 0xe2, 0xc4, 0x47,
|
0xc1, 0x9a, 0x0a, 0x2c, 0xf4, 0x89, 0x4a, 0xf0, 0x3d, 0x4f, 0x48, 0x3e, 0xea, 0x92, 0xa1, 0xec,
|
||||||
0x44, 0x2a, 0x7d, 0x0d, 0x56, 0x22, 0x77, 0xa9, 0x9c, 0x73, 0x4c, 0x47, 0x26, 0x1d, 0xaa, 0xa6,
|
0xdb, 0x3f, 0xd3, 0x84, 0x42, 0x6c, 0xac, 0x0d, 0x65, 0xbf, 0xd4, 0x85, 0x89, 0x3e, 0x51, 0x19,
|
||||||
0x12, 0xd8, 0x89, 0xe2, 0xea, 0x7c, 0x9d, 0xc7, 0x51, 0xe7, 0xc9, 0xfc, 0xe3, 0x54, 0x69, 0x13,
|
0x2c, 0xa5, 0x7b, 0x41, 0xf9, 0x09, 0xe5, 0xaa, 0x78, 0x52, 0xb2, 0x9a, 0x36, 0xa9, 0xf8, 0x14,
|
||||||
0xac, 0xc4, 0x19, 0x46, 0x9f, 0xa9, 0xbb, 0xa4, 0xe7, 0x09, 0xc9, 0x47, 0x5d, 0x32, 0x94, 0x7d,
|
0x94, 0x70, 0xa7, 0xaf, 0xd3, 0x63, 0x1e, 0x9b, 0x9e, 0xca, 0x77, 0x71, 0x12, 0x30, 0xf9, 0xce,
|
||||||
0xfb, 0x67, 0x9a, 0x50, 0x88, 0x8d, 0xb5, 0xa1, 0xec, 0x97, 0xba, 0x30, 0x39, 0x0a, 0xa8, 0x0c,
|
0x74, 0x4b, 0x4f, 0xa0, 0x30, 0xbd, 0xd0, 0xff, 0x64, 0x41, 0x95, 0x3f, 0xa5, 0x20, 0x3f, 0x3e,
|
||||||
0x96, 0x3a, 0x62, 0x82, 0xf2, 0x13, 0xca, 0x55, 0x9d, 0xa6, 0x14, 0x9c, 0x34, 0xa9, 0x54, 0x20,
|
0x0c, 0xf4, 0x25, 0x2c, 0xb7, 0x3a, 0x7b, 0xcf, 0x6b, 0xfb, 0xad, 0xbd, 0xdd, 0x6e, 0xa3, 0xf9,
|
||||||
0x28, 0xe1, 0x4e, 0x5f, 0x67, 0xe2, 0x3c, 0x36, 0x3d, 0x95, 0x5a, 0xe3, 0x7c, 0x63, 0x52, 0xab,
|
0x6d, 0xed, 0xe5, 0xf3, 0xfd, 0xe2, 0x5c, 0xe9, 0xfe, 0xe9, 0x59, 0x79, 0x65, 0x92, 0xf7, 0x63,
|
||||||
0xe9, 0x96, 0x9e, 0x40, 0x21, 0x19, 0xd3, 0xff, 0x64, 0x41, 0x95, 0x3f, 0xa5, 0x20, 0x3f, 0xde,
|
0x78, 0x83, 0x1e, 0x91, 0xa1, 0x2f, 0x67, 0x59, 0x6d, 0xbc, 0xb7, 0xd5, 0xec, 0x74, 0x8a, 0xa9,
|
||||||
0x77, 0xf4, 0x10, 0x96, 0x5b, 0x9d, 0xbd, 0xe7, 0xb5, 0xfd, 0xd6, 0xde, 0x6e, 0xb7, 0xd1, 0xfc,
|
0xab, 0x58, 0x6d, 0xce, 0x1c, 0x2a, 0x04, 0xda, 0x84, 0xe2, 0x84, 0xb5, 0xf3, 0xaa, 0xdd, 0xc4,
|
||||||
0xb6, 0xf6, 0xf2, 0xf9, 0x7e, 0x71, 0xae, 0xf4, 0xc9, 0xe9, 0x59, 0x79, 0x65, 0x72, 0xc5, 0xc4,
|
0x07, 0xc5, 0xf9, 0xd2, 0xbd, 0xd3, 0xb3, 0xb2, 0xfd, 0x36, 0x69, 0x67, 0x14, 0x52, 0x7e, 0x60,
|
||||||
0xf0, 0x06, 0x3d, 0x22, 0x43, 0x5f, 0x4e, 0xb3, 0xda, 0x78, 0x6f, 0xab, 0xd9, 0xe9, 0x14, 0x53,
|
0x1e, 0x2d, 0xff, 0x48, 0x41, 0x61, 0xba, 0xe6, 0x45, 0x5b, 0x51, 0xad, 0xaa, 0x57, 0x7c, 0x63,
|
||||||
0xd7, 0xb1, 0xda, 0x9c, 0x39, 0x54, 0x08, 0xb4, 0x09, 0xc5, 0x09, 0x6b, 0xe7, 0x55, 0xbb, 0x89,
|
0x73, 0xe3, 0xba, 0x1a, 0x59, 0xdf, 0xb5, 0xfe, 0x50, 0xf9, 0x7d, 0xa1, 0x9e, 0xa7, 0x9a, 0x8c,
|
||||||
0x0f, 0x8a, 0xf3, 0xa5, 0x7b, 0xa7, 0x67, 0x65, 0xfb, 0x2a, 0x69, 0x67, 0x14, 0x52, 0x7e, 0x60,
|
0xbe, 0x84, 0xc5, 0x90, 0x71, 0x19, 0xdf, 0x4a, 0xc9, 0x31, 0xc3, 0x78, 0x5c, 0x49, 0x45, 0xe0,
|
||||||
0xde, 0x47, 0xff, 0x48, 0x41, 0x21, 0x59, 0x5e, 0xa3, 0xad, 0xa8, 0x2c, 0xd6, 0x2b, 0xbe, 0xb5,
|
0x4a, 0x1f, 0x6e, 0xcc, 0x7a, 0x43, 0x0f, 0x61, 0xe1, 0xa0, 0xd5, 0x2e, 0xce, 0x95, 0xee, 0x9e,
|
||||||
0xb9, 0x71, 0x53, 0x39, 0xae, 0xaf, 0x75, 0x7f, 0xa8, 0xfc, 0xbe, 0x50, 0x2f, 0x61, 0x4d, 0x46,
|
0x9e, 0x95, 0x3f, 0x9e, 0xfd, 0x78, 0xe0, 0x71, 0x39, 0x24, 0x7e, 0xab, 0x8d, 0x3e, 0x87, 0xc5,
|
||||||
0x0f, 0x61, 0x31, 0x64, 0x5c, 0xc6, 0x17, 0xe0, 0xec, 0xe3, 0xc9, 0x78, 0x5c, 0xb4, 0x45, 0xe0,
|
0xc6, 0x6e, 0x07, 0xe3, 0x62, 0xaa, 0xb4, 0x76, 0x7a, 0x56, 0xbe, 0x3b, 0x8b, 0x53, 0x9f, 0xd8,
|
||||||
0x4a, 0x1f, 0x6e, 0x4d, 0x7b, 0x43, 0xf7, 0x61, 0xe1, 0xa0, 0xd5, 0x2e, 0xce, 0x95, 0xee, 0x9e,
|
0x30, 0x70, 0x31, 0x3b, 0x1c, 0x3f, 0xd5, 0xfe, 0x39, 0x0f, 0x96, 0xb9, 0xac, 0x3f, 0xf4, 0x6b,
|
||||||
0x9e, 0x95, 0x3f, 0x9e, 0xfe, 0x78, 0xe0, 0x71, 0x39, 0x24, 0x7e, 0xab, 0x8d, 0xbe, 0x84, 0xc5,
|
0x7e, 0x29, 0xaa, 0x44, 0xe3, 0x2c, 0x3c, 0x7f, 0x6d, 0x41, 0x5a, 0x88, 0x08, 0x46, 0xd3, 0x0f,
|
||||||
0xc6, 0x6e, 0x07, 0xe3, 0x62, 0xaa, 0xb4, 0x76, 0x7a, 0x56, 0xbe, 0x3b, 0x8d, 0x53, 0x9f, 0xd8,
|
0xa0, 0xe0, 0x85, 0x27, 0x5f, 0x75, 0x69, 0x40, 0x0e, 0x7d, 0xf3, 0x6a, 0xcb, 0x61, 0x4b, 0xd9,
|
||||||
0x30, 0x70, 0x31, 0x3b, 0x1c, 0xbf, 0x0a, 0xff, 0x39, 0x0f, 0x96, 0xa9, 0x0b, 0xde, 0xf7, 0x8f,
|
0x9a, 0x91, 0x49, 0x5d, 0x01, 0x5e, 0x20, 0x29, 0x0f, 0xcc, 0x7b, 0x2c, 0x87, 0xc7, 0x7d, 0xf4,
|
||||||
0x83, 0xa5, 0xa8, 0xe8, 0x8d, 0x13, 0xfe, 0xfc, 0x8d, 0xb5, 0x6f, 0x21, 0x22, 0x18, 0x4d, 0x7f,
|
0x0d, 0xa4, 0xbd, 0x90, 0x0c, 0x4c, 0x15, 0x9d, 0xb8, 0x82, 0x56, 0xbb, 0xf6, 0xc2, 0xc4, 0x5c,
|
||||||
0x0a, 0x05, 0x2f, 0x3c, 0x79, 0xd4, 0xa5, 0x01, 0x39, 0xf4, 0xcd, 0x03, 0x31, 0x87, 0x2d, 0x65,
|
0x3d, 0x77, 0x71, 0xbe, 0x96, 0x56, 0x06, 0xac, 0x69, 0x68, 0x35, 0x2e, 0x64, 0xd5, 0x48, 0xfa,
|
||||||
0x6b, 0x46, 0x26, 0x75, 0xdb, 0x78, 0x81, 0xa4, 0x3c, 0x30, 0x4f, 0xbf, 0x1c, 0x1e, 0xf7, 0xd1,
|
0x3a, 0xcf, 0xe1, 0x29, 0x8b, 0x8a, 0x1b, 0x2f, 0xe8, 0x71, 0x2a, 0x84, 0xbe, 0xd8, 0x73, 0x38,
|
||||||
0x37, 0x90, 0xf6, 0x42, 0x32, 0x30, 0x05, 0xfb, 0xcc, 0x15, 0xb4, 0xda, 0xb5, 0x17, 0xe6, 0xcc,
|
0xee, 0xa2, 0x12, 0x64, 0x4d, 0x39, 0xac, 0xeb, 0xdf, 0xbc, 0x2a, 0x35, 0x8d, 0xa1, 0xbe, 0x04,
|
||||||
0xd5, 0x73, 0x17, 0xe7, 0x6b, 0x69, 0x65, 0xc0, 0x9a, 0x86, 0x56, 0xe3, 0x9a, 0x59, 0x8d, 0xa4,
|
0x56, 0xb4, 0x1b, 0xdd, 0x23, 0xce, 0x06, 0x95, 0x7f, 0xa5, 0xc1, 0xda, 0xf2, 0x87, 0x42, 0x9a,
|
||||||
0x2b, 0x87, 0x1c, 0x4e, 0x58, 0xd4, 0xb9, 0xf1, 0x82, 0x1e, 0x57, 0xd9, 0x22, 0xab, 0x3f, 0xc6,
|
0xca, 0xe6, 0x83, 0x6d, 0xfe, 0x2b, 0x58, 0x26, 0xfa, 0xef, 0x00, 0x09, 0x54, 0x99, 0xa0, 0x5f,
|
||||||
0x5d, 0x54, 0x82, 0xac, 0xa9, 0xbc, 0x75, 0xa9, 0x9d, 0x57, 0x55, 0xad, 0x31, 0xd4, 0x97, 0xc0,
|
0x19, 0xe6, 0x00, 0x1e, 0x26, 0xba, 0x1b, 0x83, 0xa3, 0x17, 0x49, 0x3d, 0xa3, 0x7c, 0xda, 0x29,
|
||||||
0x8a, 0xa2, 0xd1, 0x3d, 0xe2, 0x6c, 0x50, 0xf9, 0x57, 0x1a, 0xac, 0x2d, 0x7f, 0x28, 0xa4, 0x29,
|
0x5c, 0x24, 0x97, 0xbe, 0xa0, 0x0e, 0x2c, 0x31, 0xee, 0xf4, 0xa9, 0x90, 0x51, 0x71, 0x61, 0x5e,
|
||||||
0xa2, 0xde, 0x5b, 0xf0, 0x5f, 0xc1, 0x32, 0xd1, 0x3f, 0x22, 0x48, 0xa0, 0x2a, 0x12, 0xfd, 0xa0,
|
0xd3, 0x89, 0xff, 0x59, 0xf6, 0xa6, 0x81, 0xe6, 0x66, 0x8d, 0x66, 0x3b, 0xeb, 0x03, 0x3d, 0x86,
|
||||||
0x31, 0x1b, 0x70, 0x7f, 0xa6, 0xbb, 0x31, 0x38, 0x7a, 0xfc, 0xd4, 0x33, 0xca, 0xa7, 0x9d, 0xc2,
|
0x34, 0x27, 0x47, 0xf1, 0x8b, 0x29, 0x31, 0x48, 0x30, 0x39, 0x92, 0x33, 0x2e, 0x34, 0x03, 0xfd,
|
||||||
0x45, 0x72, 0xe9, 0x0b, 0xea, 0xc0, 0x12, 0xe3, 0x4e, 0x9f, 0x0a, 0x19, 0xd5, 0x31, 0xe6, 0xe1,
|
0x1c, 0xc0, 0xf5, 0x44, 0x48, 0xa4, 0xd3, 0xa7, 0xdc, 0x1c, 0x76, 0xe2, 0x12, 0x1b, 0x63, 0xd4,
|
||||||
0x3e, 0xf3, 0x97, 0xce, 0x5e, 0x12, 0x68, 0x2e, 0xf1, 0x68, 0xb6, 0xd3, 0x3e, 0xd0, 0x63, 0x48,
|
0x8c, 0x97, 0x29, 0x36, 0x7a, 0x06, 0x79, 0x87, 0xc4, 0x72, 0xcd, 0x5c, 0xfd, 0x8b, 0x61, 0xab,
|
||||||
0x73, 0x72, 0x14, 0x3f, 0xce, 0x66, 0x1e, 0x12, 0x4c, 0x8e, 0xe4, 0x94, 0x0b, 0xcd, 0x40, 0x3f,
|
0x66, 0x5c, 0x14, 0x95, 0x8b, 0x8b, 0xf3, 0xb5, 0x5c, 0x6c, 0xc1, 0x39, 0x87, 0x18, 0xf9, 0x3e,
|
||||||
0x07, 0x70, 0x3d, 0x11, 0x12, 0xe9, 0xf4, 0x29, 0x37, 0x9b, 0x3d, 0x73, 0x89, 0x8d, 0x31, 0x6a,
|
0x83, 0x25, 0x49, 0xc4, 0x71, 0xd7, 0x8d, 0xd2, 0x59, 0x24, 0x93, 0x2b, 0x2a, 0x05, 0xf5, 0x8e,
|
||||||
0xca, 0x4b, 0x82, 0x8d, 0x9e, 0x41, 0xde, 0x21, 0xb1, 0x5c, 0x33, 0xd7, 0xff, 0xcd, 0xd8, 0xaa,
|
0x35, 0x69, 0x2f, 0x3e, 0xce, 0x82, 0x9c, 0xb2, 0xa1, 0x5f, 0xc0, 0x32, 0x0d, 0x1c, 0x3e, 0xd2,
|
||||||
0x19, 0x17, 0x45, 0xe5, 0xe2, 0xe2, 0x7c, 0x2d, 0x17, 0x5b, 0x70, 0xce, 0x21, 0x46, 0xbe, 0xcf,
|
0x62, 0x8d, 0x67, 0x98, 0xbb, 0x7a, 0xb1, 0xcd, 0x31, 0x78, 0x66, 0xb1, 0x45, 0x7a, 0xc9, 0x5e,
|
||||||
0x60, 0x49, 0x12, 0x71, 0xdc, 0x75, 0xa3, 0x74, 0x16, 0xc9, 0xe4, 0x9a, 0xa2, 0x44, 0x3d, 0x99,
|
0xf9, 0x6b, 0x0a, 0x20, 0x2a, 0xbe, 0x3e, 0xac, 0x00, 0x11, 0xa4, 0x5d, 0x22, 0x89, 0xd6, 0x5c,
|
||||||
0x4d, 0xda, 0x8b, 0xb7, 0xb3, 0x20, 0x13, 0x36, 0xf4, 0x0b, 0x58, 0xa6, 0x81, 0xc3, 0x47, 0x5a,
|
0x01, 0xeb, 0x36, 0x7a, 0x02, 0x20, 0xe9, 0x20, 0x54, 0xa9, 0x37, 0xe8, 0x19, 0xd9, 0xbc, 0x2b,
|
||||||
0xac, 0xf1, 0x0c, 0x73, 0xd7, 0x2f, 0xb6, 0x39, 0x06, 0x4f, 0x2d, 0xb6, 0x48, 0x2f, 0xd9, 0x2b,
|
0x1d, 0x4c, 0xa1, 0xd1, 0x26, 0x64, 0xcc, 0xbb, 0x36, 0x7d, 0x2d, 0xcf, 0x20, 0x2b, 0x7f, 0x48,
|
||||||
0x7f, 0x4b, 0x01, 0x44, 0x75, 0xde, 0xfb, 0x15, 0x20, 0x82, 0xb4, 0x4b, 0x24, 0xd1, 0x9a, 0x2b,
|
0x01, 0x44, 0xcb, 0xfc, 0x9f, 0x5e, 0x5b, 0xdd, 0x7e, 0xf3, 0xfd, 0xea, 0xdc, 0x5f, 0xbe, 0x5f,
|
||||||
0x60, 0xdd, 0x46, 0x4f, 0x00, 0x24, 0x1d, 0x84, 0x2a, 0xf5, 0x06, 0x3d, 0x23, 0x9b, 0xb7, 0xa5,
|
0x9d, 0xfb, 0xcd, 0xc5, 0x6a, 0xea, 0xcd, 0xc5, 0x6a, 0xea, 0xcf, 0x17, 0xab, 0xa9, 0xbf, 0x5d,
|
||||||
0x83, 0x04, 0x1a, 0x6d, 0x42, 0xc6, 0x3c, 0xa1, 0xd3, 0x37, 0xf2, 0x0c, 0xb2, 0xf2, 0x87, 0x14,
|
0xac, 0xa6, 0x0e, 0x33, 0xba, 0x3e, 0xfa, 0xe1, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x32, 0x89,
|
||||||
0x40, 0xb4, 0xcc, 0xff, 0xe9, 0xb5, 0xd5, 0xed, 0x37, 0xdf, 0xaf, 0xce, 0xfd, 0xf5, 0xfb, 0xd5,
|
0x54, 0x8a, 0x4d, 0x16, 0x00, 0x00,
|
||||||
0xb9, 0xdf, 0x5c, 0xac, 0xa6, 0xde, 0x5c, 0xac, 0xa6, 0xfe, 0x7c, 0xb1, 0x9a, 0xfa, 0xfb, 0xc5,
|
|
||||||
0x6a, 0xea, 0x30, 0xa3, 0x2b, 0x8f, 0x1f, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x67, 0x32, 0x8c,
|
|
||||||
0x8f, 0xb8, 0x16, 0x00, 0x00,
|
|
||||||
}
|
}
|
||||||
|
|
8
vendor/github.com/docker/swarmkit/api/specs.proto
generated
vendored
8
vendor/github.com/docker/swarmkit/api/specs.proto
generated
vendored
|
@ -333,14 +333,6 @@ message ContainerSpec {
|
||||||
//
|
//
|
||||||
// https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime
|
// https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime
|
||||||
map<string, string> sysctls = 26;
|
map<string, string> sysctls = 26;
|
||||||
|
|
||||||
// Swap limit equal to memory plus swap: '-1' to enable unlimited swap
|
|
||||||
int64 memory_swap = 27;
|
|
||||||
|
|
||||||
// Tune container memory swappiness (0 to 100) - if not specified, defaults
|
|
||||||
// to the container OS's default - generally 60, or the value predefined in
|
|
||||||
// the image; set to -1 to unset a previously set value
|
|
||||||
google.protobuf.Int64Value memory_swappiness = 28;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// EndpointSpec defines the properties that can be configured to
|
// EndpointSpec defines the properties that can be configured to
|
||||||
|
|
973
vendor/github.com/docker/swarmkit/api/types.pb.go
generated
vendored
973
vendor/github.com/docker/swarmkit/api/types.pb.go
generated
vendored
File diff suppressed because it is too large
Load diff
12
vendor/github.com/docker/swarmkit/api/types.proto
generated
vendored
12
vendor/github.com/docker/swarmkit/api/types.proto
generated
vendored
|
@ -4,6 +4,7 @@ package docker.swarmkit.v1;
|
||||||
|
|
||||||
import "google/protobuf/timestamp.proto";
|
import "google/protobuf/timestamp.proto";
|
||||||
import "google/protobuf/duration.proto";
|
import "google/protobuf/duration.proto";
|
||||||
|
import "google/protobuf/wrappers.proto";
|
||||||
import "gogoproto/gogo.proto";
|
import "gogoproto/gogo.proto";
|
||||||
|
|
||||||
// This file contains types that are common to objects and spec or that are not
|
// This file contains types that are common to objects and spec or that are not
|
||||||
|
@ -77,6 +78,17 @@ message Resources {
|
||||||
message ResourceRequirements {
|
message ResourceRequirements {
|
||||||
Resources limits = 1;
|
Resources limits = 1;
|
||||||
Resources reservations = 2;
|
Resources reservations = 2;
|
||||||
|
|
||||||
|
// Amount of swap in bytes - can only be used together with a memory limit
|
||||||
|
// -1 means unlimited
|
||||||
|
// a null pointer indicates that the default behaviour of granting twice
|
||||||
|
// the memory is maintained
|
||||||
|
google.protobuf.Int64Value swap_bytes = 3;
|
||||||
|
|
||||||
|
// Tune container memory swappiness (0 to 100) - if not specified, defaults
|
||||||
|
// to the container OS's default - generally 60, or the value predefined in
|
||||||
|
// the image; set to -1 to unset a previously set value
|
||||||
|
google.protobuf.Int64Value memory_swappiness = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Platform {
|
message Platform {
|
||||||
|
|
16
vendor/github.com/docker/swarmkit/manager/allocator/network.go
generated
vendored
16
vendor/github.com/docker/swarmkit/manager/allocator/network.go
generated
vendored
|
@ -989,8 +989,11 @@ func (a *Allocator) allocateNode(ctx context.Context, node *api.Node, existingAd
|
||||||
|
|
||||||
nc := a.netCtx
|
nc := a.netCtx
|
||||||
|
|
||||||
|
var nwIDs = make(map[string]struct{}, len(networks))
|
||||||
|
|
||||||
// go through all of the networks we've passed in
|
// go through all of the networks we've passed in
|
||||||
for _, network := range networks {
|
for _, network := range networks {
|
||||||
|
nwIDs[network.ID] = struct{}{}
|
||||||
|
|
||||||
// for each one, create space for an attachment. then, search through
|
// for each one, create space for an attachment. then, search through
|
||||||
// all of the attachments already on the node. if the attachment
|
// all of the attachments already on the node. if the attachment
|
||||||
|
@ -1049,17 +1052,8 @@ func (a *Allocator) allocateNode(ctx context.Context, node *api.Node, existingAd
|
||||||
// https://github.com/golang/go/wiki/SliceTricks#filtering-without-allocating
|
// https://github.com/golang/go/wiki/SliceTricks#filtering-without-allocating
|
||||||
attachments := node.Attachments[:0]
|
attachments := node.Attachments[:0]
|
||||||
for _, attach := range node.Attachments {
|
for _, attach := range node.Attachments {
|
||||||
// for every attachment, go through every network. if the attachment
|
if _, ok := nwIDs[attach.Network.ID]; ok {
|
||||||
// belongs to one of the networks, then go to the next attachment. if
|
// attachment belongs to one of the networks, so keep it
|
||||||
// no network matches, then the the attachment should be removed.
|
|
||||||
attachmentBelongs := false
|
|
||||||
for _, network := range networks {
|
|
||||||
if network.ID == attach.Network.ID {
|
|
||||||
attachmentBelongs = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if attachmentBelongs {
|
|
||||||
attachments = append(attachments, attach)
|
attachments = append(attachments, attach)
|
||||||
} else {
|
} else {
|
||||||
// free the attachment and remove it from the node's attachments by
|
// free the attachment and remove it from the node's attachments by
|
||||||
|
|
133
vendor/github.com/docker/swarmkit/manager/controlapi/extension.go
generated
vendored
Normal file
133
vendor/github.com/docker/swarmkit/manager/controlapi/extension.go
generated
vendored
Normal file
|
@ -0,0 +1,133 @@
|
||||||
|
package controlapi
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/docker/swarmkit/api"
|
||||||
|
"github.com/docker/swarmkit/identity"
|
||||||
|
"github.com/docker/swarmkit/log"
|
||||||
|
"github.com/docker/swarmkit/manager/state/store"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
"google.golang.org/grpc/codes"
|
||||||
|
"google.golang.org/grpc/status"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CreateExtension creates an `Extension` based on the provided `CreateExtensionRequest.Extension`
|
||||||
|
// and returns a `CreateExtensionResponse`.
|
||||||
|
// - Returns `InvalidArgument` if the `CreateExtensionRequest.Extension` is malformed,
|
||||||
|
// or fails validation.
|
||||||
|
// - Returns an error if the creation fails.
|
||||||
|
func (s *Server) CreateExtension(ctx context.Context, request *api.CreateExtensionRequest) (*api.CreateExtensionResponse, error) {
|
||||||
|
if request.Annotations == nil || request.Annotations.Name == "" {
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "extension name must be provided")
|
||||||
|
}
|
||||||
|
|
||||||
|
extension := &api.Extension{
|
||||||
|
ID: identity.NewID(),
|
||||||
|
Annotations: *request.Annotations,
|
||||||
|
Description: request.Description,
|
||||||
|
}
|
||||||
|
|
||||||
|
err := s.store.Update(func(tx store.Tx) error {
|
||||||
|
return store.CreateExtension(tx, extension)
|
||||||
|
})
|
||||||
|
|
||||||
|
switch err {
|
||||||
|
case store.ErrNameConflict:
|
||||||
|
return nil, status.Errorf(codes.AlreadyExists, "extension %s already exists", request.Annotations.Name)
|
||||||
|
case nil:
|
||||||
|
log.G(ctx).WithFields(logrus.Fields{
|
||||||
|
"extension.Name": request.Annotations.Name,
|
||||||
|
"method": "CreateExtension",
|
||||||
|
}).Debugf("extension created")
|
||||||
|
|
||||||
|
return &api.CreateExtensionResponse{Extension: extension}, nil
|
||||||
|
default:
|
||||||
|
return nil, status.Errorf(codes.Internal, "could not create extension: %v", err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetExtension returns a `GetExtensionResponse` with a `Extension` with the same
|
||||||
|
// id as `GetExtensionRequest.extension_id`
|
||||||
|
// - Returns `NotFound` if the Extension with the given id is not found.
|
||||||
|
// - Returns `InvalidArgument` if the `GetExtensionRequest.extension_id` is empty.
|
||||||
|
// - Returns an error if the get fails.
|
||||||
|
func (s *Server) GetExtension(ctx context.Context, request *api.GetExtensionRequest) (*api.GetExtensionResponse, error) {
|
||||||
|
if request.ExtensionID == "" {
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "extension ID must be provided")
|
||||||
|
}
|
||||||
|
|
||||||
|
var extension *api.Extension
|
||||||
|
s.store.View(func(tx store.ReadTx) {
|
||||||
|
extension = store.GetExtension(tx, request.ExtensionID)
|
||||||
|
})
|
||||||
|
|
||||||
|
if extension == nil {
|
||||||
|
return nil, status.Errorf(codes.NotFound, "extension %s not found", request.ExtensionID)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &api.GetExtensionResponse{Extension: extension}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveExtension removes the extension referenced by `RemoveExtensionRequest.ID`.
|
||||||
|
// - Returns `InvalidArgument` if `RemoveExtensionRequest.extension_id` is empty.
|
||||||
|
// - Returns `NotFound` if the an extension named `RemoveExtensionRequest.extension_id` is not found.
|
||||||
|
// - Returns an error if the deletion fails.
|
||||||
|
func (s *Server) RemoveExtension(ctx context.Context, request *api.RemoveExtensionRequest) (*api.RemoveExtensionResponse, error) {
|
||||||
|
if request.ExtensionID == "" {
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "extension ID must be provided")
|
||||||
|
}
|
||||||
|
|
||||||
|
err := s.store.Update(func(tx store.Tx) error {
|
||||||
|
// Check if the extension exists
|
||||||
|
extension := store.GetExtension(tx, request.ExtensionID)
|
||||||
|
if extension == nil {
|
||||||
|
return status.Errorf(codes.NotFound, "could not find extension %s", request.ExtensionID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if any resources of this type present in the store, return error if so
|
||||||
|
resources, err := store.FindResources(tx, store.ByKind(request.ExtensionID))
|
||||||
|
if err != nil {
|
||||||
|
return status.Errorf(codes.Internal, "could not find resources using extension %s: %v", request.ExtensionID, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(resources) != 0 {
|
||||||
|
resourceNames := make([]string, 0, len(resources))
|
||||||
|
// Number of resources for an extension could be quite large.
|
||||||
|
// Show a limited number of resources for debugging.
|
||||||
|
attachedResourceForDebug := 10
|
||||||
|
for _, resource := range resources {
|
||||||
|
resourceNames = append(resourceNames, resource.Annotations.Name)
|
||||||
|
attachedResourceForDebug = attachedResourceForDebug - 1
|
||||||
|
if attachedResourceForDebug == 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extensionName := extension.Annotations.Name
|
||||||
|
resourceNameStr := strings.Join(resourceNames, ", ")
|
||||||
|
resourceStr := "resources"
|
||||||
|
if len(resourceNames) == 1 {
|
||||||
|
resourceStr = "resource"
|
||||||
|
}
|
||||||
|
|
||||||
|
return status.Errorf(codes.InvalidArgument, "extension '%s' is in use by the following %s: %v", extensionName, resourceStr, resourceNameStr)
|
||||||
|
}
|
||||||
|
|
||||||
|
return store.DeleteExtension(tx, request.ExtensionID)
|
||||||
|
})
|
||||||
|
switch err {
|
||||||
|
case store.ErrNotExist:
|
||||||
|
return nil, status.Errorf(codes.NotFound, "extension %s not found", request.ExtensionID)
|
||||||
|
case nil:
|
||||||
|
log.G(ctx).WithFields(logrus.Fields{
|
||||||
|
"extension.ID": request.ExtensionID,
|
||||||
|
"method": "RemoveExtension",
|
||||||
|
}).Debugf("extension removed")
|
||||||
|
|
||||||
|
return &api.RemoveExtensionResponse{}, nil
|
||||||
|
default:
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
226
vendor/github.com/docker/swarmkit/manager/controlapi/resource.go
generated
vendored
Normal file
226
vendor/github.com/docker/swarmkit/manager/controlapi/resource.go
generated
vendored
Normal file
|
@ -0,0 +1,226 @@
|
||||||
|
package controlapi
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
"google.golang.org/grpc/codes"
|
||||||
|
"google.golang.org/grpc/status"
|
||||||
|
|
||||||
|
"github.com/docker/swarmkit/api"
|
||||||
|
"github.com/docker/swarmkit/identity"
|
||||||
|
"github.com/docker/swarmkit/log"
|
||||||
|
"github.com/docker/swarmkit/manager/state/store"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CreateResource returns a `CreateResourceResponse` after creating a `Resource` based
|
||||||
|
// on the provided `CreateResourceRequest.Resource`.
|
||||||
|
// - Returns `InvalidArgument` if the `CreateResourceRequest.Resource` is malformed,
|
||||||
|
// or if the config data is too long or contains invalid characters.
|
||||||
|
// - Returns an error if the creation fails.
|
||||||
|
func (s *Server) CreateResource(ctx context.Context, request *api.CreateResourceRequest) (*api.CreateResourceResponse, error) {
|
||||||
|
if request.Annotations == nil || request.Annotations.Name == "" {
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "Resource must have a name")
|
||||||
|
}
|
||||||
|
|
||||||
|
// finally, validate that Kind is not an emptystring. We know that creating
|
||||||
|
// with Kind as empty string should fail at the store level, but to make
|
||||||
|
// errors clearer, special case this.
|
||||||
|
if request.Kind == "" {
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "Resource must belong to an Extension")
|
||||||
|
}
|
||||||
|
r := &api.Resource{
|
||||||
|
ID: identity.NewID(),
|
||||||
|
Annotations: *request.Annotations,
|
||||||
|
Kind: request.Kind,
|
||||||
|
Payload: request.Payload,
|
||||||
|
}
|
||||||
|
|
||||||
|
err := s.store.Update(func(tx store.Tx) error {
|
||||||
|
return store.CreateResource(tx, r)
|
||||||
|
})
|
||||||
|
|
||||||
|
switch err {
|
||||||
|
case store.ErrNoKind:
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "Kind %v is not registered", r.Kind)
|
||||||
|
case store.ErrNameConflict:
|
||||||
|
return nil, status.Errorf(
|
||||||
|
codes.AlreadyExists,
|
||||||
|
"A resource with name %v already exists",
|
||||||
|
r.Annotations.Name,
|
||||||
|
)
|
||||||
|
case nil:
|
||||||
|
log.G(ctx).WithFields(logrus.Fields{
|
||||||
|
"resource.Name": r.Annotations.Name,
|
||||||
|
"method": "CreateResource",
|
||||||
|
}).Debugf("resource created")
|
||||||
|
return &api.CreateResourceResponse{Resource: r}, nil
|
||||||
|
default:
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetResource returns a `GetResourceResponse` with a `Resource` with the same
|
||||||
|
// id as `GetResourceRequest.Resource`
|
||||||
|
// - Returns `NotFound` if the Resource with the given id is not found.
|
||||||
|
// - Returns `InvalidArgument` if the `GetResourceRequest.Resource` is empty.
|
||||||
|
// - Returns an error if getting fails.
|
||||||
|
func (s *Server) GetResource(ctx context.Context, request *api.GetResourceRequest) (*api.GetResourceResponse, error) {
|
||||||
|
if request.ResourceID == "" {
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "resource ID must be present")
|
||||||
|
}
|
||||||
|
var resource *api.Resource
|
||||||
|
s.store.View(func(tx store.ReadTx) {
|
||||||
|
resource = store.GetResource(tx, request.ResourceID)
|
||||||
|
})
|
||||||
|
|
||||||
|
if resource == nil {
|
||||||
|
return nil, status.Errorf(codes.NotFound, "resource %s not found", request.ResourceID)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &api.GetResourceResponse{Resource: resource}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveResource removes the `Resource` referenced by `RemoveResourceRequest.ResourceID`.
|
||||||
|
// - Returns `InvalidArgument` if `RemoveResourceRequest.ResourceID` is empty.
|
||||||
|
// - Returns `NotFound` if the a resource named `RemoveResourceRequest.ResourceID` is not found.
|
||||||
|
// - Returns an error if the deletion fails.
|
||||||
|
func (s *Server) RemoveResource(ctx context.Context, request *api.RemoveResourceRequest) (*api.RemoveResourceResponse, error) {
|
||||||
|
if request.ResourceID == "" {
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "resource ID must be present")
|
||||||
|
}
|
||||||
|
err := s.store.Update(func(tx store.Tx) error {
|
||||||
|
return store.DeleteResource(tx, request.ResourceID)
|
||||||
|
})
|
||||||
|
switch err {
|
||||||
|
case store.ErrNotExist:
|
||||||
|
return nil, status.Errorf(codes.NotFound, "resource %s not found", request.ResourceID)
|
||||||
|
case nil:
|
||||||
|
return &api.RemoveResourceResponse{}, nil
|
||||||
|
default:
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListResources returns a `ListResourcesResponse` with a list of `Resource`s stored in the raft store,
|
||||||
|
// or all resources matching any name in `ListConfigsRequest.Names`, any
|
||||||
|
// name prefix in `ListResourcesRequest.NamePrefixes`, any id in
|
||||||
|
// `ListResourcesRequest.ResourceIDs`, or any id prefix in `ListResourcesRequest.IDPrefixes`.
|
||||||
|
// - Returns an error if listing fails.
|
||||||
|
func (s *Server) ListResources(ctx context.Context, request *api.ListResourcesRequest) (*api.ListResourcesResponse, error) {
|
||||||
|
var (
|
||||||
|
resources []*api.Resource
|
||||||
|
respResources []*api.Resource
|
||||||
|
err error
|
||||||
|
byFilters []store.By
|
||||||
|
by store.By
|
||||||
|
labels map[string]string
|
||||||
|
)
|
||||||
|
|
||||||
|
// andKind is set to true if the Extension filter is not the only filter
|
||||||
|
// being used. If this is the case, we do not have to compare by strings,
|
||||||
|
// which could be slow.
|
||||||
|
var andKind bool
|
||||||
|
|
||||||
|
if request.Filters != nil {
|
||||||
|
for _, name := range request.Filters.Names {
|
||||||
|
byFilters = append(byFilters, store.ByName(name))
|
||||||
|
}
|
||||||
|
for _, prefix := range request.Filters.NamePrefixes {
|
||||||
|
byFilters = append(byFilters, store.ByNamePrefix(prefix))
|
||||||
|
}
|
||||||
|
for _, prefix := range request.Filters.IDPrefixes {
|
||||||
|
byFilters = append(byFilters, store.ByIDPrefix(prefix))
|
||||||
|
}
|
||||||
|
labels = request.Filters.Labels
|
||||||
|
if request.Filters.Kind != "" {
|
||||||
|
// if we're filtering on Extensions, then set this to true. If Kind is
|
||||||
|
// the _only_ kind of filter, we'll set this to false below.
|
||||||
|
andKind = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch len(byFilters) {
|
||||||
|
case 0:
|
||||||
|
// NOTE(dperny): currently, filtering using store.ByKind would apply an
|
||||||
|
// Or operation, which means that filtering by kind would return a
|
||||||
|
// union. However, for Kind filters, we actually want the
|
||||||
|
// _intersection_; that is, _only_ objects of the specified kind. we
|
||||||
|
// could dig into the db code to figure out how to write and use an
|
||||||
|
// efficient And combinator, but I don't have the time nor expertise to
|
||||||
|
// do so at the moment. instead, we'll filter by kind after the fact.
|
||||||
|
// however, if there are no other kinds of filters, and we're ONLY
|
||||||
|
// listing by Kind, we can set that to be the only filter.
|
||||||
|
if andKind {
|
||||||
|
by = store.ByKind(request.Filters.Kind)
|
||||||
|
andKind = false
|
||||||
|
} else {
|
||||||
|
by = store.All
|
||||||
|
}
|
||||||
|
case 1:
|
||||||
|
by = byFilters[0]
|
||||||
|
default:
|
||||||
|
by = store.Or(byFilters...)
|
||||||
|
}
|
||||||
|
|
||||||
|
s.store.View(func(tx store.ReadTx) {
|
||||||
|
resources, err = store.FindResources(tx, by)
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// filter by label and extension
|
||||||
|
for _, resource := range resources {
|
||||||
|
if !filterMatchLabels(resource.Annotations.Labels, labels) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if andKind && resource.Kind != request.Filters.Kind {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
respResources = append(respResources, resource)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &api.ListResourcesResponse{Resources: respResources}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateResource updates the resource with the given `UpdateResourceRequest.Resource.Id` using the given `UpdateResourceRequest.Resource` and returns a `UpdateResourceResponse`.
|
||||||
|
// - Returns `NotFound` if the Resource with the given `UpdateResourceRequest.Resource.Id` is not found.
|
||||||
|
// - Returns `InvalidArgument` if the UpdateResourceRequest.Resource.Id` is empty.
|
||||||
|
// - Returns an error if updating fails.
|
||||||
|
func (s *Server) UpdateResource(ctx context.Context, request *api.UpdateResourceRequest) (*api.UpdateResourceResponse, error) {
|
||||||
|
if request.ResourceID == "" || request.ResourceVersion == nil {
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "must include ID and version")
|
||||||
|
}
|
||||||
|
var r *api.Resource
|
||||||
|
err := s.store.Update(func(tx store.Tx) error {
|
||||||
|
r = store.GetResource(tx, request.ResourceID)
|
||||||
|
if r == nil {
|
||||||
|
return status.Errorf(codes.NotFound, "resource %v not found", request.ResourceID)
|
||||||
|
}
|
||||||
|
|
||||||
|
if request.Annotations != nil {
|
||||||
|
if r.Annotations.Name != request.Annotations.Name {
|
||||||
|
return status.Errorf(codes.InvalidArgument, "cannot change resource name")
|
||||||
|
}
|
||||||
|
r.Annotations = *request.Annotations
|
||||||
|
}
|
||||||
|
r.Meta.Version = *request.ResourceVersion
|
||||||
|
// only alter the payload if the
|
||||||
|
if request.Payload != nil {
|
||||||
|
r.Payload = request.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
return store.UpdateResource(tx, r)
|
||||||
|
})
|
||||||
|
switch err {
|
||||||
|
case store.ErrSequenceConflict:
|
||||||
|
return nil, status.Errorf(codes.InvalidArgument, "update out of sequence")
|
||||||
|
case nil:
|
||||||
|
return &api.UpdateResourceResponse{
|
||||||
|
Resource: r,
|
||||||
|
}, nil
|
||||||
|
default:
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
5
vendor/github.com/docker/swarmkit/manager/state/raft/util.go
generated
vendored
5
vendor/github.com/docker/swarmkit/manager/state/raft/util.go
generated
vendored
|
@ -2,6 +2,7 @@ package raft
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/docker/swarmkit/api"
|
"github.com/docker/swarmkit/api"
|
||||||
|
@ -14,11 +15,15 @@ import (
|
||||||
|
|
||||||
// dial returns a grpc client connection
|
// dial returns a grpc client connection
|
||||||
func dial(addr string, protocol string, creds credentials.TransportCredentials, timeout time.Duration) (*grpc.ClientConn, error) {
|
func dial(addr string, protocol string, creds credentials.TransportCredentials, timeout time.Duration) (*grpc.ClientConn, error) {
|
||||||
|
// gRPC dialer connects to proxy first. Provide a custom dialer here avoid that.
|
||||||
grpcOptions := []grpc.DialOption{
|
grpcOptions := []grpc.DialOption{
|
||||||
grpc.WithBackoffMaxDelay(2 * time.Second),
|
grpc.WithBackoffMaxDelay(2 * time.Second),
|
||||||
grpc.WithTransportCredentials(creds),
|
grpc.WithTransportCredentials(creds),
|
||||||
grpc.WithUnaryInterceptor(grpc_prometheus.UnaryClientInterceptor),
|
grpc.WithUnaryInterceptor(grpc_prometheus.UnaryClientInterceptor),
|
||||||
grpc.WithStreamInterceptor(grpc_prometheus.StreamClientInterceptor),
|
grpc.WithStreamInterceptor(grpc_prometheus.StreamClientInterceptor),
|
||||||
|
grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {
|
||||||
|
return net.DialTimeout("tcp", addr, timeout)
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
if timeout != 0 {
|
if timeout != 0 {
|
||||||
|
|
21
vendor/github.com/docker/swarmkit/manager/state/store/resources.go
generated
vendored
21
vendor/github.com/docker/swarmkit/manager/state/store/resources.go
generated
vendored
|
@ -1,6 +1,8 @@
|
||||||
package store
|
package store
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/docker/swarmkit/api"
|
"github.com/docker/swarmkit/api"
|
||||||
memdb "github.com/hashicorp/go-memdb"
|
memdb "github.com/hashicorp/go-memdb"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
@ -8,6 +10,12 @@ import (
|
||||||
|
|
||||||
const tableResource = "resource"
|
const tableResource = "resource"
|
||||||
|
|
||||||
|
var (
|
||||||
|
// ErrNoKind is returned by resource create operations if the provided Kind
|
||||||
|
// of the resource does not exist
|
||||||
|
ErrNoKind = errors.New("object kind is unregistered")
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
register(ObjectStoreConfig{
|
register(ObjectStoreConfig{
|
||||||
Table: &memdb.TableSchema{
|
Table: &memdb.TableSchema{
|
||||||
|
@ -87,17 +95,26 @@ func confirmExtension(tx Tx, r *api.Resource) error {
|
||||||
return errors.Wrap(err, "failed to query extensions")
|
return errors.Wrap(err, "failed to query extensions")
|
||||||
}
|
}
|
||||||
if len(extensions) == 0 {
|
if len(extensions) == 0 {
|
||||||
return errors.Errorf("object kind %s is unregistered", r.Kind)
|
return ErrNoKind
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateResource adds a new resource object to the store.
|
// CreateResource adds a new resource object to the store.
|
||||||
// Returns ErrExist if the ID is already taken.
|
// Returns ErrExist if the ID is already taken.
|
||||||
|
// Returns ErrNameConflict if a Resource with this Name already exists
|
||||||
|
// Returns ErrNoKind if the specified Kind does not exist
|
||||||
func CreateResource(tx Tx, r *api.Resource) error {
|
func CreateResource(tx Tx, r *api.Resource) error {
|
||||||
if err := confirmExtension(tx, r); err != nil {
|
if err := confirmExtension(tx, r); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// TODO(dperny): currently the "name" index is unique, which means only one
|
||||||
|
// Resource of _any_ Kind can exist with that name. This isn't a problem
|
||||||
|
// right now, but the ideal case would be for names to be namespaced to the
|
||||||
|
// kind.
|
||||||
|
if tx.lookup(tableResource, indexName, strings.ToLower(r.Annotations.Name)) != nil {
|
||||||
|
return ErrNameConflict
|
||||||
|
}
|
||||||
return tx.create(tableResource, resourceEntry{r})
|
return tx.create(tableResource, resourceEntry{r})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,7 +147,7 @@ func GetResource(tx ReadTx, id string) *api.Resource {
|
||||||
func FindResources(tx ReadTx, by By) ([]*api.Resource, error) {
|
func FindResources(tx ReadTx, by By) ([]*api.Resource, error) {
|
||||||
checkType := func(by By) error {
|
checkType := func(by By) error {
|
||||||
switch by.(type) {
|
switch by.(type) {
|
||||||
case byIDPrefix, byName, byKind, byCustom, byCustomPrefix:
|
case byIDPrefix, byName, byNamePrefix, byKind, byCustom, byCustomPrefix:
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
return ErrInvalidFindBy
|
return ErrInvalidFindBy
|
||||||
|
|
Loading…
Reference in a new issue