mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 13:50:01 +00:00 
			
		
		
		
	Bump cAdvisor to v0.43.0
Bumping cAdvisor from v0.39.2 -> v0.43.0 * Also pin transitive dependencies * containerd v1.4.9 -> v1.4.11 * docker v20.10.2+incompatible> v20.10.7+incompatible Signed-off-by: David Porter <david@porter.me>
This commit is contained in:
		
							
								
								
									
										112
									
								
								vendor/github.com/containerd/containerd/containers/containers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										112
									
								
								vendor/github.com/containerd/containerd/containers/containers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,112 +0,0 @@ | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
| */ | ||||
|  | ||||
| package containers | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/gogo/protobuf/types" | ||||
| ) | ||||
|  | ||||
| // Container represents the set of data pinned by a container. Unless otherwise | ||||
| // noted, the resources here are considered in use by the container. | ||||
| // | ||||
| // The resources specified in this object are used to create tasks from the container. | ||||
| type Container struct { | ||||
| 	// ID uniquely identifies the container in a namespace. | ||||
| 	// | ||||
| 	// This property is required and cannot be changed after creation. | ||||
| 	ID string | ||||
|  | ||||
| 	// Labels provide metadata extension for a container. | ||||
| 	// | ||||
| 	// These are optional and fully mutable. | ||||
| 	Labels map[string]string | ||||
|  | ||||
| 	// Image specifies the image reference used for a container. | ||||
| 	// | ||||
| 	// This property is optional and mutable. | ||||
| 	Image string | ||||
|  | ||||
| 	// Runtime specifies which runtime should be used when launching container | ||||
| 	// tasks. | ||||
| 	// | ||||
| 	// This property is required and immutable. | ||||
| 	Runtime RuntimeInfo | ||||
|  | ||||
| 	// Spec should carry the runtime specification used to implement the | ||||
| 	// container. | ||||
| 	// | ||||
| 	// This field is required but mutable. | ||||
| 	Spec *types.Any | ||||
|  | ||||
| 	// SnapshotKey specifies the snapshot key to use for the container's root | ||||
| 	// filesystem. When starting a task from this container, a caller should | ||||
| 	// look up the mounts from the snapshot service and include those on the | ||||
| 	// task create request. | ||||
| 	// | ||||
| 	// This field is not required but mutable. | ||||
| 	SnapshotKey string | ||||
|  | ||||
| 	// Snapshotter specifies the snapshotter name used for rootfs | ||||
| 	// | ||||
| 	// This field is not required but immutable. | ||||
| 	Snapshotter string | ||||
|  | ||||
| 	// CreatedAt is the time at which the container was created. | ||||
| 	CreatedAt time.Time | ||||
|  | ||||
| 	// UpdatedAt is the time at which the container was updated. | ||||
| 	UpdatedAt time.Time | ||||
|  | ||||
| 	// Extensions stores client-specified metadata | ||||
| 	Extensions map[string]types.Any | ||||
| } | ||||
|  | ||||
| // RuntimeInfo holds runtime specific information | ||||
| type RuntimeInfo struct { | ||||
| 	Name    string | ||||
| 	Options *types.Any | ||||
| } | ||||
|  | ||||
| // Store interacts with the underlying container storage | ||||
| type Store interface { | ||||
| 	// Get a container using the id. | ||||
| 	// | ||||
| 	// Container object is returned on success. If the id is not known to the | ||||
| 	// store, an error will be returned. | ||||
| 	Get(ctx context.Context, id string) (Container, error) | ||||
|  | ||||
| 	// List returns containers that match one or more of the provided filters. | ||||
| 	List(ctx context.Context, filters ...string) ([]Container, error) | ||||
|  | ||||
| 	// Create a container in the store from the provided container. | ||||
| 	Create(ctx context.Context, container Container) (Container, error) | ||||
|  | ||||
| 	// Update the container with the provided container object. ID must be set. | ||||
| 	// | ||||
| 	// If one or more fieldpaths are provided, only the field corresponding to | ||||
| 	// the fieldpaths will be mutated. | ||||
| 	Update(ctx context.Context, container Container, fieldpaths ...string) (Container, error) | ||||
|  | ||||
| 	// Delete a container using the id. | ||||
| 	// | ||||
| 	// nil will be returned on success. If the container is not known to the | ||||
| 	// store, ErrNotFound will be returned. | ||||
| 	Delete(ctx context.Context, id string) error | ||||
| } | ||||
							
								
								
									
										73
									
								
								vendor/github.com/containerd/containerd/identifiers/validate.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										73
									
								
								vendor/github.com/containerd/containerd/identifiers/validate.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,73 +0,0 @@ | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
