api/types/mount: bring back the mount type
The mount type is used across common GRPC services to express a deferred access of a filesystem. Right now, they are generated by snapshotters, but eventually, they can be passed for containers for creation at runtime. With this flow, we can separate the generation and use of a root container filesystem. Signed-off-by: Stephen J Day <stephen.day@docker.com>
This commit is contained in:
		
							
								
								
									
										3
									
								
								api/types/mount/gen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								api/types/mount/gen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | package mount | ||||||
|  |  | ||||||
|  | //go:generate protoc -I.:../../../vendor:../../../vendor/github.com/gogo/protobuf:../../../../../..:/usr/local/include --gogoctrd_out=plugins=grpc,import_path=github.com/docker/containerd/api/types/mount,Mgogoproto/gogo.proto=github.com/gogo/protobuf/gogoproto,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. mount.proto | ||||||
							
								
								
									
										529
									
								
								api/types/mount/mount.pb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										529
									
								
								api/types/mount/mount.pb.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,529 @@ | |||||||
|  | // Code generated by protoc-gen-gogo. | ||||||
|  | // source: mount.proto | ||||||
|  | // DO NOT EDIT! | ||||||
|  |  | ||||||
|  | /* | ||||||
|  | 	Package mount is a generated protocol buffer package. | ||||||
|  |  | ||||||
|  | 	It is generated from these files: | ||||||
|  | 		mount.proto | ||||||
|  |  | ||||||
|  | 	It has these top-level messages: | ||||||
|  | 		Mount | ||||||
|  | */ | ||||||
|  | package mount | ||||||
|  |  | ||||||
|  | import proto "github.com/gogo/protobuf/proto" | ||||||
|  | import fmt "fmt" | ||||||
|  | import math "math" | ||||||
|  | import _ "github.com/gogo/protobuf/gogoproto" | ||||||
|  |  | ||||||
|  | import strings "strings" | ||||||
|  | import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" | ||||||
|  | import sort "sort" | ||||||
|  | import strconv "strconv" | ||||||
|  | import reflect "reflect" | ||||||
|  |  | ||||||
|  | import io "io" | ||||||
|  |  | ||||||
|  | // Reference imports to suppress errors if they are not otherwise used. | ||||||
|  | var _ = proto.Marshal | ||||||
|  | var _ = fmt.Errorf | ||||||
|  | var _ = math.Inf | ||||||
|  |  | ||||||
|  | // This is a compile-time assertion to ensure that this generated file | ||||||
|  | // is compatible with the proto package it is being compiled against. | ||||||
|  | // A compilation error at this line likely means your copy of the | ||||||
|  | // proto package needs to be updated. | ||||||
|  | const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package | ||||||
|  |  | ||||||
|  | // Mount describes mounts for a container. | ||||||
|  | // | ||||||
|  | // This type is the lingua franca of ContainerD. All services provide mounts | ||||||
|  | // to be used with the container at creation time. | ||||||
|  | // | ||||||
|  | // The Mount type follows the structure of the mount syscall, including a type, | ||||||
|  | // source, target and options. | ||||||
|  | type Mount struct { | ||||||
|  | 	// Type defines the nature of the mount. | ||||||
|  | 	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` | ||||||
|  | 	// Source specifies the name of the mount. Depending on mount type, this | ||||||
|  | 	// may be a volume name or a host path, or even ignored. | ||||||
|  | 	Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` | ||||||
|  | 	// Target path in container | ||||||
|  | 	Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` | ||||||
|  | 	// Options specifies zero or more fstab style mount options. | ||||||
|  | 	Options []string `protobuf:"bytes,4,rep,name=options" json:"options,omitempty"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (m *Mount) Reset()                    { *m = Mount{} } | ||||||
|  | func (*Mount) ProtoMessage()               {} | ||||||
|  | func (*Mount) Descriptor() ([]byte, []int) { return fileDescriptorMount, []int{0} } | ||||||
|  |  | ||||||
|  | func init() { | ||||||
|  | 	proto.RegisterType((*Mount)(nil), "containerd.v1.types.Mount") | ||||||
|  | } | ||||||
|  | func (this *Mount) GoString() string { | ||||||
|  | 	if this == nil { | ||||||
|  | 		return "nil" | ||||||
|  | 	} | ||||||
|  | 	s := make([]string, 0, 8) | ||||||
|  | 	s = append(s, "&mount.Mount{") | ||||||
|  | 	s = append(s, "Type: "+fmt.Sprintf("%#v", this.Type)+",\n") | ||||||
|  | 	s = append(s, "Source: "+fmt.Sprintf("%#v", this.Source)+",\n") | ||||||
|  | 	s = append(s, "Target: "+fmt.Sprintf("%#v", this.Target)+",\n") | ||||||
|  | 	s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") | ||||||
|  | 	s = append(s, "}") | ||||||
|  | 	return strings.Join(s, "") | ||||||
|  | } | ||||||
|  | func valueToGoStringMount(v interface{}, typ string) string { | ||||||
|  | 	rv := reflect.ValueOf(v) | ||||||
|  | 	if rv.IsNil() { | ||||||
|  | 		return "nil" | ||||||
|  | 	} | ||||||
|  | 	pv := reflect.Indirect(rv).Interface() | ||||||
|  | 	return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) | ||||||
|  | } | ||||||
|  | func extensionToGoStringMount(m github_com_gogo_protobuf_proto.Message) string { | ||||||
|  | 	e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) | ||||||
|  | 	if e == nil { | ||||||
|  | 		return "nil" | ||||||
|  | 	} | ||||||
|  | 	s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" | ||||||
|  | 	keys := make([]int, 0, len(e)) | ||||||
|  | 	for k := range e { | ||||||
|  | 		keys = append(keys, int(k)) | ||||||
|  | 	} | ||||||
|  | 	sort.Ints(keys) | ||||||
|  | 	ss := []string{} | ||||||
|  | 	for _, k := range keys { | ||||||
|  | 		ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) | ||||||
|  | 	} | ||||||
|  | 	s += strings.Join(ss, ",") + "})" | ||||||
|  | 	return s | ||||||
|  | } | ||||||
|  | func (m *Mount) Marshal() (dAtA []byte, err error) { | ||||||
|  | 	size := m.Size() | ||||||
|  | 	dAtA = make([]byte, size) | ||||||
|  | 	n, err := m.MarshalTo(dAtA) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return dAtA[:n], nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (m *Mount) MarshalTo(dAtA []byte) (int, error) { | ||||||
|  | 	var i int | ||||||
|  | 	_ = i | ||||||
|  | 	var l int | ||||||
|  | 	_ = l | ||||||
|  | 	if len(m.Type) > 0 { | ||||||
|  | 		dAtA[i] = 0xa | ||||||
|  | 		i++ | ||||||
|  | 		i = encodeVarintMount(dAtA, i, uint64(len(m.Type))) | ||||||
|  | 		i += copy(dAtA[i:], m.Type) | ||||||
|  | 	} | ||||||
|  | 	if len(m.Source) > 0 { | ||||||
|  | 		dAtA[i] = 0x12 | ||||||
|  | 		i++ | ||||||
|  | 		i = encodeVarintMount(dAtA, i, uint64(len(m.Source))) | ||||||
|  | 		i += copy(dAtA[i:], m.Source) | ||||||
|  | 	} | ||||||
|  | 	if len(m.Target) > 0 { | ||||||
|  | 		dAtA[i] = 0x1a | ||||||
|  | 		i++ | ||||||
|  | 		i = encodeVarintMount(dAtA, i, uint64(len(m.Target))) | ||||||
|  | 		i += copy(dAtA[i:], m.Target) | ||||||
|  | 	} | ||||||
|  | 	if len(m.Options) > 0 { | ||||||
|  | 		for _, s := range m.Options { | ||||||
|  | 			dAtA[i] = 0x22 | ||||||
|  | 			i++ | ||||||
|  | 			l = len(s) | ||||||
|  | 			for l >= 1<<7 { | ||||||
|  | 				dAtA[i] = uint8(uint64(l)&0x7f | 0x80) | ||||||
|  | 				l >>= 7 | ||||||
|  | 				i++ | ||||||
|  | 			} | ||||||
|  | 			dAtA[i] = uint8(l) | ||||||
|  | 			i++ | ||||||
|  | 			i += copy(dAtA[i:], s) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return i, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func encodeFixed64Mount(dAtA []byte, offset int, v uint64) int { | ||||||
|  | 	dAtA[offset] = uint8(v) | ||||||
|  | 	dAtA[offset+1] = uint8(v >> 8) | ||||||
|  | 	dAtA[offset+2] = uint8(v >> 16) | ||||||
|  | 	dAtA[offset+3] = uint8(v >> 24) | ||||||
|  | 	dAtA[offset+4] = uint8(v >> 32) | ||||||
|  | 	dAtA[offset+5] = uint8(v >> 40) | ||||||
|  | 	dAtA[offset+6] = uint8(v >> 48) | ||||||
|  | 	dAtA[offset+7] = uint8(v >> 56) | ||||||
|  | 	return offset + 8 | ||||||
|  | } | ||||||
|  | func encodeFixed32Mount(dAtA []byte, offset int, v uint32) int { | ||||||
|  | 	dAtA[offset] = uint8(v) | ||||||
|  | 	dAtA[offset+1] = uint8(v >> 8) | ||||||
|  | 	dAtA[offset+2] = uint8(v >> 16) | ||||||
|  | 	dAtA[offset+3] = uint8(v >> 24) | ||||||
|  | 	return offset + 4 | ||||||
|  | } | ||||||
|  | func encodeVarintMount(dAtA []byte, offset int, v uint64) int { | ||||||
|  | 	for v >= 1<<7 { | ||||||
|  | 		dAtA[offset] = uint8(v&0x7f | 0x80) | ||||||
|  | 		v >>= 7 | ||||||
|  | 		offset++ | ||||||
|  | 	} | ||||||
|  | 	dAtA[offset] = uint8(v) | ||||||
|  | 	return offset + 1 | ||||||
|  | } | ||||||
|  | func (m *Mount) Size() (n int) { | ||||||
|  | 	var l int | ||||||
|  | 	_ = l | ||||||
|  | 	l = len(m.Type) | ||||||
|  | 	if l > 0 { | ||||||
|  | 		n += 1 + l + sovMount(uint64(l)) | ||||||
|  | 	} | ||||||
|  | 	l = len(m.Source) | ||||||
|  | 	if l > 0 { | ||||||
|  | 		n += 1 + l + sovMount(uint64(l)) | ||||||
|  | 	} | ||||||
|  | 	l = len(m.Target) | ||||||
|  | 	if l > 0 { | ||||||
|  | 		n += 1 + l + sovMount(uint64(l)) | ||||||
|  | 	} | ||||||
|  | 	if len(m.Options) > 0 { | ||||||
|  | 		for _, s := range m.Options { | ||||||
|  | 			l = len(s) | ||||||
|  | 			n += 1 + l + sovMount(uint64(l)) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return n | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func sovMount(x uint64) (n int) { | ||||||
|  | 	for { | ||||||
|  | 		n++ | ||||||
|  | 		x >>= 7 | ||||||
|  | 		if x == 0 { | ||||||
|  | 			break | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return n | ||||||
|  | } | ||||||
|  | func sozMount(x uint64) (n int) { | ||||||
|  | 	return sovMount(uint64((x << 1) ^ uint64((int64(x) >> 63)))) | ||||||
|  | } | ||||||
|  | func (this *Mount) String() string { | ||||||
|  | 	if this == nil { | ||||||
|  | 		return "nil" | ||||||
|  | 	} | ||||||
|  | 	s := strings.Join([]string{`&Mount{`, | ||||||
|  | 		`Type:` + fmt.Sprintf("%v", this.Type) + `,`, | ||||||
|  | 		`Source:` + fmt.Sprintf("%v", this.Source) + `,`, | ||||||
|  | 		`Target:` + fmt.Sprintf("%v", this.Target) + `,`, | ||||||
|  | 		`Options:` + fmt.Sprintf("%v", this.Options) + `,`, | ||||||
|  | 		`}`, | ||||||
|  | 	}, "") | ||||||
|  | 	return s | ||||||
|  | } | ||||||
|  | func valueToStringMount(v interface{}) string { | ||||||
|  | 	rv := reflect.ValueOf(v) | ||||||
|  | 	if rv.IsNil() { | ||||||
|  | 		return "nil" | ||||||
|  | 	} | ||||||
|  | 	pv := reflect.Indirect(rv).Interface() | ||||||
|  | 	return fmt.Sprintf("*%v", pv) | ||||||
|  | } | ||||||
|  | func (m *Mount) Unmarshal(dAtA []byte) error { | ||||||
|  | 	l := len(dAtA) | ||||||
|  | 	iNdEx := 0 | ||||||
|  | 	for iNdEx < l { | ||||||
|  | 		preIndex := iNdEx | ||||||
|  | 		var wire uint64 | ||||||
|  | 		for shift := uint(0); ; shift += 7 { | ||||||
|  | 			if shift >= 64 { | ||||||
|  | 				return ErrIntOverflowMount | ||||||
|  | 			} | ||||||
|  | 			if iNdEx >= l { | ||||||
|  | 				return io.ErrUnexpectedEOF | ||||||
|  | 			} | ||||||
|  | 			b := dAtA[iNdEx] | ||||||
|  | 			iNdEx++ | ||||||
|  | 			wire |= (uint64(b) & 0x7F) << shift | ||||||
|  | 			if b < 0x80 { | ||||||
|  | 				break | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		fieldNum := int32(wire >> 3) | ||||||
|  | 		wireType := int(wire & 0x7) | ||||||
|  | 		if wireType == 4 { | ||||||
|  | 			return fmt.Errorf("proto: Mount: wiretype end group for non-group") | ||||||
|  | 		} | ||||||
|  | 		if fieldNum <= 0 { | ||||||
|  | 			return fmt.Errorf("proto: Mount: illegal tag %d (wire type %d)", fieldNum, wire) | ||||||
|  | 		} | ||||||
|  | 		switch fieldNum { | ||||||
|  | 		case 1: | ||||||
|  | 			if wireType != 2 { | ||||||
|  | 				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) | ||||||
|  | 			} | ||||||
|  | 			var stringLen uint64 | ||||||
|  | 			for shift := uint(0); ; shift += 7 { | ||||||
|  | 				if shift >= 64 { | ||||||
|  | 					return ErrIntOverflowMount | ||||||
|  | 				} | ||||||
|  | 				if iNdEx >= l { | ||||||
|  | 					return io.ErrUnexpectedEOF | ||||||
|  | 				} | ||||||
|  | 				b := dAtA[iNdEx] | ||||||
|  | 				iNdEx++ | ||||||
|  | 				stringLen |= (uint64(b) & 0x7F) << shift | ||||||
|  | 				if b < 0x80 { | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			intStringLen := int(stringLen) | ||||||
|  | 			if intStringLen < 0 { | ||||||
|  | 				return ErrInvalidLengthMount | ||||||
|  | 			} | ||||||
|  | 			postIndex := iNdEx + intStringLen | ||||||
|  | 			if postIndex > l { | ||||||
|  | 				return io.ErrUnexpectedEOF | ||||||
|  | 			} | ||||||
|  | 			m.Type = string(dAtA[iNdEx:postIndex]) | ||||||
|  | 			iNdEx = postIndex | ||||||
|  | 		case 2: | ||||||
|  | 			if wireType != 2 { | ||||||
|  | 				return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) | ||||||
|  | 			} | ||||||
|  | 			var stringLen uint64 | ||||||
|  | 			for shift := uint(0); ; shift += 7 { | ||||||
|  | 				if shift >= 64 { | ||||||
|  | 					return ErrIntOverflowMount | ||||||
|  | 				} | ||||||
|  | 				if iNdEx >= l { | ||||||
|  | 					return io.ErrUnexpectedEOF | ||||||
|  | 				} | ||||||
|  | 				b := dAtA[iNdEx] | ||||||
|  | 				iNdEx++ | ||||||
|  | 				stringLen |= (uint64(b) & 0x7F) << shift | ||||||
|  | 				if b < 0x80 { | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			intStringLen := int(stringLen) | ||||||
|  | 			if intStringLen < 0 { | ||||||
|  | 				return ErrInvalidLengthMount | ||||||
|  | 			} | ||||||
|  | 			postIndex := iNdEx + intStringLen | ||||||
|  | 			if postIndex > l { | ||||||
|  | 				return io.ErrUnexpectedEOF | ||||||
|  | 			} | ||||||
|  | 			m.Source = string(dAtA[iNdEx:postIndex]) | ||||||
|  | 			iNdEx = postIndex | ||||||
|  | 		case 3: | ||||||
|  | 			if wireType != 2 { | ||||||
|  | 				return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) | ||||||
|  | 			} | ||||||
|  | 			var stringLen uint64 | ||||||
|  | 			for shift := uint(0); ; shift += 7 { | ||||||
|  | 				if shift >= 64 { | ||||||
|  | 					return ErrIntOverflowMount | ||||||
|  | 				} | ||||||
|  | 				if iNdEx >= l { | ||||||
|  | 					return io.ErrUnexpectedEOF | ||||||
|  | 				} | ||||||
|  | 				b := dAtA[iNdEx] | ||||||
|  | 				iNdEx++ | ||||||
|  | 				stringLen |= (uint64(b) & 0x7F) << shift | ||||||
|  | 				if b < 0x80 { | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			intStringLen := int(stringLen) | ||||||
|  | 			if intStringLen < 0 { | ||||||
|  | 				return ErrInvalidLengthMount | ||||||
|  | 			} | ||||||
|  | 			postIndex := iNdEx + intStringLen | ||||||
|  | 			if postIndex > l { | ||||||
|  | 				return io.ErrUnexpectedEOF | ||||||
|  | 			} | ||||||
|  | 			m.Target = string(dAtA[iNdEx:postIndex]) | ||||||
|  | 			iNdEx = postIndex | ||||||
|  | 		case 4: | ||||||
|  | 			if wireType != 2 { | ||||||
|  | 				return fmt.Errorf("proto: wrong wireType = %d for field Options", wireType) | ||||||
|  | 			} | ||||||
|  | 			var stringLen uint64 | ||||||
|  | 			for shift := uint(0); ; shift += 7 { | ||||||
|  | 				if shift >= 64 { | ||||||
|  | 					return ErrIntOverflowMount | ||||||
|  | 				} | ||||||
|  | 				if iNdEx >= l { | ||||||
|  | 					return io.ErrUnexpectedEOF | ||||||
|  | 				} | ||||||
|  | 				b := dAtA[iNdEx] | ||||||
|  | 				iNdEx++ | ||||||
|  | 				stringLen |= (uint64(b) & 0x7F) << shift | ||||||
|  | 				if b < 0x80 { | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			intStringLen := int(stringLen) | ||||||
|  | 			if intStringLen < 0 { | ||||||
|  | 				return ErrInvalidLengthMount | ||||||
|  | 			} | ||||||
|  | 			postIndex := iNdEx + intStringLen | ||||||
|  | 			if postIndex > l { | ||||||
|  | 				return io.ErrUnexpectedEOF | ||||||
|  | 			} | ||||||
|  | 			m.Options = append(m.Options, string(dAtA[iNdEx:postIndex])) | ||||||
|  | 			iNdEx = postIndex | ||||||
|  | 		default: | ||||||
|  | 			iNdEx = preIndex | ||||||
|  | 			skippy, err := skipMount(dAtA[iNdEx:]) | ||||||
|  | 			if err != nil { | ||||||
|  | 				return err | ||||||
|  | 			} | ||||||
|  | 			if skippy < 0 { | ||||||
|  | 				return ErrInvalidLengthMount | ||||||
|  | 			} | ||||||
|  | 			if (iNdEx + skippy) > l { | ||||||
|  | 				return io.ErrUnexpectedEOF | ||||||
|  | 			} | ||||||
|  | 			iNdEx += skippy | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if iNdEx > l { | ||||||
|  | 		return io.ErrUnexpectedEOF | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | func skipMount(dAtA []byte) (n int, err error) { | ||||||
|  | 	l := len(dAtA) | ||||||
|  | 	iNdEx := 0 | ||||||
|  | 	for iNdEx < l { | ||||||
|  | 		var wire uint64 | ||||||
|  | 		for shift := uint(0); ; shift += 7 { | ||||||
|  | 			if shift >= 64 { | ||||||
|  | 				return 0, ErrIntOverflowMount | ||||||
|  | 			} | ||||||
|  | 			if iNdEx >= l { | ||||||
|  | 				return 0, io.ErrUnexpectedEOF | ||||||
|  | 			} | ||||||
|  | 			b := dAtA[iNdEx] | ||||||
|  | 			iNdEx++ | ||||||
|  | 			wire |= (uint64(b) & 0x7F) << shift | ||||||
|  | 			if b < 0x80 { | ||||||
|  | 				break | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		wireType := int(wire & 0x7) | ||||||
|  | 		switch wireType { | ||||||
|  | 		case 0: | ||||||
|  | 			for shift := uint(0); ; shift += 7 { | ||||||
|  | 				if shift >= 64 { | ||||||
|  | 					return 0, ErrIntOverflowMount | ||||||
|  | 				} | ||||||
|  | 				if iNdEx >= l { | ||||||
|  | 					return 0, io.ErrUnexpectedEOF | ||||||
|  | 				} | ||||||
|  | 				iNdEx++ | ||||||
|  | 				if dAtA[iNdEx-1] < 0x80 { | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			return iNdEx, nil | ||||||
|  | 		case 1: | ||||||
|  | 			iNdEx += 8 | ||||||
|  | 			return iNdEx, nil | ||||||
|  | 		case 2: | ||||||
|  | 			var length int | ||||||
|  | 			for shift := uint(0); ; shift += 7 { | ||||||
|  | 				if shift >= 64 { | ||||||
|  | 					return 0, ErrIntOverflowMount | ||||||
|  | 				} | ||||||
|  | 				if iNdEx >= l { | ||||||
|  | 					return 0, io.ErrUnexpectedEOF | ||||||
|  | 				} | ||||||
|  | 				b := dAtA[iNdEx] | ||||||
|  | 				iNdEx++ | ||||||
|  | 				length |= (int(b) & 0x7F) << shift | ||||||
|  | 				if b < 0x80 { | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			iNdEx += length | ||||||
|  | 			if length < 0 { | ||||||
|  | 				return 0, ErrInvalidLengthMount | ||||||
|  | 			} | ||||||
|  | 			return iNdEx, nil | ||||||
|  | 		case 3: | ||||||
|  | 			for { | ||||||
|  | 				var innerWire uint64 | ||||||
|  | 				var start int = iNdEx | ||||||
|  | 				for shift := uint(0); ; shift += 7 { | ||||||
|  | 					if shift >= 64 { | ||||||
|  | 						return 0, ErrIntOverflowMount | ||||||
|  | 					} | ||||||
|  | 					if iNdEx >= l { | ||||||
|  | 						return 0, io.ErrUnexpectedEOF | ||||||
|  | 					} | ||||||
|  | 					b := dAtA[iNdEx] | ||||||
|  | 					iNdEx++ | ||||||
|  | 					innerWire |= (uint64(b) & 0x7F) << shift | ||||||
|  | 					if b < 0x80 { | ||||||
|  | 						break | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				innerWireType := int(innerWire & 0x7) | ||||||
|  | 				if innerWireType == 4 { | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 				next, err := skipMount(dAtA[start:]) | ||||||
|  | 				if err != nil { | ||||||
|  | 					return 0, err | ||||||
|  | 				} | ||||||
|  | 				iNdEx = start + next | ||||||
|  | 			} | ||||||
|  | 			return iNdEx, nil | ||||||
|  | 		case 4: | ||||||
|  | 			return iNdEx, nil | ||||||
|  | 		case 5: | ||||||
|  | 			iNdEx += 4 | ||||||
|  | 			return iNdEx, nil | ||||||
|  | 		default: | ||||||
|  | 			return 0, fmt.Errorf("proto: illegal wireType %d", wireType) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	panic("unreachable") | ||||||
|  | } | ||||||
|  |  | ||||||
|  | var ( | ||||||
|  | 	ErrInvalidLengthMount = fmt.Errorf("proto: negative length found during unmarshaling") | ||||||
|  | 	ErrIntOverflowMount   = fmt.Errorf("proto: integer overflow") | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func init() { proto.RegisterFile("mount.proto", fileDescriptorMount) } | ||||||
|  |  | ||||||
|  | var fileDescriptorMount = []byte{ | ||||||
|  | 	// 196 bytes of a gzipped FileDescriptorProto | ||||||
|  | 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0xce, 0xcd, 0x2f, 0xcd, | ||||||
|  | 	0x2b, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x4e, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, | ||||||
|  | 	0x4b, 0x2d, 0x4a, 0xd1, 0x2b, 0x33, 0xd4, 0x2b, 0xa9, 0x2c, 0x48, 0x2d, 0x96, 0xd2, 0x4d, 0xcf, | ||||||
|  | 	0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, | ||||||
|  | 	0x4d, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0x62, 0x86, 0x52, 0x2a, 0x17, 0xab, 0x2f, | ||||||
|  | 	0xc8, 0x48, 0x21, 0x21, 0x2e, 0x16, 0x90, 0x01, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0x9c, 0x41, 0x60, | ||||||
|  | 	0xb6, 0x90, 0x18, 0x17, 0x5b, 0x71, 0x7e, 0x69, 0x51, 0x72, 0xaa, 0x04, 0x13, 0x58, 0x14, 0xca, | ||||||
|  | 	0x03, 0x89, 0x97, 0x24, 0x16, 0xa5, 0xa7, 0x96, 0x48, 0x30, 0x43, 0xc4, 0x21, 0x3c, 0x21, 0x09, | ||||||
|  | 	0x2e, 0xf6, 0xfc, 0x82, 0x92, 0xcc, 0xfc, 0xbc, 0x62, 0x09, 0x16, 0x05, 0x66, 0x0d, 0xce, 0x20, | ||||||
|  | 	0x18, 0xd7, 0x49, 0xe6, 0xc4, 0x43, 0x39, 0x86, 0x1b, 0x0f, 0xe5, 0x18, 0x3e, 0x3c, 0x94, 0x63, | ||||||
|  | 	0x6c, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, | ||||||
|  | 	0x31, 0x26, 0xb1, 0x81, 0xdd, 0x62, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xce, 0xd6, 0xd6, 0x24, | ||||||
|  | 	0xde, 0x00, 0x00, 0x00, | ||||||
|  | } | ||||||
							
								
								
									
										27
									
								
								api/types/mount/mount.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								api/types/mount/mount.proto
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | syntax = "proto3"; | ||||||
|  |  | ||||||
|  | package containerd.v1.types; | ||||||
|  |  | ||||||
|  | import "github.com/gogo/protobuf/gogoproto/gogo.proto"; | ||||||
|  |  | ||||||
|  | // Mount describes mounts for a container. | ||||||
|  | // | ||||||
|  | // This type is the lingua franca of ContainerD. All services provide mounts | ||||||
|  | // to be used with the container at creation time. | ||||||
|  | // | ||||||
|  | // The Mount type follows the structure of the mount syscall, including a type, | ||||||
|  | // source, target and options. | ||||||
|  | message Mount { | ||||||
|  |        // Type defines the nature of the mount. | ||||||
|  |        string type = 1; | ||||||
|  |  | ||||||
|  |        // Source specifies the name of the mount. Depending on mount type, this | ||||||
|  |        // may be a volume name or a host path, or even ignored. | ||||||
|  |        string source = 2; | ||||||
|  |  | ||||||
|  |        // Target path in container | ||||||
|  |        string target = 3; | ||||||
|  |  | ||||||
|  |        // Options specifies zero or more fstab style mount options. | ||||||
|  |        repeated string options = 4; | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 Stephen J Day
					Stephen J Day