mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
chore: update protobuf to reuse file request (#21447)
**This is just the protobuf changes for the PR https://github.com/coder/coder/pull/21398** Moved `UploadFileRequest` from `provisionerd.proto` -> `provisioner.proto`. Renamed to `FileUpload` because it is now bi-directional. This **is backwards compatible**. I tested it to confirm the payloads are identical. Types were just renamed and moved around. ```golang func TestTypeUpgrade(t *testing.T) { t.Parallel() x := &proto2.UploadFileRequest{ Type: &proto2.UploadFileRequest_ChunkPiece{ ChunkPiece: &proto.ChunkPiece{ Data: []byte("Hello World!"), FullDataHash: []byte("Foobar"), PieceIndex: 42, }, }, } data, err := protobuf.Marshal(x) require.NoError(t, err) // Exactly the same output // EhgKDEhlbGxvIFdvcmxkIRIGRm9vYmFyGCo= on `main` // EhgKDEhlbGxvIFdvcmxkIRIGRm9vYmFyGCo= on this branch fmt.Println(base64.StdEncoding.EncodeToString(data)) } ``` # What this does This allows provisioner daemons to download files from `coderd`'s `files` table. This is used to send over cached module files and prevent the need of downloading these modules on each workspace build.
This commit is contained in:
Generated
+93
-121
@@ -855,20 +855,17 @@ func (*CancelAcquire) Descriptor() ([]byte, []int) {
|
||||
return file_provisionerd_proto_provisionerd_proto_rawDescGZIP(), []int{9}
|
||||
}
|
||||
|
||||
type UploadFileRequest struct {
|
||||
type FileRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// Types that are assignable to Type:
|
||||
//
|
||||
// *UploadFileRequest_DataUpload
|
||||
// *UploadFileRequest_ChunkPiece
|
||||
Type isUploadFileRequest_Type `protobuf_oneof:"type"`
|
||||
FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId,proto3" json:"file_id,omitempty"`
|
||||
UploadType proto.DataUploadType `protobuf:"varint,2,opt,name=upload_type,json=uploadType,proto3,enum=provisioner.DataUploadType" json:"upload_type,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UploadFileRequest) Reset() {
|
||||
*x = UploadFileRequest{}
|
||||
func (x *FileRequest) Reset() {
|
||||
*x = FileRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_provisionerd_proto_provisionerd_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
@@ -876,13 +873,13 @@ func (x *UploadFileRequest) Reset() {
|
||||
}
|
||||
}
|
||||
|
||||
func (x *UploadFileRequest) String() string {
|
||||
func (x *FileRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UploadFileRequest) ProtoMessage() {}
|
||||
func (*FileRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UploadFileRequest) ProtoReflect() protoreflect.Message {
|
||||
func (x *FileRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_provisionerd_proto_provisionerd_proto_msgTypes[10]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
@@ -894,48 +891,25 @@ func (x *UploadFileRequest) ProtoReflect() protoreflect.Message {
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UploadFileRequest.ProtoReflect.Descriptor instead.
|
||||
func (*UploadFileRequest) Descriptor() ([]byte, []int) {
|
||||
// Deprecated: Use FileRequest.ProtoReflect.Descriptor instead.
|
||||
func (*FileRequest) Descriptor() ([]byte, []int) {
|
||||
return file_provisionerd_proto_provisionerd_proto_rawDescGZIP(), []int{10}
|
||||
}
|
||||
|
||||
func (m *UploadFileRequest) GetType() isUploadFileRequest_Type {
|
||||
if m != nil {
|
||||
return m.Type
|
||||
func (x *FileRequest) GetFileId() string {
|
||||
if x != nil {
|
||||
return x.FileId
|
||||
}
|
||||
return nil
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UploadFileRequest) GetDataUpload() *proto.DataUpload {
|
||||
if x, ok := x.GetType().(*UploadFileRequest_DataUpload); ok {
|
||||
return x.DataUpload
|
||||
func (x *FileRequest) GetUploadType() proto.DataUploadType {
|
||||
if x != nil {
|
||||
return x.UploadType
|
||||
}
|
||||
return nil
|
||||
return proto.DataUploadType(0)
|
||||
}
|
||||
|
||||
func (x *UploadFileRequest) GetChunkPiece() *proto.ChunkPiece {
|
||||
if x, ok := x.GetType().(*UploadFileRequest_ChunkPiece); ok {
|
||||
return x.ChunkPiece
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type isUploadFileRequest_Type interface {
|
||||
isUploadFileRequest_Type()
|
||||
}
|
||||
|
||||
type UploadFileRequest_DataUpload struct {
|
||||
DataUpload *proto.DataUpload `protobuf:"bytes,1,opt,name=data_upload,json=dataUpload,proto3,oneof"`
|
||||
}
|
||||
|
||||
type UploadFileRequest_ChunkPiece struct {
|
||||
ChunkPiece *proto.ChunkPiece `protobuf:"bytes,2,opt,name=chunk_piece,json=chunkPiece,proto3,oneof"`
|
||||
}
|
||||
|
||||
func (*UploadFileRequest_DataUpload) isUploadFileRequest_Type() {}
|
||||
|
||||
func (*UploadFileRequest_ChunkPiece) isUploadFileRequest_Type() {}
|
||||
|
||||
type AcquiredJob_WorkspaceBuild struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@@ -1868,20 +1842,17 @@ var file_provisionerd_proto_provisionerd_proto_rawDesc = []byte{
|
||||
0x28, 0x05, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75,
|
||||
0x6d, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x43,
|
||||
0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x93, 0x01, 0x0a,
|
||||
0x11, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x12, 0x3a, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73,
|
||||
0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64,
|
||||
0x48, 0x00, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3a,
|
||||
0x0a, 0x0b, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65,
|
||||
0x72, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x50, 0x69, 0x65, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0a,
|
||||
0x63, 0x68, 0x75, 0x6e, 0x6b, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79,
|
||||
0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x64, 0x0a, 0x0b,
|
||||
0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x66,
|
||||
0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74,
|
||||
0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x76,
|
||||
0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x55, 0x70, 0x6c, 0x6f,
|
||||
0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79,
|
||||
0x70, 0x65, 0x2a, 0x34, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
|
||||
0x16, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x45, 0x52, 0x5f, 0x44,
|
||||
0x41, 0x45, 0x4d, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x4f, 0x56, 0x49,
|
||||
0x53, 0x49, 0x4f, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x32, 0x8b, 0x04, 0x0a, 0x11, 0x50, 0x72, 0x6f,
|
||||
0x53, 0x49, 0x4f, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x32, 0xc9, 0x04, 0x0a, 0x11, 0x50, 0x72, 0x6f,
|
||||
0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x12, 0x41,
|
||||
0x0a, 0x0a, 0x41, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
@@ -1910,14 +1881,18 @@ var file_provisionerd_proto_provisionerd_proto_rawDesc = []byte{
|
||||
0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x43,
|
||||
0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x1a, 0x13, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
|
||||
0x12, 0x44, 0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1f,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x55, 0x70,
|
||||
0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x13, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x45,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x28, 0x01, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x72,
|
||||
0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x64,
|
||||
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x12, 0x3c, 0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x17,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c,
|
||||
0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73,
|
||||
0x69, 0x6f, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x28, 0x01, 0x12, 0x44,
|
||||
0x0a, 0x0c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x19,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x46, 0x69,
|
||||
0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x76,
|
||||
0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f,
|
||||
0x61, 0x64, 0x30, 0x01, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2f, 0x76,
|
||||
0x32, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -1946,7 +1921,7 @@ var file_provisionerd_proto_provisionerd_proto_goTypes = []interface{}{
|
||||
(*CommitQuotaRequest)(nil), // 8: provisionerd.CommitQuotaRequest
|
||||
(*CommitQuotaResponse)(nil), // 9: provisionerd.CommitQuotaResponse
|
||||
(*CancelAcquire)(nil), // 10: provisionerd.CancelAcquire
|
||||
(*UploadFileRequest)(nil), // 11: provisionerd.UploadFileRequest
|
||||
(*FileRequest)(nil), // 11: provisionerd.FileRequest
|
||||
(*AcquiredJob_WorkspaceBuild)(nil), // 12: provisionerd.AcquiredJob.WorkspaceBuild
|
||||
(*AcquiredJob_TemplateImport)(nil), // 13: provisionerd.AcquiredJob.TemplateImport
|
||||
(*AcquiredJob_TemplateDryRun)(nil), // 14: provisionerd.AcquiredJob.TemplateDryRun
|
||||
@@ -1961,19 +1936,19 @@ var file_provisionerd_proto_provisionerd_proto_goTypes = []interface{}{
|
||||
(proto.LogLevel)(0), // 23: provisioner.LogLevel
|
||||
(*proto.TemplateVariable)(nil), // 24: provisioner.TemplateVariable
|
||||
(*proto.VariableValue)(nil), // 25: provisioner.VariableValue
|
||||
(*proto.DataUpload)(nil), // 26: provisioner.DataUpload
|
||||
(*proto.ChunkPiece)(nil), // 27: provisioner.ChunkPiece
|
||||
(*proto.RichParameterValue)(nil), // 28: provisioner.RichParameterValue
|
||||
(*proto.ExternalAuthProvider)(nil), // 29: provisioner.ExternalAuthProvider
|
||||
(*proto.Metadata)(nil), // 30: provisioner.Metadata
|
||||
(*proto.Timing)(nil), // 31: provisioner.Timing
|
||||
(*proto.Resource)(nil), // 32: provisioner.Resource
|
||||
(*proto.Module)(nil), // 33: provisioner.Module
|
||||
(*proto.ResourceReplacement)(nil), // 34: provisioner.ResourceReplacement
|
||||
(*proto.AITask)(nil), // 35: provisioner.AITask
|
||||
(*proto.RichParameter)(nil), // 36: provisioner.RichParameter
|
||||
(*proto.ExternalAuthProviderResource)(nil), // 37: provisioner.ExternalAuthProviderResource
|
||||
(*proto.Preset)(nil), // 38: provisioner.Preset
|
||||
(proto.DataUploadType)(0), // 26: provisioner.DataUploadType
|
||||
(*proto.RichParameterValue)(nil), // 27: provisioner.RichParameterValue
|
||||
(*proto.ExternalAuthProvider)(nil), // 28: provisioner.ExternalAuthProvider
|
||||
(*proto.Metadata)(nil), // 29: provisioner.Metadata
|
||||
(*proto.Timing)(nil), // 30: provisioner.Timing
|
||||
(*proto.Resource)(nil), // 31: provisioner.Resource
|
||||
(*proto.Module)(nil), // 32: provisioner.Module
|
||||
(*proto.ResourceReplacement)(nil), // 33: provisioner.ResourceReplacement
|
||||
(*proto.AITask)(nil), // 34: provisioner.AITask
|
||||
(*proto.RichParameter)(nil), // 35: provisioner.RichParameter
|
||||
(*proto.ExternalAuthProviderResource)(nil), // 36: provisioner.ExternalAuthProviderResource
|
||||
(*proto.Preset)(nil), // 37: provisioner.Preset
|
||||
(*proto.FileUpload)(nil), // 38: provisioner.FileUpload
|
||||
}
|
||||
var file_provisionerd_proto_provisionerd_proto_depIdxs = []int32{
|
||||
12, // 0: provisionerd.AcquiredJob.workspace_build:type_name -> provisionerd.AcquiredJob.WorkspaceBuild
|
||||
@@ -1993,40 +1968,40 @@ var file_provisionerd_proto_provisionerd_proto_depIdxs = []int32{
|
||||
25, // 14: provisionerd.UpdateJobRequest.user_variable_values:type_name -> provisioner.VariableValue
|
||||
22, // 15: provisionerd.UpdateJobRequest.workspace_tags:type_name -> provisionerd.UpdateJobRequest.WorkspaceTagsEntry
|
||||
25, // 16: provisionerd.UpdateJobResponse.variable_values:type_name -> provisioner.VariableValue
|
||||
26, // 17: provisionerd.UploadFileRequest.data_upload:type_name -> provisioner.DataUpload
|
||||
27, // 18: provisionerd.UploadFileRequest.chunk_piece:type_name -> provisioner.ChunkPiece
|
||||
28, // 19: provisionerd.AcquiredJob.WorkspaceBuild.rich_parameter_values:type_name -> provisioner.RichParameterValue
|
||||
25, // 20: provisionerd.AcquiredJob.WorkspaceBuild.variable_values:type_name -> provisioner.VariableValue
|
||||
29, // 21: provisionerd.AcquiredJob.WorkspaceBuild.external_auth_providers:type_name -> provisioner.ExternalAuthProvider
|
||||
30, // 22: provisionerd.AcquiredJob.WorkspaceBuild.metadata:type_name -> provisioner.Metadata
|
||||
28, // 23: provisionerd.AcquiredJob.WorkspaceBuild.previous_parameter_values:type_name -> provisioner.RichParameterValue
|
||||
30, // 24: provisionerd.AcquiredJob.TemplateImport.metadata:type_name -> provisioner.Metadata
|
||||
25, // 25: provisionerd.AcquiredJob.TemplateImport.user_variable_values:type_name -> provisioner.VariableValue
|
||||
28, // 26: provisionerd.AcquiredJob.TemplateDryRun.rich_parameter_values:type_name -> provisioner.RichParameterValue
|
||||
25, // 27: provisionerd.AcquiredJob.TemplateDryRun.variable_values:type_name -> provisioner.VariableValue
|
||||
30, // 28: provisionerd.AcquiredJob.TemplateDryRun.metadata:type_name -> provisioner.Metadata
|
||||
31, // 29: provisionerd.FailedJob.WorkspaceBuild.timings:type_name -> provisioner.Timing
|
||||
32, // 30: provisionerd.CompletedJob.WorkspaceBuild.resources:type_name -> provisioner.Resource
|
||||
31, // 31: provisionerd.CompletedJob.WorkspaceBuild.timings:type_name -> provisioner.Timing
|
||||
33, // 32: provisionerd.CompletedJob.WorkspaceBuild.modules:type_name -> provisioner.Module
|
||||
34, // 33: provisionerd.CompletedJob.WorkspaceBuild.resource_replacements:type_name -> provisioner.ResourceReplacement
|
||||
35, // 34: provisionerd.CompletedJob.WorkspaceBuild.ai_tasks:type_name -> provisioner.AITask
|
||||
32, // 35: provisionerd.CompletedJob.TemplateImport.start_resources:type_name -> provisioner.Resource
|
||||
32, // 36: provisionerd.CompletedJob.TemplateImport.stop_resources:type_name -> provisioner.Resource
|
||||
36, // 37: provisionerd.CompletedJob.TemplateImport.rich_parameters:type_name -> provisioner.RichParameter
|
||||
37, // 38: provisionerd.CompletedJob.TemplateImport.external_auth_providers:type_name -> provisioner.ExternalAuthProviderResource
|
||||
33, // 39: provisionerd.CompletedJob.TemplateImport.start_modules:type_name -> provisioner.Module
|
||||
33, // 40: provisionerd.CompletedJob.TemplateImport.stop_modules:type_name -> provisioner.Module
|
||||
38, // 41: provisionerd.CompletedJob.TemplateImport.presets:type_name -> provisioner.Preset
|
||||
32, // 42: provisionerd.CompletedJob.TemplateDryRun.resources:type_name -> provisioner.Resource
|
||||
33, // 43: provisionerd.CompletedJob.TemplateDryRun.modules:type_name -> provisioner.Module
|
||||
1, // 44: provisionerd.ProvisionerDaemon.AcquireJob:input_type -> provisionerd.Empty
|
||||
10, // 45: provisionerd.ProvisionerDaemon.AcquireJobWithCancel:input_type -> provisionerd.CancelAcquire
|
||||
8, // 46: provisionerd.ProvisionerDaemon.CommitQuota:input_type -> provisionerd.CommitQuotaRequest
|
||||
6, // 47: provisionerd.ProvisionerDaemon.UpdateJob:input_type -> provisionerd.UpdateJobRequest
|
||||
3, // 48: provisionerd.ProvisionerDaemon.FailJob:input_type -> provisionerd.FailedJob
|
||||
4, // 49: provisionerd.ProvisionerDaemon.CompleteJob:input_type -> provisionerd.CompletedJob
|
||||
11, // 50: provisionerd.ProvisionerDaemon.UploadFile:input_type -> provisionerd.UploadFileRequest
|
||||
26, // 17: provisionerd.FileRequest.upload_type:type_name -> provisioner.DataUploadType
|
||||
27, // 18: provisionerd.AcquiredJob.WorkspaceBuild.rich_parameter_values:type_name -> provisioner.RichParameterValue
|
||||
25, // 19: provisionerd.AcquiredJob.WorkspaceBuild.variable_values:type_name -> provisioner.VariableValue
|
||||
28, // 20: provisionerd.AcquiredJob.WorkspaceBuild.external_auth_providers:type_name -> provisioner.ExternalAuthProvider
|
||||
29, // 21: provisionerd.AcquiredJob.WorkspaceBuild.metadata:type_name -> provisioner.Metadata
|
||||
27, // 22: provisionerd.AcquiredJob.WorkspaceBuild.previous_parameter_values:type_name -> provisioner.RichParameterValue
|
||||
29, // 23: provisionerd.AcquiredJob.TemplateImport.metadata:type_name -> provisioner.Metadata
|
||||
25, // 24: provisionerd.AcquiredJob.TemplateImport.user_variable_values:type_name -> provisioner.VariableValue
|
||||
27, // 25: provisionerd.AcquiredJob.TemplateDryRun.rich_parameter_values:type_name -> provisioner.RichParameterValue
|
||||
25, // 26: provisionerd.AcquiredJob.TemplateDryRun.variable_values:type_name -> provisioner.VariableValue
|
||||
29, // 27: provisionerd.AcquiredJob.TemplateDryRun.metadata:type_name -> provisioner.Metadata
|
||||
30, // 28: provisionerd.FailedJob.WorkspaceBuild.timings:type_name -> provisioner.Timing
|
||||
31, // 29: provisionerd.CompletedJob.WorkspaceBuild.resources:type_name -> provisioner.Resource
|
||||
30, // 30: provisionerd.CompletedJob.WorkspaceBuild.timings:type_name -> provisioner.Timing
|
||||
32, // 31: provisionerd.CompletedJob.WorkspaceBuild.modules:type_name -> provisioner.Module
|
||||
33, // 32: provisionerd.CompletedJob.WorkspaceBuild.resource_replacements:type_name -> provisioner.ResourceReplacement
|
||||
34, // 33: provisionerd.CompletedJob.WorkspaceBuild.ai_tasks:type_name -> provisioner.AITask
|
||||
31, // 34: provisionerd.CompletedJob.TemplateImport.start_resources:type_name -> provisioner.Resource
|
||||
31, // 35: provisionerd.CompletedJob.TemplateImport.stop_resources:type_name -> provisioner.Resource
|
||||
35, // 36: provisionerd.CompletedJob.TemplateImport.rich_parameters:type_name -> provisioner.RichParameter
|
||||
36, // 37: provisionerd.CompletedJob.TemplateImport.external_auth_providers:type_name -> provisioner.ExternalAuthProviderResource
|
||||
32, // 38: provisionerd.CompletedJob.TemplateImport.start_modules:type_name -> provisioner.Module
|
||||
32, // 39: provisionerd.CompletedJob.TemplateImport.stop_modules:type_name -> provisioner.Module
|
||||
37, // 40: provisionerd.CompletedJob.TemplateImport.presets:type_name -> provisioner.Preset
|
||||
31, // 41: provisionerd.CompletedJob.TemplateDryRun.resources:type_name -> provisioner.Resource
|
||||
32, // 42: provisionerd.CompletedJob.TemplateDryRun.modules:type_name -> provisioner.Module
|
||||
1, // 43: provisionerd.ProvisionerDaemon.AcquireJob:input_type -> provisionerd.Empty
|
||||
10, // 44: provisionerd.ProvisionerDaemon.AcquireJobWithCancel:input_type -> provisionerd.CancelAcquire
|
||||
8, // 45: provisionerd.ProvisionerDaemon.CommitQuota:input_type -> provisionerd.CommitQuotaRequest
|
||||
6, // 46: provisionerd.ProvisionerDaemon.UpdateJob:input_type -> provisionerd.UpdateJobRequest
|
||||
3, // 47: provisionerd.ProvisionerDaemon.FailJob:input_type -> provisionerd.FailedJob
|
||||
4, // 48: provisionerd.ProvisionerDaemon.CompleteJob:input_type -> provisionerd.CompletedJob
|
||||
38, // 49: provisionerd.ProvisionerDaemon.UploadFile:input_type -> provisioner.FileUpload
|
||||
11, // 50: provisionerd.ProvisionerDaemon.DownloadFile:input_type -> provisionerd.FileRequest
|
||||
2, // 51: provisionerd.ProvisionerDaemon.AcquireJob:output_type -> provisionerd.AcquiredJob
|
||||
2, // 52: provisionerd.ProvisionerDaemon.AcquireJobWithCancel:output_type -> provisionerd.AcquiredJob
|
||||
9, // 53: provisionerd.ProvisionerDaemon.CommitQuota:output_type -> provisionerd.CommitQuotaResponse
|
||||
@@ -2034,11 +2009,12 @@ var file_provisionerd_proto_provisionerd_proto_depIdxs = []int32{
|
||||
1, // 55: provisionerd.ProvisionerDaemon.FailJob:output_type -> provisionerd.Empty
|
||||
1, // 56: provisionerd.ProvisionerDaemon.CompleteJob:output_type -> provisionerd.Empty
|
||||
1, // 57: provisionerd.ProvisionerDaemon.UploadFile:output_type -> provisionerd.Empty
|
||||
51, // [51:58] is the sub-list for method output_type
|
||||
44, // [44:51] is the sub-list for method input_type
|
||||
44, // [44:44] is the sub-list for extension type_name
|
||||
44, // [44:44] is the sub-list for extension extendee
|
||||
0, // [0:44] is the sub-list for field type_name
|
||||
38, // 58: provisionerd.ProvisionerDaemon.DownloadFile:output_type -> provisioner.FileUpload
|
||||
51, // [51:59] is the sub-list for method output_type
|
||||
43, // [43:51] is the sub-list for method input_type
|
||||
43, // [43:43] is the sub-list for extension type_name
|
||||
43, // [43:43] is the sub-list for extension extendee
|
||||
0, // [0:43] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_provisionerd_proto_provisionerd_proto_init() }
|
||||
@@ -2168,7 +2144,7 @@ func file_provisionerd_proto_provisionerd_proto_init() {
|
||||
}
|
||||
}
|
||||
file_provisionerd_proto_provisionerd_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UploadFileRequest); i {
|
||||
switch v := v.(*FileRequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
@@ -2303,10 +2279,6 @@ func file_provisionerd_proto_provisionerd_proto_init() {
|
||||
(*CompletedJob_TemplateImport_)(nil),
|
||||
(*CompletedJob_TemplateDryRun_)(nil),
|
||||
}
|
||||
file_provisionerd_proto_provisionerd_proto_msgTypes[10].OneofWrappers = []interface{}{
|
||||
(*UploadFileRequest_DataUpload)(nil),
|
||||
(*UploadFileRequest_ChunkPiece)(nil),
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
|
||||
@@ -159,11 +159,9 @@ message CommitQuotaResponse {
|
||||
|
||||
message CancelAcquire {}
|
||||
|
||||
message UploadFileRequest {
|
||||
oneof type {
|
||||
provisioner.DataUpload data_upload = 1;
|
||||
provisioner.ChunkPiece chunk_piece = 2;
|
||||
}
|
||||
message FileRequest {
|
||||
string file_id = 1;
|
||||
provisioner.DataUploadType upload_type = 2;
|
||||
}
|
||||
|
||||
service ProvisionerDaemon {
|
||||
@@ -196,5 +194,7 @@ service ProvisionerDaemon {
|
||||
|
||||
// UploadFile streams files to be inserted into the database.
|
||||
// The file upload_type should be used to determine how to handle the file.
|
||||
rpc UploadFile(stream UploadFileRequest) returns (Empty);
|
||||
rpc UploadFile(stream provisioner.FileUpload) returns (Empty);
|
||||
|
||||
rpc DownloadFile(FileRequest) returns (stream provisioner.FileUpload);
|
||||
}
|
||||
|
||||
+76
-7
@@ -7,6 +7,7 @@ package proto
|
||||
import (
|
||||
context "context"
|
||||
errors "errors"
|
||||
proto1 "github.com/coder/coder/v2/provisionersdk/proto"
|
||||
protojson "google.golang.org/protobuf/encoding/protojson"
|
||||
proto "google.golang.org/protobuf/proto"
|
||||
drpc "storj.io/drpc"
|
||||
@@ -45,6 +46,7 @@ type DRPCProvisionerDaemonClient interface {
|
||||
FailJob(ctx context.Context, in *FailedJob) (*Empty, error)
|
||||
CompleteJob(ctx context.Context, in *CompletedJob) (*Empty, error)
|
||||
UploadFile(ctx context.Context) (DRPCProvisionerDaemon_UploadFileClient, error)
|
||||
DownloadFile(ctx context.Context, in *FileRequest) (DRPCProvisionerDaemon_DownloadFileClient, error)
|
||||
}
|
||||
|
||||
type drpcProvisionerDaemonClient struct {
|
||||
@@ -152,7 +154,7 @@ func (c *drpcProvisionerDaemonClient) UploadFile(ctx context.Context) (DRPCProvi
|
||||
|
||||
type DRPCProvisionerDaemon_UploadFileClient interface {
|
||||
drpc.Stream
|
||||
Send(*UploadFileRequest) error
|
||||
Send(*proto1.FileUpload) error
|
||||
CloseAndRecv() (*Empty, error)
|
||||
}
|
||||
|
||||
@@ -164,7 +166,7 @@ func (x *drpcProvisionerDaemon_UploadFileClient) GetStream() drpc.Stream {
|
||||
return x.Stream
|
||||
}
|
||||
|
||||
func (x *drpcProvisionerDaemon_UploadFileClient) Send(m *UploadFileRequest) error {
|
||||
func (x *drpcProvisionerDaemon_UploadFileClient) Send(m *proto1.FileUpload) error {
|
||||
return x.MsgSend(m, drpcEncoding_File_provisionerd_proto_provisionerd_proto{})
|
||||
}
|
||||
|
||||
@@ -186,6 +188,46 @@ func (x *drpcProvisionerDaemon_UploadFileClient) CloseAndRecvMsg(m *Empty) error
|
||||
return x.MsgRecv(m, drpcEncoding_File_provisionerd_proto_provisionerd_proto{})
|
||||
}
|
||||
|
||||
func (c *drpcProvisionerDaemonClient) DownloadFile(ctx context.Context, in *FileRequest) (DRPCProvisionerDaemon_DownloadFileClient, error) {
|
||||
stream, err := c.cc.NewStream(ctx, "/provisionerd.ProvisionerDaemon/DownloadFile", drpcEncoding_File_provisionerd_proto_provisionerd_proto{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
x := &drpcProvisionerDaemon_DownloadFileClient{stream}
|
||||
if err := x.MsgSend(in, drpcEncoding_File_provisionerd_proto_provisionerd_proto{}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := x.CloseSend(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return x, nil
|
||||
}
|
||||
|
||||
type DRPCProvisionerDaemon_DownloadFileClient interface {
|
||||
drpc.Stream
|
||||
Recv() (*proto1.FileUpload, error)
|
||||
}
|
||||
|
||||
type drpcProvisionerDaemon_DownloadFileClient struct {
|
||||
drpc.Stream
|
||||
}
|
||||
|
||||
func (x *drpcProvisionerDaemon_DownloadFileClient) GetStream() drpc.Stream {
|
||||
return x.Stream
|
||||
}
|
||||
|
||||
func (x *drpcProvisionerDaemon_DownloadFileClient) Recv() (*proto1.FileUpload, error) {
|
||||
m := new(proto1.FileUpload)
|
||||
if err := x.MsgRecv(m, drpcEncoding_File_provisionerd_proto_provisionerd_proto{}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
func (x *drpcProvisionerDaemon_DownloadFileClient) RecvMsg(m *proto1.FileUpload) error {
|
||||
return x.MsgRecv(m, drpcEncoding_File_provisionerd_proto_provisionerd_proto{})
|
||||
}
|
||||
|
||||
type DRPCProvisionerDaemonServer interface {
|
||||
AcquireJob(context.Context, *Empty) (*AcquiredJob, error)
|
||||
AcquireJobWithCancel(DRPCProvisionerDaemon_AcquireJobWithCancelStream) error
|
||||
@@ -194,6 +236,7 @@ type DRPCProvisionerDaemonServer interface {
|
||||
FailJob(context.Context, *FailedJob) (*Empty, error)
|
||||
CompleteJob(context.Context, *CompletedJob) (*Empty, error)
|
||||
UploadFile(DRPCProvisionerDaemon_UploadFileStream) error
|
||||
DownloadFile(*FileRequest, DRPCProvisionerDaemon_DownloadFileStream) error
|
||||
}
|
||||
|
||||
type DRPCProvisionerDaemonUnimplementedServer struct{}
|
||||
@@ -226,9 +269,13 @@ func (s *DRPCProvisionerDaemonUnimplementedServer) UploadFile(DRPCProvisionerDae
|
||||
return drpcerr.WithCode(errors.New("Unimplemented"), drpcerr.Unimplemented)
|
||||
}
|
||||
|
||||
func (s *DRPCProvisionerDaemonUnimplementedServer) DownloadFile(*FileRequest, DRPCProvisionerDaemon_DownloadFileStream) error {
|
||||
return drpcerr.WithCode(errors.New("Unimplemented"), drpcerr.Unimplemented)
|
||||
}
|
||||
|
||||
type DRPCProvisionerDaemonDescription struct{}
|
||||
|
||||
func (DRPCProvisionerDaemonDescription) NumMethods() int { return 7 }
|
||||
func (DRPCProvisionerDaemonDescription) NumMethods() int { return 8 }
|
||||
|
||||
func (DRPCProvisionerDaemonDescription) Method(n int) (string, drpc.Encoding, drpc.Receiver, interface{}, bool) {
|
||||
switch n {
|
||||
@@ -293,6 +340,15 @@ func (DRPCProvisionerDaemonDescription) Method(n int) (string, drpc.Encoding, dr
|
||||
&drpcProvisionerDaemon_UploadFileStream{in1.(drpc.Stream)},
|
||||
)
|
||||
}, DRPCProvisionerDaemonServer.UploadFile, true
|
||||
case 7:
|
||||
return "/provisionerd.ProvisionerDaemon/DownloadFile", drpcEncoding_File_provisionerd_proto_provisionerd_proto{},
|
||||
func(srv interface{}, ctx context.Context, in1, in2 interface{}) (drpc.Message, error) {
|
||||
return nil, srv.(DRPCProvisionerDaemonServer).
|
||||
DownloadFile(
|
||||
in1.(*FileRequest),
|
||||
&drpcProvisionerDaemon_DownloadFileStream{in2.(drpc.Stream)},
|
||||
)
|
||||
}, DRPCProvisionerDaemonServer.DownloadFile, true
|
||||
default:
|
||||
return "", nil, nil, nil, false
|
||||
}
|
||||
@@ -411,7 +467,7 @@ func (x *drpcProvisionerDaemon_CompleteJobStream) SendAndClose(m *Empty) error {
|
||||
type DRPCProvisionerDaemon_UploadFileStream interface {
|
||||
drpc.Stream
|
||||
SendAndClose(*Empty) error
|
||||
Recv() (*UploadFileRequest, error)
|
||||
Recv() (*proto1.FileUpload, error)
|
||||
}
|
||||
|
||||
type drpcProvisionerDaemon_UploadFileStream struct {
|
||||
@@ -425,14 +481,27 @@ func (x *drpcProvisionerDaemon_UploadFileStream) SendAndClose(m *Empty) error {
|
||||
return x.CloseSend()
|
||||
}
|
||||
|
||||
func (x *drpcProvisionerDaemon_UploadFileStream) Recv() (*UploadFileRequest, error) {
|
||||
m := new(UploadFileRequest)
|
||||
func (x *drpcProvisionerDaemon_UploadFileStream) Recv() (*proto1.FileUpload, error) {
|
||||
m := new(proto1.FileUpload)
|
||||
if err := x.MsgRecv(m, drpcEncoding_File_provisionerd_proto_provisionerd_proto{}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
func (x *drpcProvisionerDaemon_UploadFileStream) RecvMsg(m *UploadFileRequest) error {
|
||||
func (x *drpcProvisionerDaemon_UploadFileStream) RecvMsg(m *proto1.FileUpload) error {
|
||||
return x.MsgRecv(m, drpcEncoding_File_provisionerd_proto_provisionerd_proto{})
|
||||
}
|
||||
|
||||
type DRPCProvisionerDaemon_DownloadFileStream interface {
|
||||
drpc.Stream
|
||||
Send(*proto1.FileUpload) error
|
||||
}
|
||||
|
||||
type drpcProvisionerDaemon_DownloadFileStream struct {
|
||||
drpc.Stream
|
||||
}
|
||||
|
||||
func (x *drpcProvisionerDaemon_DownloadFileStream) Send(m *proto1.FileUpload) error {
|
||||
return x.MsgSend(m, drpcEncoding_File_provisionerd_proto_provisionerd_proto{})
|
||||
}
|
||||
|
||||
@@ -65,9 +65,15 @@ import "github.com/coder/coder/v2/apiversion"
|
||||
//
|
||||
// API v1.13:
|
||||
// - Removed experimental fields `exp_reuse_terraform_workspace`. Caching moved into Coderd
|
||||
//
|
||||
// API v1.14:
|
||||
// - Added new field `template_version_modules_file` to Metadata
|
||||
// - Added `FailedFile` type for file upload failures.
|
||||
// - Add `DownloadFile` capability for provisioner daemons to fetch files from coderd.
|
||||
// - Moved type `UploadFileRequest` -> `provisioner.FileUpload`
|
||||
const (
|
||||
CurrentMajor = 1
|
||||
CurrentMinor = 13
|
||||
CurrentMinor = 14
|
||||
)
|
||||
|
||||
// CurrentVersion is the current provisionerd API version.
|
||||
|
||||
@@ -533,7 +533,7 @@ func (p *Server) UploadModuleFiles(ctx context.Context, moduleFiles []byte) erro
|
||||
|
||||
dataUp, chunks := sdkproto.BytesToDataUpload(sdkproto.DataUploadType_UPLOAD_TYPE_MODULE_FILES, moduleFiles)
|
||||
|
||||
err = stream.Send(&proto.UploadFileRequest{Type: &proto.UploadFileRequest_DataUpload{DataUpload: dataUp}})
|
||||
err = stream.Send(&sdkproto.FileUpload{Type: &sdkproto.FileUpload_DataUpload{DataUpload: dataUp}})
|
||||
if err != nil {
|
||||
if retryable(err) { // Do not retry
|
||||
return nil, xerrors.Errorf("send data upload: %s", err.Error())
|
||||
@@ -542,7 +542,7 @@ func (p *Server) UploadModuleFiles(ctx context.Context, moduleFiles []byte) erro
|
||||
}
|
||||
|
||||
for i, chunk := range chunks {
|
||||
err = stream.Send(&proto.UploadFileRequest{Type: &proto.UploadFileRequest_ChunkPiece{ChunkPiece: chunk}})
|
||||
err = stream.Send(&sdkproto.FileUpload{Type: &sdkproto.FileUpload_ChunkPiece{ChunkPiece: chunk}})
|
||||
if err != nil {
|
||||
if retryable(err) { // Do not retry
|
||||
return nil, xerrors.Errorf("send chunk piece: %s", err.Error())
|
||||
|
||||
@@ -1306,6 +1306,8 @@ func (p *provisionerDaemonTestServer) UploadFile(stream proto.DRPCProvisionerDae
|
||||
return p.uploadFile(stream)
|
||||
}
|
||||
|
||||
var _ proto.DRPCProvisionerDaemonServer = (*provisionerDaemonTestServer)(nil)
|
||||
|
||||
// Fulfills the protobuf interface for a ProvisionerDaemon with
|
||||
// passable functions for dynamic functionality.
|
||||
type provisionerDaemonTestServer struct {
|
||||
@@ -1315,6 +1317,11 @@ type provisionerDaemonTestServer struct {
|
||||
failJob func(ctx context.Context, job *proto.FailedJob) (*proto.Empty, error)
|
||||
completeJob func(ctx context.Context, job *proto.CompletedJob) (*proto.Empty, error)
|
||||
uploadFile func(stream proto.DRPCProvisionerDaemon_UploadFileStream) error
|
||||
downloadFile func(request *proto.FileRequest, stream proto.DRPCProvisionerDaemon_DownloadFileStream) error
|
||||
}
|
||||
|
||||
func (p *provisionerDaemonTestServer) DownloadFile(request *proto.FileRequest, stream proto.DRPCProvisionerDaemon_DownloadFileStream) error {
|
||||
return p.downloadFile(request, stream)
|
||||
}
|
||||
|
||||
func (*provisionerDaemonTestServer) AcquireJob(context.Context, *proto.Empty) (*proto.AcquiredJob, error) {
|
||||
|
||||
Reference in New Issue
Block a user