| */ | ||||
|  | ||||
| // Package identifiers provides common validation for identifiers and keys | ||||
| // across containerd. | ||||
| // | ||||
| // Identifiers in containerd must be a alphanumeric, allowing limited | ||||
| // underscores, dashes and dots. | ||||
| // | ||||
| // While the character set may be expanded in the future, identifiers | ||||
| // are guaranteed to be safely used as filesystem path components. | ||||
| package identifiers | ||||
|  | ||||
| import ( | ||||
| 	"regexp" | ||||
|  | ||||
| 	"github.com/containerd/containerd/errdefs" | ||||
| 	"github.com/pkg/errors" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	maxLength  = 76 | ||||
| 	alphanum   = `[A-Za-z0-9]+` | ||||
| 	separators = `[._-]` | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	// identifierRe defines the pattern for valid identifiers. | ||||
| 	identifierRe = regexp.MustCompile(reAnchor(alphanum + reGroup(separators+reGroup(alphanum)) + "*")) | ||||
| ) | ||||
|  | ||||
| // Validate returns nil if the string s is a valid identifier. | ||||
| // | ||||
| // identifiers are similar to the domain name rules according to RFC 1035, section 2.3.1. However | ||||
| // rules in this package are relaxed to allow numerals to follow period (".") and mixed case is | ||||
| // allowed. | ||||
| // | ||||
| // In general identifiers that pass this validation should be safe for use as filesystem path components. | ||||
| func Validate(s string) error { | ||||
| 	if len(s) == 0 { | ||||
| 		return errors.Wrapf(errdefs.ErrInvalidArgument, "identifier must not be empty") | ||||
| 	} | ||||
|  | ||||
| 	if len(s) > maxLength { | ||||
| 		return errors.Wrapf(errdefs.ErrInvalidArgument, "identifier %q greater than maximum length (%d characters)", s, maxLength) | ||||
| 	} | ||||
|  | ||||
| 	if !identifierRe.MatchString(s) { | ||||
| 		return errors.Wrapf(errdefs.ErrInvalidArgument, "identifier %q must match %v", s, identifierRe) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func reGroup(s string) string { | ||||
| 	return `(?:` + s + `)` | ||||
| } | ||||
|  | ||||
| func reAnchor(s string) string { | ||||
| 	return `^` + s + `$` | ||||
| } | ||||
							
								
								
									
										78
									
								
								vendor/github.com/containerd/containerd/namespaces/context.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										78
									
								
								vendor/github.com/containerd/containerd/namespaces/context.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,78 +0,0 @@ | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
| */ | ||||
|  | ||||
| package namespaces | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"os" | ||||
|  | ||||
| 	"github.com/containerd/containerd/errdefs" | ||||
| 	"github.com/containerd/containerd/identifiers" | ||||
| 	"github.com/pkg/errors" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	// NamespaceEnvVar is the environment variable key name | ||||
| 	NamespaceEnvVar = "CONTAINERD_NAMESPACE" | ||||
| 	// Default is the name of the default namespace | ||||
| 	Default = "default" | ||||
| ) | ||||
|  | ||||
| type namespaceKey struct{} | ||||
|  | ||||
| // WithNamespace sets a given namespace on the context | ||||
| func WithNamespace(ctx context.Context, namespace string) context.Context { | ||||
| 	ctx = context.WithValue(ctx, namespaceKey{}, namespace) // set our key for namespace | ||||
| 	// also store on the grpc and ttrpc headers so it gets picked up by any clients that | ||||
| 	// are using this. | ||||
| 	return withTTRPCNamespaceHeader(withGRPCNamespaceHeader(ctx, namespace), namespace) | ||||
| } | ||||
|  | ||||
| // NamespaceFromEnv uses the namespace defined in CONTAINERD_NAMESPACE or | ||||
| // default | ||||
| func NamespaceFromEnv(ctx context.Context) context.Context { | ||||
| 	namespace := os.Getenv(NamespaceEnvVar) | ||||
| 	if namespace == "" { | ||||
| 		namespace = Default | ||||
| 	} | ||||
| 	return WithNamespace(ctx, namespace) | ||||
| } | ||||
|  | ||||
| // Namespace returns the namespace from the context. | ||||
| // | ||||
| // The namespace is not guaranteed to be valid. | ||||
| func Namespace(ctx context.Context) (string, bool) { | ||||
| 	namespace, ok := ctx.Value(namespaceKey{}).(string) | ||||
| 	if !ok { | ||||
| 		if namespace, ok = fromGRPCHeader(ctx); !ok { | ||||
| 			return fromTTRPCHeader(ctx) | ||||
| 		} | ||||
| 	} | ||||
| 	return namespace, ok | ||||
| } | ||||
|  | ||||
| // NamespaceRequired returns the valid namespace from the context or an error. | ||||
| func NamespaceRequired(ctx context.Context) (string, error) { | ||||
| 	namespace, ok := Namespace(ctx) | ||||
| 	if !ok || namespace == "" { | ||||
| 		return "", errors.Wrapf(errdefs.ErrFailedPrecondition, "namespace is required") | ||||
| 	} | ||||
| 	if err := identifiers.Validate(namespace); err != nil { | ||||
| 		return "", errors.Wrap(err, "namespace validation") | ||||
| 	} | ||||
| 	return namespace, nil | ||||
| } | ||||
							
								
								
									
										61
									
								
								vendor/github.com/containerd/containerd/namespaces/grpc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										61
									
								
								vendor/github.com/containerd/containerd/namespaces/grpc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,61 +0,0 @@ | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
| */ | ||||
|  | ||||
| package namespaces | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
|  | ||||
| 	"google.golang.org/grpc/metadata" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	// GRPCHeader defines the header name for specifying a containerd namespace. | ||||
| 	GRPCHeader = "containerd-namespace" | ||||
| ) | ||||
|  | ||||
| // NOTE(stevvooe): We can stub this file out if we don't want a grpc dependency here. | ||||
|  | ||||
| func withGRPCNamespaceHeader(ctx context.Context, namespace string) context.Context { | ||||
| 	// also store on the grpc headers so it gets picked up by any clients that | ||||
| 	// are using this. | ||||
| 	nsheader := metadata.Pairs(GRPCHeader, namespace) | ||||
| 	md, ok := metadata.FromOutgoingContext(ctx) // merge with outgoing context. | ||||
| 	if !ok { | ||||
| 		md = nsheader | ||||
| 	} else { | ||||
| 		// order ensures the latest is first in this list. | ||||
| 		md = metadata.Join(nsheader, md) | ||||
| 	} | ||||
|  | ||||
| 	return metadata.NewOutgoingContext(ctx, md) | ||||
| } | ||||
|  | ||||
| func fromGRPCHeader(ctx context.Context) (string, bool) { | ||||
| 	// try to extract for use in grpc servers. | ||||
| 	md, ok := metadata.FromIncomingContext(ctx) | ||||
| 	if !ok { | ||||
| 		// TODO(stevvooe): Check outgoing context? | ||||
| 		return "", false | ||||
| 	} | ||||
|  | ||||
| 	values := md[GRPCHeader] | ||||
| 	if len(values) == 0 { | ||||
| 		return "", false | ||||
| 	} | ||||
|  | ||||
| 	return values[0], true | ||||
| } | ||||
							
								
								
									
										46
									
								
								vendor/github.com/containerd/containerd/namespaces/store.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								vendor/github.com/containerd/containerd/namespaces/store.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,46 +0,0 @@ | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
| */ | ||||
|  | ||||
| package namespaces | ||||
|  | ||||
| import "context" | ||||
|  | ||||
| // Store provides introspection about namespaces. | ||||
| // | ||||
| // Note that these are slightly different than other objects, which are record | ||||
| // oriented. A namespace is really just a name and a set of labels. Objects | ||||
| // that belong to a namespace are returned when the namespace is assigned to a | ||||
| // given context. | ||||
| // | ||||
| // | ||||
| type Store interface { | ||||
| 	Create(ctx context.Context, namespace string, labels map[string]string) error | ||||
| 	Labels(ctx context.Context, namespace string) (map[string]string, error) | ||||
| 	SetLabel(ctx context.Context, namespace, key, value string) error | ||||
| 	List(ctx context.Context) ([]string, error) | ||||
|  | ||||
| 	// Delete removes the namespace. The namespace must be empty to be deleted. | ||||
| 	Delete(ctx context.Context, namespace string, opts ...DeleteOpts) error | ||||
| } | ||||
|  | ||||
| // DeleteInfo specifies information for the deletion of a namespace | ||||
| type DeleteInfo struct { | ||||
| 	// Name of the namespace | ||||
| 	Name string | ||||
| } | ||||
|  | ||||
| // DeleteOpts allows the caller to set options for namespace deletion | ||||
| type DeleteOpts func(context.Context, *DeleteInfo) error | ||||
							
								
								
									
										51
									
								
								vendor/github.com/containerd/containerd/namespaces/ttrpc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										51
									
								
								vendor/github.com/containerd/containerd/namespaces/ttrpc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,51 +0,0 @@ | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
| */ | ||||
|  | ||||
| package namespaces | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
|  | ||||
| 	"github.com/containerd/ttrpc" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	// TTRPCHeader defines the header name for specifying a containerd namespace | ||||
| 	TTRPCHeader = "containerd-namespace-ttrpc" | ||||
| ) | ||||
|  | ||||
| func copyMetadata(src ttrpc.MD) ttrpc.MD { | ||||
| 	md := ttrpc.MD{} | ||||
| 	for k, v := range src { | ||||
| 		md[k] = append(md[k], v...) | ||||
| 	} | ||||
| 	return md | ||||
| } | ||||
|  | ||||
| func withTTRPCNamespaceHeader(ctx context.Context, namespace string) context.Context { | ||||
| 	md, ok := ttrpc.GetMetadata(ctx) | ||||
| 	if !ok { | ||||
| 		md = ttrpc.MD{} | ||||
| 	} else { | ||||
| 		md = copyMetadata(md) | ||||
| 	} | ||||
| 	md.Set(TTRPCHeader, namespace) | ||||
| 	return ttrpc.WithMetadata(ctx, md) | ||||
| } | ||||
|  | ||||
| func fromTTRPCHeader(ctx context.Context) (string, bool) { | ||||
| 	return ttrpc.GetMetadataValue(ctx, TTRPCHeader) | ||||
| } | ||||
							
								
								
									
										79
									
								
								vendor/github.com/containerd/containerd/pkg/dialer/dialer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										79
									
								
								vendor/github.com/containerd/containerd/pkg/dialer/dialer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,79 +0,0 @@ | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
| */ | ||||
|  | ||||
| package dialer | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"net" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/pkg/errors" | ||||
| ) | ||||
|  | ||||
| type dialResult struct { | ||||
| 	c   net.Conn | ||||
| 	err error | ||||
| } | ||||
|  | ||||
| // ContextDialer returns a GRPC net.Conn connected to the provided address | ||||
| func ContextDialer(ctx context.Context, address string) (net.Conn, error) { | ||||
| 	if deadline, ok := ctx.Deadline(); ok { | ||||
| 		return timeoutDialer(address, time.Until(deadline)) | ||||
| 	} | ||||
| 	return timeoutDialer(address, 0) | ||||
| } | ||||
|  | ||||
| // Dialer returns a GRPC net.Conn connected to the provided address | ||||
| // Deprecated: use ContextDialer and grpc.WithContextDialer. | ||||
| var Dialer = timeoutDialer | ||||
|  | ||||
| func timeoutDialer(address string, timeout time.Duration) (net.Conn, error) { | ||||
| 	var ( | ||||
| 		stopC = make(chan struct{}) | ||||
| 		synC  = make(chan *dialResult) | ||||
| 	) | ||||
| 	go func() { | ||||
| 		defer close(synC) | ||||
| 		for { | ||||
| 			select { | ||||
| 			case <-stopC: | ||||
| 				return | ||||
| 			default: | ||||
| 				c, err := dialer(address, timeout) | ||||
| 				if isNoent(err) { | ||||
| 					<-time.After(10 * time.Millisecond) | ||||
| 					continue | ||||
| 				} | ||||
| 				synC <- &dialResult{c, err} | ||||
| 				return | ||||
| 			} | ||||
| 		} | ||||
| 	}() | ||||
| 	select { | ||||
| 	case dr := <-synC: | ||||
| 		return dr.c, dr.err | ||||
| 	case <-time.After(timeout): | ||||
| 		close(stopC) | ||||
| 		go func() { | ||||
| 			dr := <-synC | ||||
| 			if dr != nil && dr.c != nil { | ||||
| 				dr.c.Close() | ||||
| 			} | ||||
| 		}() | ||||
| 		return nil, errors.Errorf("dial %s: timeout", address) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										52
									
								
								vendor/github.com/containerd/containerd/pkg/dialer/dialer_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								vendor/github.com/containerd/containerd/pkg/dialer/dialer_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,52 +0,0 @@ | ||||
| // +build !windows | ||||
|  | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
| */ | ||||
|  | ||||
| package dialer | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"net" | ||||
| 	"os" | ||||
| 	"strings" | ||||
| 	"syscall" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| // DialAddress returns the address with unix:// prepended to the | ||||
| // provided address | ||||
| func DialAddress(address string) string { | ||||
| 	return fmt.Sprintf("unix://%s", address) | ||||
| } | ||||
|  | ||||
| func isNoent(err error) bool { | ||||
| 	if err != nil { | ||||
| 		if nerr, ok := err.(*net.OpError); ok { | ||||
| 			if serr, ok := nerr.Err.(*os.SyscallError); ok { | ||||
| 				if serr.Err == syscall.ENOENT { | ||||
| 					return true | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func dialer(address string, timeout time.Duration) (net.Conn, error) { | ||||
| 	address = strings.TrimPrefix(address, "unix://") | ||||
| 	return net.DialTimeout("unix", address, timeout) | ||||
| } | ||||
							
								
								
									
										38
									
								
								vendor/github.com/containerd/containerd/pkg/dialer/dialer_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								vendor/github.com/containerd/containerd/pkg/dialer/dialer_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,38 +0,0 @@ | ||||
| /* | ||||
|    Copyright The containerd Authors. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
|  | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
| */ | ||||
|  | ||||
| package dialer | ||||
|  | ||||
| import ( | ||||
| 	"net" | ||||
| 	"os" | ||||
| 	"time" | ||||
|  | ||||
| 	winio "github.com/Microsoft/go-winio" | ||||
| ) | ||||
|  | ||||
| func isNoent(err error) bool { | ||||
| 	return os.IsNotExist(err) | ||||
| } | ||||
|  | ||||
| func dialer(address string, timeout time.Duration) (net.Conn, error) { | ||||
| 	return winio.DialPipe(address, &timeout) | ||||
| } | ||||
|  | ||||
| // DialAddress returns the dial address | ||||
| func DialAddress(address string) string { | ||||
| 	return address | ||||
| } | ||||
		Reference in New Issue
	
	Block a user