From 44f2c9fdf320ace83af6ca6854974cc8ed71d8f6 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Wed, 12 Nov 2025 09:29:45 -0800 Subject: [PATCH 01/21] chore(rpcapi): update packages service stubs --- .../rpcapi/terraform1/packages/packages.pb.go | 570 ++++++++++++++++-- .../rpcapi/terraform1/packages/packages.proto | 57 +- .../terraform1/packages/packages_grpc.pb.go | 124 +++- 3 files changed, 672 insertions(+), 79 deletions(-) diff --git a/internal/rpcapi/terraform1/packages/packages.pb.go b/internal/rpcapi/terraform1/packages/packages.pb.go index 228333455fcb..20b089305041 100644 --- a/internal/rpcapi/terraform1/packages/packages.pb.go +++ b/internal/rpcapi/terraform1/packages/packages.pb.go @@ -205,6 +205,114 @@ func (*FetchModulePackage) Descriptor() ([]byte, []int) { return file_packages_proto_rawDescGZIP(), []int{4} } +type ComponentPackageVersions struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentPackageVersions) Reset() { + *x = ComponentPackageVersions{} + mi := &file_packages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComponentPackageVersions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentPackageVersions) ProtoMessage() {} + +func (x *ComponentPackageVersions) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentPackageVersions.ProtoReflect.Descriptor instead. +func (*ComponentPackageVersions) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{5} +} + +type ComponentPackageSourceAddr struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentPackageSourceAddr) Reset() { + *x = ComponentPackageSourceAddr{} + mi := &file_packages_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComponentPackageSourceAddr) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentPackageSourceAddr) ProtoMessage() {} + +func (x *ComponentPackageSourceAddr) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentPackageSourceAddr.ProtoReflect.Descriptor instead. +func (*ComponentPackageSourceAddr) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{6} +} + +type FetchComponentPackage struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FetchComponentPackage) Reset() { + *x = FetchComponentPackage{} + mi := &file_packages_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FetchComponentPackage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchComponentPackage) ProtoMessage() {} + +func (x *FetchComponentPackage) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchComponentPackage.ProtoReflect.Descriptor instead. +func (*FetchComponentPackage) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{7} +} + type ProviderPackageVersions_Request struct { state protoimpl.MessageState `protogen:"open.v1"` SourceAddr string `protobuf:"bytes,1,opt,name=source_addr,json=sourceAddr,proto3" json:"source_addr,omitempty"` @@ -214,7 +322,7 @@ type ProviderPackageVersions_Request struct { func (x *ProviderPackageVersions_Request) Reset() { *x = ProviderPackageVersions_Request{} - mi := &file_packages_proto_msgTypes[5] + mi := &file_packages_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -226,7 +334,7 @@ func (x *ProviderPackageVersions_Request) String() string { func (*ProviderPackageVersions_Request) ProtoMessage() {} func (x *ProviderPackageVersions_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[5] + mi := &file_packages_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -259,7 +367,7 @@ type ProviderPackageVersions_Response struct { func (x *ProviderPackageVersions_Response) Reset() { *x = ProviderPackageVersions_Response{} - mi := &file_packages_proto_msgTypes[6] + mi := &file_packages_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -271,7 +379,7 @@ func (x *ProviderPackageVersions_Response) String() string { func (*ProviderPackageVersions_Response) ProtoMessage() {} func (x *ProviderPackageVersions_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[6] + mi := &file_packages_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -314,7 +422,7 @@ type FetchProviderPackage_Request struct { func (x *FetchProviderPackage_Request) Reset() { *x = FetchProviderPackage_Request{} - mi := &file_packages_proto_msgTypes[7] + mi := &file_packages_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -326,7 +434,7 @@ func (x *FetchProviderPackage_Request) String() string { func (*FetchProviderPackage_Request) ProtoMessage() {} func (x *FetchProviderPackage_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[7] + mi := &file_packages_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -392,7 +500,7 @@ type FetchProviderPackage_Response struct { func (x *FetchProviderPackage_Response) Reset() { *x = FetchProviderPackage_Response{} - mi := &file_packages_proto_msgTypes[8] + mi := &file_packages_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -404,7 +512,7 @@ func (x *FetchProviderPackage_Response) String() string { func (*FetchProviderPackage_Response) ProtoMessage() {} func (x *FetchProviderPackage_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[8] + mi := &file_packages_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -444,7 +552,7 @@ type FetchProviderPackage_PlatformResult struct { func (x *FetchProviderPackage_PlatformResult) Reset() { *x = FetchProviderPackage_PlatformResult{} - mi := &file_packages_proto_msgTypes[9] + mi := &file_packages_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -456,7 +564,7 @@ func (x *FetchProviderPackage_PlatformResult) String() string { func (*FetchProviderPackage_PlatformResult) ProtoMessage() {} func (x *FetchProviderPackage_PlatformResult) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[9] + mi := &file_packages_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -495,7 +603,7 @@ type ModulePackageVersions_Request struct { func (x *ModulePackageVersions_Request) Reset() { *x = ModulePackageVersions_Request{} - mi := &file_packages_proto_msgTypes[10] + mi := &file_packages_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -507,7 +615,7 @@ func (x *ModulePackageVersions_Request) String() string { func (*ModulePackageVersions_Request) ProtoMessage() {} func (x *ModulePackageVersions_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[10] + mi := &file_packages_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -540,7 +648,7 @@ type ModulePackageVersions_Response struct { func (x *ModulePackageVersions_Response) Reset() { *x = ModulePackageVersions_Response{} - mi := &file_packages_proto_msgTypes[11] + mi := &file_packages_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -552,7 +660,7 @@ func (x *ModulePackageVersions_Response) String() string { func (*ModulePackageVersions_Response) ProtoMessage() {} func (x *ModulePackageVersions_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[11] + mi := &file_packages_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -592,7 +700,7 @@ type ModulePackageSourceAddr_Request struct { func (x *ModulePackageSourceAddr_Request) Reset() { *x = ModulePackageSourceAddr_Request{} - mi := &file_packages_proto_msgTypes[12] + mi := &file_packages_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -604,7 +712,7 @@ func (x *ModulePackageSourceAddr_Request) String() string { func (*ModulePackageSourceAddr_Request) ProtoMessage() {} func (x *ModulePackageSourceAddr_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[12] + mi := &file_packages_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -644,7 +752,7 @@ type ModulePackageSourceAddr_Response struct { func (x *ModulePackageSourceAddr_Response) Reset() { *x = ModulePackageSourceAddr_Response{} - mi := &file_packages_proto_msgTypes[13] + mi := &file_packages_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -656,7 +764,7 @@ func (x *ModulePackageSourceAddr_Response) String() string { func (*ModulePackageSourceAddr_Response) ProtoMessage() {} func (x *ModulePackageSourceAddr_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[13] + mi := &file_packages_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -696,7 +804,7 @@ type FetchModulePackage_Request struct { func (x *FetchModulePackage_Request) Reset() { *x = FetchModulePackage_Request{} - mi := &file_packages_proto_msgTypes[14] + mi := &file_packages_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -708,7 +816,7 @@ func (x *FetchModulePackage_Request) String() string { func (*FetchModulePackage_Request) ProtoMessage() {} func (x *FetchModulePackage_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[14] + mi := &file_packages_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -747,7 +855,7 @@ type FetchModulePackage_Response struct { func (x *FetchModulePackage_Response) Reset() { *x = FetchModulePackage_Response{} - mi := &file_packages_proto_msgTypes[15] + mi := &file_packages_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -759,7 +867,7 @@ func (x *FetchModulePackage_Response) String() string { func (*FetchModulePackage_Response) ProtoMessage() {} func (x *FetchModulePackage_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[15] + mi := &file_packages_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -782,6 +890,302 @@ func (x *FetchModulePackage_Response) GetDiagnostics() []*terraform1.Diagnostic return nil } +type ComponentPackageVersions_Request struct { + state protoimpl.MessageState `protogen:"open.v1"` + SourceAddr string `protobuf:"bytes,2,opt,name=source_addr,json=sourceAddr,proto3" json:"source_addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentPackageVersions_Request) Reset() { + *x = ComponentPackageVersions_Request{} + mi := &file_packages_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComponentPackageVersions_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentPackageVersions_Request) ProtoMessage() {} + +func (x *ComponentPackageVersions_Request) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentPackageVersions_Request.ProtoReflect.Descriptor instead. +func (*ComponentPackageVersions_Request) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *ComponentPackageVersions_Request) GetSourceAddr() string { + if x != nil { + return x.SourceAddr + } + return "" +} + +type ComponentPackageVersions_Response struct { + state protoimpl.MessageState `protogen:"open.v1"` + Versions []string `protobuf:"bytes,1,rep,name=versions,proto3" json:"versions,omitempty"` + Diagnostics []*terraform1.Diagnostic `protobuf:"bytes,2,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentPackageVersions_Response) Reset() { + *x = ComponentPackageVersions_Response{} + mi := &file_packages_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComponentPackageVersions_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentPackageVersions_Response) ProtoMessage() {} + +func (x *ComponentPackageVersions_Response) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentPackageVersions_Response.ProtoReflect.Descriptor instead. +func (*ComponentPackageVersions_Response) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{5, 1} +} + +func (x *ComponentPackageVersions_Response) GetVersions() []string { + if x != nil { + return x.Versions + } + return nil +} + +func (x *ComponentPackageVersions_Response) GetDiagnostics() []*terraform1.Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +type ComponentPackageSourceAddr_Request struct { + state protoimpl.MessageState `protogen:"open.v1"` + SourceAddr string `protobuf:"bytes,1,opt,name=source_addr,json=sourceAddr,proto3" json:"source_addr,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentPackageSourceAddr_Request) Reset() { + *x = ComponentPackageSourceAddr_Request{} + mi := &file_packages_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComponentPackageSourceAddr_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentPackageSourceAddr_Request) ProtoMessage() {} + +func (x *ComponentPackageSourceAddr_Request) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentPackageSourceAddr_Request.ProtoReflect.Descriptor instead. +func (*ComponentPackageSourceAddr_Request) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *ComponentPackageSourceAddr_Request) GetSourceAddr() string { + if x != nil { + return x.SourceAddr + } + return "" +} + +func (x *ComponentPackageSourceAddr_Request) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type ComponentPackageSourceAddr_Response struct { + state protoimpl.MessageState `protogen:"open.v1"` + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + Diagnostics []*terraform1.Diagnostic `protobuf:"bytes,2,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentPackageSourceAddr_Response) Reset() { + *x = ComponentPackageSourceAddr_Response{} + mi := &file_packages_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComponentPackageSourceAddr_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentPackageSourceAddr_Response) ProtoMessage() {} + +func (x *ComponentPackageSourceAddr_Response) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentPackageSourceAddr_Response.ProtoReflect.Descriptor instead. +func (*ComponentPackageSourceAddr_Response) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{6, 1} +} + +func (x *ComponentPackageSourceAddr_Response) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *ComponentPackageSourceAddr_Response) GetDiagnostics() []*terraform1.Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +type FetchComponentPackage_Request struct { + state protoimpl.MessageState `protogen:"open.v1"` + CacheDir string `protobuf:"bytes,1,opt,name=cache_dir,json=cacheDir,proto3" json:"cache_dir,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FetchComponentPackage_Request) Reset() { + *x = FetchComponentPackage_Request{} + mi := &file_packages_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FetchComponentPackage_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchComponentPackage_Request) ProtoMessage() {} + +func (x *FetchComponentPackage_Request) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchComponentPackage_Request.ProtoReflect.Descriptor instead. +func (*FetchComponentPackage_Request) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *FetchComponentPackage_Request) GetCacheDir() string { + if x != nil { + return x.CacheDir + } + return "" +} + +func (x *FetchComponentPackage_Request) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type FetchComponentPackage_Response struct { + state protoimpl.MessageState `protogen:"open.v1"` + Diagnostics []*terraform1.Diagnostic `protobuf:"bytes,1,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FetchComponentPackage_Response) Reset() { + *x = FetchComponentPackage_Response{} + mi := &file_packages_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FetchComponentPackage_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchComponentPackage_Response) ProtoMessage() {} + +func (x *FetchComponentPackage_Response) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchComponentPackage_Response.ProtoReflect.Descriptor instead. +func (*FetchComponentPackage_Response) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{7, 1} +} + +func (x *FetchComponentPackage_Response) GetDiagnostics() []*terraform1.Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + var File_packages_proto protoreflect.FileDescriptor const file_packages_proto_rawDesc = "" + @@ -828,13 +1232,37 @@ const file_packages_proto_rawDesc = "" + "\tcache_dir\x18\x01 \x01(\tR\bcacheDir\x12\x10\n" + "\x03url\x18\x02 \x01(\tR\x03url\x1aD\n" + "\bResponse\x128\n" + - "\vdiagnostics\x18\x01 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics2\x97\x05\n" + + "\vdiagnostics\x18\x01 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\xa8\x01\n" + + "\x18ComponentPackageVersions\x1a*\n" + + "\aRequest\x12\x1f\n" + + "\vsource_addr\x18\x02 \x01(\tR\n" + + "sourceAddr\x1a`\n" + + "\bResponse\x12\x1a\n" + + "\bversions\x18\x01 \x03(\tR\bversions\x128\n" + + "\vdiagnostics\x18\x02 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\xba\x01\n" + + "\x1aComponentPackageSourceAddr\x1aD\n" + + "\aRequest\x12\x1f\n" + + "\vsource_addr\x18\x01 \x01(\tR\n" + + "sourceAddr\x12\x18\n" + + "\aversion\x18\x02 \x01(\tR\aversion\x1aV\n" + + "\bResponse\x12\x10\n" + + "\x03url\x18\x01 \x01(\tR\x03url\x128\n" + + "\vdiagnostics\x18\x02 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\x97\x01\n" + + "\x15FetchComponentPackage\x1a8\n" + + "\aRequest\x12\x1b\n" + + "\tcache_dir\x18\x01 \x01(\tR\bcacheDir\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x1aD\n" + + "\bResponse\x128\n" + + "\vdiagnostics\x18\x01 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics2\xb8\b\n" + "\bPackages\x12\x86\x01\n" + "\x17ProviderPackageVersions\x124.terraform1.packages.ProviderPackageVersions.Request\x1a5.terraform1.packages.ProviderPackageVersions.Response\x12}\n" + "\x14FetchProviderPackage\x121.terraform1.packages.FetchProviderPackage.Request\x1a2.terraform1.packages.FetchProviderPackage.Response\x12\x80\x01\n" + "\x15ModulePackageVersions\x122.terraform1.packages.ModulePackageVersions.Request\x1a3.terraform1.packages.ModulePackageVersions.Response\x12\x86\x01\n" + "\x17ModulePackageSourceAddr\x124.terraform1.packages.ModulePackageSourceAddr.Request\x1a5.terraform1.packages.ModulePackageSourceAddr.Response\x12w\n" + - "\x12FetchModulePackage\x12/.terraform1.packages.FetchModulePackage.Request\x1a0.terraform1.packages.FetchModulePackage.Responseb\x06proto3" + "\x12FetchModulePackage\x12/.terraform1.packages.FetchModulePackage.Request\x1a0.terraform1.packages.FetchModulePackage.Response\x12\x89\x01\n" + + "\x18ComponentPackageVersions\x125.terraform1.packages.ComponentPackageVersions.Request\x1a6.terraform1.packages.ComponentPackageVersions.Response\x12\x8f\x01\n" + + "\x1aComponentPackageSourceAddr\x127.terraform1.packages.ComponentPackageSourceAddr.Request\x1a8.terraform1.packages.ComponentPackageSourceAddr.Response\x12\x80\x01\n" + + "\x15FetchComponentPackage\x122.terraform1.packages.FetchComponentPackage.Request\x1a3.terraform1.packages.FetchComponentPackage.Responseb\x06proto3" var ( file_packages_proto_rawDescOnce sync.Once @@ -848,51 +1276,69 @@ func file_packages_proto_rawDescGZIP() []byte { return file_packages_proto_rawDescData } -var file_packages_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_packages_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_packages_proto_goTypes = []any{ (*ProviderPackageVersions)(nil), // 0: terraform1.packages.ProviderPackageVersions (*FetchProviderPackage)(nil), // 1: terraform1.packages.FetchProviderPackage (*ModulePackageVersions)(nil), // 2: terraform1.packages.ModulePackageVersions (*ModulePackageSourceAddr)(nil), // 3: terraform1.packages.ModulePackageSourceAddr (*FetchModulePackage)(nil), // 4: terraform1.packages.FetchModulePackage - (*ProviderPackageVersions_Request)(nil), // 5: terraform1.packages.ProviderPackageVersions.Request - (*ProviderPackageVersions_Response)(nil), // 6: terraform1.packages.ProviderPackageVersions.Response - (*FetchProviderPackage_Request)(nil), // 7: terraform1.packages.FetchProviderPackage.Request - (*FetchProviderPackage_Response)(nil), // 8: terraform1.packages.FetchProviderPackage.Response - (*FetchProviderPackage_PlatformResult)(nil), // 9: terraform1.packages.FetchProviderPackage.PlatformResult - (*ModulePackageVersions_Request)(nil), // 10: terraform1.packages.ModulePackageVersions.Request - (*ModulePackageVersions_Response)(nil), // 11: terraform1.packages.ModulePackageVersions.Response - (*ModulePackageSourceAddr_Request)(nil), // 12: terraform1.packages.ModulePackageSourceAddr.Request - (*ModulePackageSourceAddr_Response)(nil), // 13: terraform1.packages.ModulePackageSourceAddr.Response - (*FetchModulePackage_Request)(nil), // 14: terraform1.packages.FetchModulePackage.Request - (*FetchModulePackage_Response)(nil), // 15: terraform1.packages.FetchModulePackage.Response - (*terraform1.Diagnostic)(nil), // 16: terraform1.Diagnostic - (*terraform1.ProviderPackage)(nil), // 17: terraform1.ProviderPackage + (*ComponentPackageVersions)(nil), // 5: terraform1.packages.ComponentPackageVersions + (*ComponentPackageSourceAddr)(nil), // 6: terraform1.packages.ComponentPackageSourceAddr + (*FetchComponentPackage)(nil), // 7: terraform1.packages.FetchComponentPackage + (*ProviderPackageVersions_Request)(nil), // 8: terraform1.packages.ProviderPackageVersions.Request + (*ProviderPackageVersions_Response)(nil), // 9: terraform1.packages.ProviderPackageVersions.Response + (*FetchProviderPackage_Request)(nil), // 10: terraform1.packages.FetchProviderPackage.Request + (*FetchProviderPackage_Response)(nil), // 11: terraform1.packages.FetchProviderPackage.Response + (*FetchProviderPackage_PlatformResult)(nil), // 12: terraform1.packages.FetchProviderPackage.PlatformResult + (*ModulePackageVersions_Request)(nil), // 13: terraform1.packages.ModulePackageVersions.Request + (*ModulePackageVersions_Response)(nil), // 14: terraform1.packages.ModulePackageVersions.Response + (*ModulePackageSourceAddr_Request)(nil), // 15: terraform1.packages.ModulePackageSourceAddr.Request + (*ModulePackageSourceAddr_Response)(nil), // 16: terraform1.packages.ModulePackageSourceAddr.Response + (*FetchModulePackage_Request)(nil), // 17: terraform1.packages.FetchModulePackage.Request + (*FetchModulePackage_Response)(nil), // 18: terraform1.packages.FetchModulePackage.Response + (*ComponentPackageVersions_Request)(nil), // 19: terraform1.packages.ComponentPackageVersions.Request + (*ComponentPackageVersions_Response)(nil), // 20: terraform1.packages.ComponentPackageVersions.Response + (*ComponentPackageSourceAddr_Request)(nil), // 21: terraform1.packages.ComponentPackageSourceAddr.Request + (*ComponentPackageSourceAddr_Response)(nil), // 22: terraform1.packages.ComponentPackageSourceAddr.Response + (*FetchComponentPackage_Request)(nil), // 23: terraform1.packages.FetchComponentPackage.Request + (*FetchComponentPackage_Response)(nil), // 24: terraform1.packages.FetchComponentPackage.Response + (*terraform1.Diagnostic)(nil), // 25: terraform1.Diagnostic + (*terraform1.ProviderPackage)(nil), // 26: terraform1.ProviderPackage } var file_packages_proto_depIdxs = []int32{ - 16, // 0: terraform1.packages.ProviderPackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic - 9, // 1: terraform1.packages.FetchProviderPackage.Response.results:type_name -> terraform1.packages.FetchProviderPackage.PlatformResult - 16, // 2: terraform1.packages.FetchProviderPackage.Response.diagnostics:type_name -> terraform1.Diagnostic - 17, // 3: terraform1.packages.FetchProviderPackage.PlatformResult.provider:type_name -> terraform1.ProviderPackage - 16, // 4: terraform1.packages.FetchProviderPackage.PlatformResult.diagnostics:type_name -> terraform1.Diagnostic - 16, // 5: terraform1.packages.ModulePackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic - 16, // 6: terraform1.packages.ModulePackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic - 16, // 7: terraform1.packages.FetchModulePackage.Response.diagnostics:type_name -> terraform1.Diagnostic - 5, // 8: terraform1.packages.Packages.ProviderPackageVersions:input_type -> terraform1.packages.ProviderPackageVersions.Request - 7, // 9: terraform1.packages.Packages.FetchProviderPackage:input_type -> terraform1.packages.FetchProviderPackage.Request - 10, // 10: terraform1.packages.Packages.ModulePackageVersions:input_type -> terraform1.packages.ModulePackageVersions.Request - 12, // 11: terraform1.packages.Packages.ModulePackageSourceAddr:input_type -> terraform1.packages.ModulePackageSourceAddr.Request - 14, // 12: terraform1.packages.Packages.FetchModulePackage:input_type -> terraform1.packages.FetchModulePackage.Request - 6, // 13: terraform1.packages.Packages.ProviderPackageVersions:output_type -> terraform1.packages.ProviderPackageVersions.Response - 8, // 14: terraform1.packages.Packages.FetchProviderPackage:output_type -> terraform1.packages.FetchProviderPackage.Response - 11, // 15: terraform1.packages.Packages.ModulePackageVersions:output_type -> terraform1.packages.ModulePackageVersions.Response - 13, // 16: terraform1.packages.Packages.ModulePackageSourceAddr:output_type -> terraform1.packages.ModulePackageSourceAddr.Response - 15, // 17: terraform1.packages.Packages.FetchModulePackage:output_type -> terraform1.packages.FetchModulePackage.Response - 13, // [13:18] is the sub-list for method output_type - 8, // [8:13] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 25, // 0: terraform1.packages.ProviderPackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic + 12, // 1: terraform1.packages.FetchProviderPackage.Response.results:type_name -> terraform1.packages.FetchProviderPackage.PlatformResult + 25, // 2: terraform1.packages.FetchProviderPackage.Response.diagnostics:type_name -> terraform1.Diagnostic + 26, // 3: terraform1.packages.FetchProviderPackage.PlatformResult.provider:type_name -> terraform1.ProviderPackage + 25, // 4: terraform1.packages.FetchProviderPackage.PlatformResult.diagnostics:type_name -> terraform1.Diagnostic + 25, // 5: terraform1.packages.ModulePackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic + 25, // 6: terraform1.packages.ModulePackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic + 25, // 7: terraform1.packages.FetchModulePackage.Response.diagnostics:type_name -> terraform1.Diagnostic + 25, // 8: terraform1.packages.ComponentPackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic + 25, // 9: terraform1.packages.ComponentPackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic + 25, // 10: terraform1.packages.FetchComponentPackage.Response.diagnostics:type_name -> terraform1.Diagnostic + 8, // 11: terraform1.packages.Packages.ProviderPackageVersions:input_type -> terraform1.packages.ProviderPackageVersions.Request + 10, // 12: terraform1.packages.Packages.FetchProviderPackage:input_type -> terraform1.packages.FetchProviderPackage.Request + 13, // 13: terraform1.packages.Packages.ModulePackageVersions:input_type -> terraform1.packages.ModulePackageVersions.Request + 15, // 14: terraform1.packages.Packages.ModulePackageSourceAddr:input_type -> terraform1.packages.ModulePackageSourceAddr.Request + 17, // 15: terraform1.packages.Packages.FetchModulePackage:input_type -> terraform1.packages.FetchModulePackage.Request + 19, // 16: terraform1.packages.Packages.ComponentPackageVersions:input_type -> terraform1.packages.ComponentPackageVersions.Request + 21, // 17: terraform1.packages.Packages.ComponentPackageSourceAddr:input_type -> terraform1.packages.ComponentPackageSourceAddr.Request + 23, // 18: terraform1.packages.Packages.FetchComponentPackage:input_type -> terraform1.packages.FetchComponentPackage.Request + 9, // 19: terraform1.packages.Packages.ProviderPackageVersions:output_type -> terraform1.packages.ProviderPackageVersions.Response + 11, // 20: terraform1.packages.Packages.FetchProviderPackage:output_type -> terraform1.packages.FetchProviderPackage.Response + 14, // 21: terraform1.packages.Packages.ModulePackageVersions:output_type -> terraform1.packages.ModulePackageVersions.Response + 16, // 22: terraform1.packages.Packages.ModulePackageSourceAddr:output_type -> terraform1.packages.ModulePackageSourceAddr.Response + 18, // 23: terraform1.packages.Packages.FetchModulePackage:output_type -> terraform1.packages.FetchModulePackage.Response + 20, // 24: terraform1.packages.Packages.ComponentPackageVersions:output_type -> terraform1.packages.ComponentPackageVersions.Response + 22, // 25: terraform1.packages.Packages.ComponentPackageSourceAddr:output_type -> terraform1.packages.ComponentPackageSourceAddr.Response + 24, // 26: terraform1.packages.Packages.FetchComponentPackage:output_type -> terraform1.packages.FetchComponentPackage.Response + 19, // [19:27] is the sub-list for method output_type + 11, // [11:19] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_packages_proto_init() } @@ -906,7 +1352,7 @@ func file_packages_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_packages_proto_rawDesc), len(file_packages_proto_rawDesc)), NumEnums: 0, - NumMessages: 16, + NumMessages: 25, NumExtensions: 0, NumServices: 1, }, diff --git a/internal/rpcapi/terraform1/packages/packages.proto b/internal/rpcapi/terraform1/packages/packages.proto index d90d3dc033b4..f0542090eb51 100644 --- a/internal/rpcapi/terraform1/packages/packages.proto +++ b/internal/rpcapi/terraform1/packages/packages.proto @@ -16,18 +16,28 @@ import "terraform1.proto"; // currently experimental. It can be changed and removed without warning, even // in patch releases. service Packages { - rpc ProviderPackageVersions(ProviderPackageVersions.Request) returns (ProviderPackageVersions.Response); - rpc FetchProviderPackage(FetchProviderPackage.Request) returns (FetchProviderPackage.Response); + rpc ProviderPackageVersions(ProviderPackageVersions.Request) + returns (ProviderPackageVersions.Response); + rpc FetchProviderPackage(FetchProviderPackage.Request) + returns (FetchProviderPackage.Response); - rpc ModulePackageVersions(ModulePackageVersions.Request) returns (ModulePackageVersions.Response); - rpc ModulePackageSourceAddr(ModulePackageSourceAddr.Request) returns (ModulePackageSourceAddr.Response); - rpc FetchModulePackage(FetchModulePackage.Request) returns (FetchModulePackage.Response); + rpc ModulePackageVersions(ModulePackageVersions.Request) + returns (ModulePackageVersions.Response); + rpc ModulePackageSourceAddr(ModulePackageSourceAddr.Request) + returns (ModulePackageSourceAddr.Response); + rpc FetchModulePackage(FetchModulePackage.Request) + returns (FetchModulePackage.Response); + + rpc ComponentPackageVersions(ComponentPackageVersions.Request) + returns (ComponentPackageVersions.Response); + rpc ComponentPackageSourceAddr(ComponentPackageSourceAddr.Request) + returns (ComponentPackageSourceAddr.Response); + rpc FetchComponentPackage(FetchComponentPackage.Request) + returns (FetchComponentPackage.Response); } message ProviderPackageVersions { - message Request { - string source_addr = 1; - } + message Request { string source_addr = 1; } message Response { repeated string versions = 1; repeated terraform1.Diagnostic diagnostics = 2; @@ -59,9 +69,7 @@ message FetchProviderPackage { } message ModulePackageVersions { - message Request { - string source_addr = 2; - } + message Request { string source_addr = 2; } message Response { repeated string versions = 1; repeated terraform1.Diagnostic diagnostics = 2; @@ -85,7 +93,32 @@ message FetchModulePackage { string url = 2; } + message Response { repeated terraform1.Diagnostic diagnostics = 1; } +} + +message ComponentPackageVersions { + message Request { string source_addr = 2; } message Response { - repeated terraform1.Diagnostic diagnostics = 1; + repeated string versions = 1; + repeated terraform1.Diagnostic diagnostics = 2; + } +} + +message ComponentPackageSourceAddr { + message Request { + string source_addr = 1; + string version = 2; + } + message Response { + string url = 1; + repeated terraform1.Diagnostic diagnostics = 2; + } +} + +message FetchComponentPackage { + message Request { + string cache_dir = 1; + string url = 2; } + message Response { repeated terraform1.Diagnostic diagnostics = 1; } } diff --git a/internal/rpcapi/terraform1/packages/packages_grpc.pb.go b/internal/rpcapi/terraform1/packages/packages_grpc.pb.go index 8baf5024bdf8..3dc987f1f795 100644 --- a/internal/rpcapi/terraform1/packages/packages_grpc.pb.go +++ b/internal/rpcapi/terraform1/packages/packages_grpc.pb.go @@ -22,11 +22,14 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - Packages_ProviderPackageVersions_FullMethodName = "/terraform1.packages.Packages/ProviderPackageVersions" - Packages_FetchProviderPackage_FullMethodName = "/terraform1.packages.Packages/FetchProviderPackage" - Packages_ModulePackageVersions_FullMethodName = "/terraform1.packages.Packages/ModulePackageVersions" - Packages_ModulePackageSourceAddr_FullMethodName = "/terraform1.packages.Packages/ModulePackageSourceAddr" - Packages_FetchModulePackage_FullMethodName = "/terraform1.packages.Packages/FetchModulePackage" + Packages_ProviderPackageVersions_FullMethodName = "/terraform1.packages.Packages/ProviderPackageVersions" + Packages_FetchProviderPackage_FullMethodName = "/terraform1.packages.Packages/FetchProviderPackage" + Packages_ModulePackageVersions_FullMethodName = "/terraform1.packages.Packages/ModulePackageVersions" + Packages_ModulePackageSourceAddr_FullMethodName = "/terraform1.packages.Packages/ModulePackageSourceAddr" + Packages_FetchModulePackage_FullMethodName = "/terraform1.packages.Packages/FetchModulePackage" + Packages_ComponentPackageVersions_FullMethodName = "/terraform1.packages.Packages/ComponentPackageVersions" + Packages_ComponentPackageSourceAddr_FullMethodName = "/terraform1.packages.Packages/ComponentPackageSourceAddr" + Packages_FetchComponentPackage_FullMethodName = "/terraform1.packages.Packages/FetchComponentPackage" ) // PackagesClient is the client API for Packages service. @@ -50,6 +53,9 @@ type PackagesClient interface { ModulePackageVersions(ctx context.Context, in *ModulePackageVersions_Request, opts ...grpc.CallOption) (*ModulePackageVersions_Response, error) ModulePackageSourceAddr(ctx context.Context, in *ModulePackageSourceAddr_Request, opts ...grpc.CallOption) (*ModulePackageSourceAddr_Response, error) FetchModulePackage(ctx context.Context, in *FetchModulePackage_Request, opts ...grpc.CallOption) (*FetchModulePackage_Response, error) + ComponentPackageVersions(ctx context.Context, in *ComponentPackageVersions_Request, opts ...grpc.CallOption) (*ComponentPackageVersions_Response, error) + ComponentPackageSourceAddr(ctx context.Context, in *ComponentPackageSourceAddr_Request, opts ...grpc.CallOption) (*ComponentPackageSourceAddr_Response, error) + FetchComponentPackage(ctx context.Context, in *FetchComponentPackage_Request, opts ...grpc.CallOption) (*FetchComponentPackage_Response, error) } type packagesClient struct { @@ -110,6 +116,36 @@ func (c *packagesClient) FetchModulePackage(ctx context.Context, in *FetchModule return out, nil } +func (c *packagesClient) ComponentPackageVersions(ctx context.Context, in *ComponentPackageVersions_Request, opts ...grpc.CallOption) (*ComponentPackageVersions_Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ComponentPackageVersions_Response) + err := c.cc.Invoke(ctx, Packages_ComponentPackageVersions_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *packagesClient) ComponentPackageSourceAddr(ctx context.Context, in *ComponentPackageSourceAddr_Request, opts ...grpc.CallOption) (*ComponentPackageSourceAddr_Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ComponentPackageSourceAddr_Response) + err := c.cc.Invoke(ctx, Packages_ComponentPackageSourceAddr_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *packagesClient) FetchComponentPackage(ctx context.Context, in *FetchComponentPackage_Request, opts ...grpc.CallOption) (*FetchComponentPackage_Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(FetchComponentPackage_Response) + err := c.cc.Invoke(ctx, Packages_FetchComponentPackage_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // PackagesServer is the server API for Packages service. // All implementations must embed UnimplementedPackagesServer // for forward compatibility. @@ -131,6 +167,9 @@ type PackagesServer interface { ModulePackageVersions(context.Context, *ModulePackageVersions_Request) (*ModulePackageVersions_Response, error) ModulePackageSourceAddr(context.Context, *ModulePackageSourceAddr_Request) (*ModulePackageSourceAddr_Response, error) FetchModulePackage(context.Context, *FetchModulePackage_Request) (*FetchModulePackage_Response, error) + ComponentPackageVersions(context.Context, *ComponentPackageVersions_Request) (*ComponentPackageVersions_Response, error) + ComponentPackageSourceAddr(context.Context, *ComponentPackageSourceAddr_Request) (*ComponentPackageSourceAddr_Response, error) + FetchComponentPackage(context.Context, *FetchComponentPackage_Request) (*FetchComponentPackage_Response, error) mustEmbedUnimplementedPackagesServer() } @@ -156,6 +195,15 @@ func (UnimplementedPackagesServer) ModulePackageSourceAddr(context.Context, *Mod func (UnimplementedPackagesServer) FetchModulePackage(context.Context, *FetchModulePackage_Request) (*FetchModulePackage_Response, error) { return nil, status.Errorf(codes.Unimplemented, "method FetchModulePackage not implemented") } +func (UnimplementedPackagesServer) ComponentPackageVersions(context.Context, *ComponentPackageVersions_Request) (*ComponentPackageVersions_Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method ComponentPackageVersions not implemented") +} +func (UnimplementedPackagesServer) ComponentPackageSourceAddr(context.Context, *ComponentPackageSourceAddr_Request) (*ComponentPackageSourceAddr_Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method ComponentPackageSourceAddr not implemented") +} +func (UnimplementedPackagesServer) FetchComponentPackage(context.Context, *FetchComponentPackage_Request) (*FetchComponentPackage_Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method FetchComponentPackage not implemented") +} func (UnimplementedPackagesServer) mustEmbedUnimplementedPackagesServer() {} func (UnimplementedPackagesServer) testEmbeddedByValue() {} @@ -267,6 +315,60 @@ func _Packages_FetchModulePackage_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Packages_ComponentPackageVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ComponentPackageVersions_Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PackagesServer).ComponentPackageVersions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Packages_ComponentPackageVersions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PackagesServer).ComponentPackageVersions(ctx, req.(*ComponentPackageVersions_Request)) + } + return interceptor(ctx, in, info, handler) +} + +func _Packages_ComponentPackageSourceAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ComponentPackageSourceAddr_Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PackagesServer).ComponentPackageSourceAddr(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Packages_ComponentPackageSourceAddr_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PackagesServer).ComponentPackageSourceAddr(ctx, req.(*ComponentPackageSourceAddr_Request)) + } + return interceptor(ctx, in, info, handler) +} + +func _Packages_FetchComponentPackage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FetchComponentPackage_Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PackagesServer).FetchComponentPackage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Packages_FetchComponentPackage_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PackagesServer).FetchComponentPackage(ctx, req.(*FetchComponentPackage_Request)) + } + return interceptor(ctx, in, info, handler) +} + // Packages_ServiceDesc is the grpc.ServiceDesc for Packages service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -294,6 +396,18 @@ var Packages_ServiceDesc = grpc.ServiceDesc{ MethodName: "FetchModulePackage", Handler: _Packages_FetchModulePackage_Handler, }, + { + MethodName: "ComponentPackageVersions", + Handler: _Packages_ComponentPackageVersions_Handler, + }, + { + MethodName: "ComponentPackageSourceAddr", + Handler: _Packages_ComponentPackageSourceAddr_Handler, + }, + { + MethodName: "FetchComponentPackage", + Handler: _Packages_FetchComponentPackage_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "packages.proto", From 1ed45c6f9f642a0a770d0043b53897d2ef871c24 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Wed, 12 Nov 2025 09:30:30 -0800 Subject: [PATCH 02/21] fix(rpcapi): update dynrpcserver packages --- internal/rpcapi/dynrpcserver/packages.go | 24 +++++++ internal/rpcapi/packages.go | 87 ++++++++++++++++++++++++ 2 files changed, 111 insertions(+) diff --git a/internal/rpcapi/dynrpcserver/packages.go b/internal/rpcapi/dynrpcserver/packages.go index 31f4a4f8596a..5ba5061a5243 100644 --- a/internal/rpcapi/dynrpcserver/packages.go +++ b/internal/rpcapi/dynrpcserver/packages.go @@ -23,6 +23,30 @@ func NewPackagesStub() *Packages { return &Packages{} } +func (s *Packages) ComponentPackageSourceAddr(a0 context.Context, a1 *packages.ComponentPackageSourceAddr_Request) (*packages.ComponentPackageSourceAddr_Response, error) { + impl, err := s.realRPCServer() + if err != nil { + return nil, err + } + return impl.ComponentPackageSourceAddr(a0, a1) +} + +func (s *Packages) ComponentPackageVersions(a0 context.Context, a1 *packages.ComponentPackageVersions_Request) (*packages.ComponentPackageVersions_Response, error) { + impl, err := s.realRPCServer() + if err != nil { + return nil, err + } + return impl.ComponentPackageVersions(a0, a1) +} + +func (s *Packages) FetchComponentPackage(a0 context.Context, a1 *packages.FetchComponentPackage_Request) (*packages.FetchComponentPackage_Response, error) { + impl, err := s.realRPCServer() + if err != nil { + return nil, err + } + return impl.FetchComponentPackage(a0, a1) +} + func (s *Packages) FetchModulePackage(a0 context.Context, a1 *packages.FetchModulePackage_Request) (*packages.FetchModulePackage_Response, error) { impl, err := s.realRPCServer() if err != nil { diff --git a/internal/rpcapi/packages.go b/internal/rpcapi/packages.go index dac2d2bcc3f9..e5211859ad8b 100644 --- a/internal/rpcapi/packages.go +++ b/internal/rpcapi/packages.go @@ -9,6 +9,7 @@ import ( "strings" "github.com/apparentlymart/go-versions/versions" + regaddrs "github.com/hashicorp/terraform-registry-address" "github.com/hashicorp/terraform-svchost/disco" "github.com/hashicorp/terraform/internal/addrs" @@ -255,3 +256,89 @@ func (p *packagesServer) FetchModulePackage(ctx context.Context, request *packag return response, nil } + +// TODO: finish impl +func (p *packagesServer) ComponentPackageVersions(ctx context.Context, request *packages.ComponentPackageVersions_Request) (*packages.ComponentPackageVersions_Response, error) { + response := new(packages.ComponentPackageVersions_Response) + compAddrs, err := regaddrs.ParseComponentSource(request.SourceAddr) + if err != nil { + response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ + Severity: terraform1.Diagnostic_ERROR, + Summary: "Invalid component source", + Detail: fmt.Sprintf("Component source %s is invalid: %s.", request.SourceAddr, err), + }) + return response, nil + } + + client := registry.NewClient(p.services, nil) + pkgVersionsRes, err := client.ComponentPackageVersions(ctx, compAddrs.Package) + if err != nil { + response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ + Severity: terraform1.Diagnostic_ERROR, + Summary: "Failed to query available component packages", + Detail: fmt.Sprintf("Could not retrieve the list of available modules for module %s: %s.", compAddrs.ForDisplay(), err), + }) + } + + for _, comp := range pkgVersionsRes.Versions { + response.Versions = append(response.Versions, comp.Version.String()) + } + + return response, nil +} + +// TODO: finish impl +func (p *packagesServer) ComponentPackageSourceAddr(ctx context.Context, request *packages.ComponentPackageSourceAddr_Request) (*packages.ComponentPackageSourceAddr_Response, error) { + response := new(packages.ComponentPackageSourceAddr_Response) + + comp, err := regaddrs.ParseComponentSource(request.SourceAddr) + if err != nil { + response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ + Severity: terraform1.Diagnostic_ERROR, + Summary: "Invalid Component Sources", + Detail: fmt.Sprintf("Component source %s is invalid: %s", request.SourceAddr, err), + }) + return response, err + } + + version, err := versions.ParseVersion(request.Version) + if err != nil { + response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ + Severity: terraform1.Diagnostic_ERROR, + Summary: "Invalid Component Version", + Detail: fmt.Sprintf("Component version %s is invalid: %s", request.Version, err), + }) + } + + client := registry.NewClient(p.services, nil) + compPkgRes, err := client.ComponentPackageSourceAddr(ctx, comp.Package, version) + if err != nil { + response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ + Severity: terraform1.Diagnostic_ERROR, + Summary: "Failed to query component package metadata", + Detail: fmt.Sprintf("Could not retrieve package metadata for provider %s at %s: %s", comp.ForDisplay(), request.Version, err), + }) + return response, nil + } + + response.Url = compPkgRes.SourceAddr.String() + + return response, nil +} + +// TODO: finish impl +func (p *packagesServer) FetchComponentPackage(ctx context.Context, request *packages.FetchComponentPackage_Request) (*packages.FetchComponentPackage_Response, error) { + response := new(packages.FetchComponentPackage_Response) + + fetcher := getmodules.NewPackageFetcher() + if err := fetcher.FetchPackage(ctx, request.CacheDir, request.Url); err != nil { + response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ + Severity: terraform1.Diagnostic_ERROR, + Summary: "Failed to download component package", + Detail: fmt.Sprintf("Could not download provider from %s: %s.", request.Url, err), + }) + return response, nil + } + + return response, nil +} From a21a0af187da3b0ffebfbef07ec1617a1f812e0a Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Wed, 12 Nov 2025 09:31:04 -0800 Subject: [PATCH 03/21] feat: implement registry client methods for comps --- internal/registry/client.go | 176 ++++++++++++++++++++++++++ internal/stacks/stackconfig/config.go | 29 +++++ 2 files changed, 205 insertions(+) diff --git a/internal/registry/client.go b/internal/registry/client.go index 7ade442c1a63..b78566eb85dc 100644 --- a/internal/registry/client.go +++ b/internal/registry/client.go @@ -7,6 +7,7 @@ import ( "context" "encoding/json" "fmt" + "io" "io/ioutil" "log" "net/http" @@ -17,7 +18,11 @@ import ( "strings" "time" + "github.com/apparentlymart/go-versions/versions" "github.com/hashicorp/go-retryablehttp" + sourceaddrs "github.com/hashicorp/go-slug/sourceaddrs" + sourcebundle "github.com/hashicorp/go-slug/sourcebundle" + regaddr "github.com/hashicorp/terraform-registry-address" svchost "github.com/hashicorp/terraform-svchost" "github.com/hashicorp/terraform-svchost/disco" "github.com/hashicorp/terraform/internal/httpclient" @@ -32,6 +37,7 @@ const ( xTerraformVersion = "X-Terraform-Version" modulesServiceID = "modules.v1" providersServiceID = "providers.v1" + componentServiceID = "components.v3" // registryDiscoveryRetryEnvName is the name of the environment variable that // can be configured to customize number of retries for module and provider @@ -272,6 +278,176 @@ func (c *Client) ModuleLocation(ctx context.Context, module *regsrc.Module, vers return location, nil } +// ComponentPackageVersions fetches all of the known exact versions +// available for the given package in its component registry. +func (c *Client) ComponentPackageVersions(ctx context.Context, pkgAddr regaddr.ComponentPackage) (sourcebundle.ComponentPackageVersionsResponse, error) { + var ret sourcebundle.ComponentPackageVersionsResponse + baseURL, err := c.registryComponentsBaseUrl(pkgAddr.Host) + if err != nil { + return ret, err + } + + // Query: GET /v1/components/{namespace}/{name}/versions + reqURL := baseURL.JoinPath( + url.PathEscape(pkgAddr.Namespace), + url.PathEscape(pkgAddr.Name), + "versions", + ) + + req, err := retryablehttp.NewRequest("GET", reqURL.String(), nil) + if err != nil { + return ret, err + } + + log.Print("[DEBUG] regURL=", reqURL.String()) + + c.addRequestCreds(pkgAddr.Host, req.Request) + req.Header.Set(xTerraformVersion, tfVersion) + + resp, err := c.client.Do(req) + if err != nil { + return ret, err + } + defer resp.Body.Close() + + switch resp.StatusCode { + case http.StatusOK: + // OK + case http.StatusNotFound: + return ret, fmt.Errorf("component not found: %s", resp.Status) + default: + return ret, fmt.Errorf("error looking up component versions: %s", resp.Status) + } + + raw, err := io.ReadAll(resp.Body) + if err != nil { + return ret, fmt.Errorf("error reading registry response: %w", err) + } + + type respVersion struct { + Version string `json:"version"` + } + type respComp struct { + Versions []respVersion `json:"versions"` + } + type respBody struct { + Components []respComp `json:"components"` + } + var body respBody + err = json.Unmarshal(raw, &body) + if err != nil { + return ret, fmt.Errorf("invalid registry response: %w", err) + } + if len(body.Components) < 1 { + return ret, fmt.Errorf("invalid registry response: no conmponent package") + } + + vs := body.Components[0].Versions + if len(vs) == 0 { + return ret, nil + } + + vvs := make([]sourcebundle.ComponentPackageInfo, len(vs)) + for i, v := range vs { + version, err := versions.ParseVersion(v.Version) + if err != nil { + return ret, fmt.Errorf("PENIS invalid registry response: invalid version %q: %w", v.Version, err) + } + vvs[i] = sourcebundle.ComponentPackageInfo{ + Version: version, + } + } + ret.Versions = vvs + + return ret, nil +} + +// ComponentPackageSourceAddr fetches the real remote source address for the +// given version of the given component registry package. +func (c *Client) ComponentPackageSourceAddr(ctx context.Context, pkgAddr regaddr.ComponentPackage, version versions.Version) (sourcebundle.ComponentPackageSourceAddrResponse, error) { + var ret sourcebundle.ComponentPackageSourceAddrResponse + + baseURL, err := c.registryComponentsBaseUrl(pkgAddr.Host) + if err != nil { + return ret, err + } + + reqURL := baseURL.JoinPath( + url.PathEscape(pkgAddr.Namespace), + url.PathEscape(pkgAddr.Name), + url.PathEscape(version.String()), + "download", + ) + + log.Print("[DEBUG] regURL=", reqURL.String()) + + req, err := retryablehttp.NewRequestWithContext(ctx, "GET", reqURL.String(), nil) + if err != nil { + return ret, fmt.Errorf("invalid request: %w", err) + } + + c.addRequestCreds(pkgAddr.Host, req.Request) + req.Header.Set(xTerraformVersion, tfVersion) + + // req = req.WithContext(ctx) + + resp, err := c.client.Do(req) + if err != nil { + return ret, err + } + defer resp.Body.Close() + + // there should be no body, but save it for logging + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return ret, fmt.Errorf("error reading response body from registry: %s", err) + } + + switch resp.StatusCode { + case http.StatusOK, http.StatusNoContent: + // OK + case http.StatusNotFound: + return ret, fmt.Errorf("module %q version %q not found", pkgAddr, version) + default: + // anything else is an error: + return ret, fmt.Errorf("error getting download location for %q: %s resp:%s", pkgAddr, resp.Status, body) + } + + location := resp.Header.Get("x-terraform-get") + if location == "" { + return ret, fmt.Errorf("failed to get download URL for %s %s", pkgAddr, version) + } + + if strings.HasPrefix(location, "/") || strings.HasPrefix(location, "./") || strings.HasPrefix(location, "../") { + locationURL, err := url.Parse(location) + if err != nil { + return ret, fmt.Errorf("invalid relative URL for %s: %s", pkgAddr, err) + } + locationURL = resp.Request.URL.ResolveReference(locationURL) + location = locationURL.String() + } + + srcAddr, err := sourceaddrs.ParseRemoteSource(location) + if err != nil { + return ret, fmt.Errorf("invalid source address %q for %s: %s", location, pkgAddr, err) + } + ret.SourceAddr = srcAddr + + return ret, nil +} + +func (c *Client) registryComponentsBaseUrl(hostname svchost.Hostname) (*url.URL, error) { + services, err := c.services.Discover(hostname) + if err != nil { + return nil, fmt.Errorf("service discovery failed for %s: %w", hostname.ForDisplay(), err) + } + base, err := services.ServiceURL("components.v3") + if err != nil { + return nil, fmt.Errorf("service discovery failed for %s: %w", hostname.ForDisplay(), err) + } + return base, nil +} + // configureDiscoveryRetry configures the number of retries the registry client // will attempt for requests with retryable errors, like 502 status codes func configureDiscoveryRetry() { diff --git a/internal/stacks/stackconfig/config.go b/internal/stacks/stackconfig/config.go index 883b52f40e8f..b616094646b3 100644 --- a/internal/stacks/stackconfig/config.go +++ b/internal/stacks/stackconfig/config.go @@ -345,6 +345,23 @@ func resolveFinalSourceAddr(base sourceaddrs.FinalSource, rel sourceaddrs.Source switch rel := rel.(type) { case sourceaddrs.FinalSource: switch base := base.(type) { + case sourceaddrs.ComponentSourceFinal: + ret, err := sourceaddrs.ResolveRelativeFinalSource(base, rel) + if err == nil { + return ret, nil + } + + // If we can't resolve relative to the registry source then + // we need to resolve relative to its underlying remote source + // instead. + underlyingSource, ok := sources.ComponentPackageSourceAddr(base.Package(), base.SelectedVersion()) + if !ok { + // If we also can't find the underlying source for some reason + // then we're stuck. + return nil, fmt.Errorf("can't find underlying source address for %s", base.Package()) + } + underlyingSource = base.FinalSourceAddr(underlyingSource) + return sourceaddrs.ResolveRelativeFinalSource(underlyingSource, rel) case sourceaddrs.RegistrySourceFinal: // This case is awkward because we'd ideally like to return // another registry source address in the same registry package @@ -391,6 +408,18 @@ func resolveFinalSourceAddr(base sourceaddrs.FinalSource, rel sourceaddrs.Source } finalRel := rel.Versioned(selectedVersion) return sourceaddrs.ResolveRelativeFinalSource(base, finalRel) + case sourceaddrs.ComponentSource: + allowedVersions := versions.MeetingConstraints(versionConstraints) + availableVersions := sources.ComponentPackageVersions(rel.Package()) + selectedVersion := availableVersions.NewestInSet(allowedVersions) + if selectedVersion == versions.Unspecified { + // We should get here only if the source bundle was built + // incorrectly. A valid source bundle should always contain + // at least one entry that matches each version constraint. + return nil, fmt.Errorf("no cached versions of %s match the given version constraints", rel.Package()) + } + finalRel := rel.Versioned(selectedVersion) + return sourceaddrs.ResolveRelativeFinalSource(base, finalRel) default: // Should not get here because the above cases should be exhaustive // for all implementations of sourceaddrs.Source. From 5d48e2f2f414ea4fefe9424b175c456228f08974 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Wed, 12 Nov 2025 09:32:12 -0800 Subject: [PATCH 04/21] chore: temp bump to unreleased go-slug version --- go.mod | 2 ++ go.sum | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 43bdc86a54ae..0c4cbcfba4c1 100644 --- a/go.mod +++ b/go.mod @@ -331,3 +331,5 @@ tool ( golang.org/x/tools/cmd/stringer honnef.co/go/tools/cmd/staticcheck ) + +replace github.com/hashicorp/go-slug => github.com/hashicorp/go-slug v0.17.2-0.20251112070849-b0735d70afe1 diff --git a/go.sum b/go.sum index 046e975c541d..a3953892839b 100644 --- a/go.sum +++ b/go.sum @@ -482,8 +482,6 @@ github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3 github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-sockaddr v1.0.5 h1:dvk7TIXCZpmfOlM+9mlcrWmWjw/wlKT+VDq2wMvfPJU= From d70bc1b358f31952df869d174d75e545f613e556 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Wed, 12 Nov 2025 09:49:06 -0800 Subject: [PATCH 05/21] chore: cleanup --- go.sum | 2 ++ internal/rpcapi/packages.go | 4 +--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.sum b/go.sum index a3953892839b..303931d0b899 100644 --- a/go.sum +++ b/go.sum @@ -482,6 +482,8 @@ github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3 github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-slug v0.17.2-0.20251112070849-b0735d70afe1 h1:m+oyqkZA8iINtH4Nv8P06Y317M8jJ/Q/LFBNM61xyAU= +github.com/hashicorp/go-slug v0.17.2-0.20251112070849-b0735d70afe1/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-sockaddr v1.0.5 h1:dvk7TIXCZpmfOlM+9mlcrWmWjw/wlKT+VDq2wMvfPJU= diff --git a/internal/rpcapi/packages.go b/internal/rpcapi/packages.go index e5211859ad8b..cee1d7b3a940 100644 --- a/internal/rpcapi/packages.go +++ b/internal/rpcapi/packages.go @@ -257,7 +257,7 @@ func (p *packagesServer) FetchModulePackage(ctx context.Context, request *packag return response, nil } -// TODO: finish impl +// NOTE: Might need to remove this as components.v3 does not have a /versions endpoint func (p *packagesServer) ComponentPackageVersions(ctx context.Context, request *packages.ComponentPackageVersions_Request) (*packages.ComponentPackageVersions_Response, error) { response := new(packages.ComponentPackageVersions_Response) compAddrs, err := regaddrs.ParseComponentSource(request.SourceAddr) @@ -287,7 +287,6 @@ func (p *packagesServer) ComponentPackageVersions(ctx context.Context, request * return response, nil } -// TODO: finish impl func (p *packagesServer) ComponentPackageSourceAddr(ctx context.Context, request *packages.ComponentPackageSourceAddr_Request) (*packages.ComponentPackageSourceAddr_Response, error) { response := new(packages.ComponentPackageSourceAddr_Response) @@ -326,7 +325,6 @@ func (p *packagesServer) ComponentPackageSourceAddr(ctx context.Context, request return response, nil } -// TODO: finish impl func (p *packagesServer) FetchComponentPackage(ctx context.Context, request *packages.FetchComponentPackage_Request) (*packages.FetchComponentPackage_Response, error) { response := new(packages.FetchComponentPackage_Response) From 7cd86977b9eff9d1dc2269e8ed5c85c2778cfaa7 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Wed, 12 Nov 2025 15:48:03 -0800 Subject: [PATCH 06/21] chore(rpcapi): update stubs --- internal/rpcapi/dynrpcserver/packages.go | 16 - .../rpcapi/terraform1/packages/packages.pb.go | 449 +++--------------- .../rpcapi/terraform1/packages/packages.proto | 20 - .../terraform1/packages/packages_grpc.pb.go | 76 --- 4 files changed, 79 insertions(+), 482 deletions(-) diff --git a/internal/rpcapi/dynrpcserver/packages.go b/internal/rpcapi/dynrpcserver/packages.go index 5ba5061a5243..54dd65997d91 100644 --- a/internal/rpcapi/dynrpcserver/packages.go +++ b/internal/rpcapi/dynrpcserver/packages.go @@ -31,22 +31,6 @@ func (s *Packages) ComponentPackageSourceAddr(a0 context.Context, a1 *packages.C return impl.ComponentPackageSourceAddr(a0, a1) } -func (s *Packages) ComponentPackageVersions(a0 context.Context, a1 *packages.ComponentPackageVersions_Request) (*packages.ComponentPackageVersions_Response, error) { - impl, err := s.realRPCServer() - if err != nil { - return nil, err - } - return impl.ComponentPackageVersions(a0, a1) -} - -func (s *Packages) FetchComponentPackage(a0 context.Context, a1 *packages.FetchComponentPackage_Request) (*packages.FetchComponentPackage_Response, error) { - impl, err := s.realRPCServer() - if err != nil { - return nil, err - } - return impl.FetchComponentPackage(a0, a1) -} - func (s *Packages) FetchModulePackage(a0 context.Context, a1 *packages.FetchModulePackage_Request) (*packages.FetchModulePackage_Response, error) { impl, err := s.realRPCServer() if err != nil { diff --git a/internal/rpcapi/terraform1/packages/packages.pb.go b/internal/rpcapi/terraform1/packages/packages.pb.go index 20b089305041..93a0c6091115 100644 --- a/internal/rpcapi/terraform1/packages/packages.pb.go +++ b/internal/rpcapi/terraform1/packages/packages.pb.go @@ -205,42 +205,6 @@ func (*FetchModulePackage) Descriptor() ([]byte, []int) { return file_packages_proto_rawDescGZIP(), []int{4} } -type ComponentPackageVersions struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *ComponentPackageVersions) Reset() { - *x = ComponentPackageVersions{} - mi := &file_packages_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ComponentPackageVersions) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ComponentPackageVersions) ProtoMessage() {} - -func (x *ComponentPackageVersions) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[5] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ComponentPackageVersions.ProtoReflect.Descriptor instead. -func (*ComponentPackageVersions) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{5} -} - type ComponentPackageSourceAddr struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields @@ -249,7 +213,7 @@ type ComponentPackageSourceAddr struct { func (x *ComponentPackageSourceAddr) Reset() { *x = ComponentPackageSourceAddr{} - mi := &file_packages_proto_msgTypes[6] + mi := &file_packages_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -261,7 +225,7 @@ func (x *ComponentPackageSourceAddr) String() string { func (*ComponentPackageSourceAddr) ProtoMessage() {} func (x *ComponentPackageSourceAddr) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[6] + mi := &file_packages_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -274,43 +238,7 @@ func (x *ComponentPackageSourceAddr) ProtoReflect() protoreflect.Message { // Deprecated: Use ComponentPackageSourceAddr.ProtoReflect.Descriptor instead. func (*ComponentPackageSourceAddr) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{6} -} - -type FetchComponentPackage struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *FetchComponentPackage) Reset() { - *x = FetchComponentPackage{} - mi := &file_packages_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FetchComponentPackage) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FetchComponentPackage) ProtoMessage() {} - -func (x *FetchComponentPackage) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[7] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FetchComponentPackage.ProtoReflect.Descriptor instead. -func (*FetchComponentPackage) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{7} + return file_packages_proto_rawDescGZIP(), []int{5} } type ProviderPackageVersions_Request struct { @@ -322,7 +250,7 @@ type ProviderPackageVersions_Request struct { func (x *ProviderPackageVersions_Request) Reset() { *x = ProviderPackageVersions_Request{} - mi := &file_packages_proto_msgTypes[8] + mi := &file_packages_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -334,7 +262,7 @@ func (x *ProviderPackageVersions_Request) String() string { func (*ProviderPackageVersions_Request) ProtoMessage() {} func (x *ProviderPackageVersions_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[8] + mi := &file_packages_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -367,7 +295,7 @@ type ProviderPackageVersions_Response struct { func (x *ProviderPackageVersions_Response) Reset() { *x = ProviderPackageVersions_Response{} - mi := &file_packages_proto_msgTypes[9] + mi := &file_packages_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -379,7 +307,7 @@ func (x *ProviderPackageVersions_Response) String() string { func (*ProviderPackageVersions_Response) ProtoMessage() {} func (x *ProviderPackageVersions_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[9] + mi := &file_packages_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -422,7 +350,7 @@ type FetchProviderPackage_Request struct { func (x *FetchProviderPackage_Request) Reset() { *x = FetchProviderPackage_Request{} - mi := &file_packages_proto_msgTypes[10] + mi := &file_packages_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -434,7 +362,7 @@ func (x *FetchProviderPackage_Request) String() string { func (*FetchProviderPackage_Request) ProtoMessage() {} func (x *FetchProviderPackage_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[10] + mi := &file_packages_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -500,7 +428,7 @@ type FetchProviderPackage_Response struct { func (x *FetchProviderPackage_Response) Reset() { *x = FetchProviderPackage_Response{} - mi := &file_packages_proto_msgTypes[11] + mi := &file_packages_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -512,7 +440,7 @@ func (x *FetchProviderPackage_Response) String() string { func (*FetchProviderPackage_Response) ProtoMessage() {} func (x *FetchProviderPackage_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[11] + mi := &file_packages_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -552,7 +480,7 @@ type FetchProviderPackage_PlatformResult struct { func (x *FetchProviderPackage_PlatformResult) Reset() { *x = FetchProviderPackage_PlatformResult{} - mi := &file_packages_proto_msgTypes[12] + mi := &file_packages_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -564,7 +492,7 @@ func (x *FetchProviderPackage_PlatformResult) String() string { func (*FetchProviderPackage_PlatformResult) ProtoMessage() {} func (x *FetchProviderPackage_PlatformResult) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[12] + mi := &file_packages_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -603,7 +531,7 @@ type ModulePackageVersions_Request struct { func (x *ModulePackageVersions_Request) Reset() { *x = ModulePackageVersions_Request{} - mi := &file_packages_proto_msgTypes[13] + mi := &file_packages_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -615,7 +543,7 @@ func (x *ModulePackageVersions_Request) String() string { func (*ModulePackageVersions_Request) ProtoMessage() {} func (x *ModulePackageVersions_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[13] + mi := &file_packages_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -648,7 +576,7 @@ type ModulePackageVersions_Response struct { func (x *ModulePackageVersions_Response) Reset() { *x = ModulePackageVersions_Response{} - mi := &file_packages_proto_msgTypes[14] + mi := &file_packages_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -660,7 +588,7 @@ func (x *ModulePackageVersions_Response) String() string { func (*ModulePackageVersions_Response) ProtoMessage() {} func (x *ModulePackageVersions_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[14] + mi := &file_packages_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -700,7 +628,7 @@ type ModulePackageSourceAddr_Request struct { func (x *ModulePackageSourceAddr_Request) Reset() { *x = ModulePackageSourceAddr_Request{} - mi := &file_packages_proto_msgTypes[15] + mi := &file_packages_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -712,7 +640,7 @@ func (x *ModulePackageSourceAddr_Request) String() string { func (*ModulePackageSourceAddr_Request) ProtoMessage() {} func (x *ModulePackageSourceAddr_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[15] + mi := &file_packages_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -752,7 +680,7 @@ type ModulePackageSourceAddr_Response struct { func (x *ModulePackageSourceAddr_Response) Reset() { *x = ModulePackageSourceAddr_Response{} - mi := &file_packages_proto_msgTypes[16] + mi := &file_packages_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -764,7 +692,7 @@ func (x *ModulePackageSourceAddr_Response) String() string { func (*ModulePackageSourceAddr_Response) ProtoMessage() {} func (x *ModulePackageSourceAddr_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[16] + mi := &file_packages_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -804,7 +732,7 @@ type FetchModulePackage_Request struct { func (x *FetchModulePackage_Request) Reset() { *x = FetchModulePackage_Request{} - mi := &file_packages_proto_msgTypes[17] + mi := &file_packages_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -816,7 +744,7 @@ func (x *FetchModulePackage_Request) String() string { func (*FetchModulePackage_Request) ProtoMessage() {} func (x *FetchModulePackage_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[17] + mi := &file_packages_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -855,7 +783,7 @@ type FetchModulePackage_Response struct { func (x *FetchModulePackage_Response) Reset() { *x = FetchModulePackage_Response{} - mi := &file_packages_proto_msgTypes[18] + mi := &file_packages_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -867,7 +795,7 @@ func (x *FetchModulePackage_Response) String() string { func (*FetchModulePackage_Response) ProtoMessage() {} func (x *FetchModulePackage_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[18] + mi := &file_packages_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -890,102 +818,6 @@ func (x *FetchModulePackage_Response) GetDiagnostics() []*terraform1.Diagnostic return nil } -type ComponentPackageVersions_Request struct { - state protoimpl.MessageState `protogen:"open.v1"` - SourceAddr string `protobuf:"bytes,2,opt,name=source_addr,json=sourceAddr,proto3" json:"source_addr,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *ComponentPackageVersions_Request) Reset() { - *x = ComponentPackageVersions_Request{} - mi := &file_packages_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ComponentPackageVersions_Request) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ComponentPackageVersions_Request) ProtoMessage() {} - -func (x *ComponentPackageVersions_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[19] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ComponentPackageVersions_Request.ProtoReflect.Descriptor instead. -func (*ComponentPackageVersions_Request) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{5, 0} -} - -func (x *ComponentPackageVersions_Request) GetSourceAddr() string { - if x != nil { - return x.SourceAddr - } - return "" -} - -type ComponentPackageVersions_Response struct { - state protoimpl.MessageState `protogen:"open.v1"` - Versions []string `protobuf:"bytes,1,rep,name=versions,proto3" json:"versions,omitempty"` - Diagnostics []*terraform1.Diagnostic `protobuf:"bytes,2,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *ComponentPackageVersions_Response) Reset() { - *x = ComponentPackageVersions_Response{} - mi := &file_packages_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ComponentPackageVersions_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ComponentPackageVersions_Response) ProtoMessage() {} - -func (x *ComponentPackageVersions_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[20] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ComponentPackageVersions_Response.ProtoReflect.Descriptor instead. -func (*ComponentPackageVersions_Response) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{5, 1} -} - -func (x *ComponentPackageVersions_Response) GetVersions() []string { - if x != nil { - return x.Versions - } - return nil -} - -func (x *ComponentPackageVersions_Response) GetDiagnostics() []*terraform1.Diagnostic { - if x != nil { - return x.Diagnostics - } - return nil -} - type ComponentPackageSourceAddr_Request struct { state protoimpl.MessageState `protogen:"open.v1"` SourceAddr string `protobuf:"bytes,1,opt,name=source_addr,json=sourceAddr,proto3" json:"source_addr,omitempty"` @@ -996,7 +828,7 @@ type ComponentPackageSourceAddr_Request struct { func (x *ComponentPackageSourceAddr_Request) Reset() { *x = ComponentPackageSourceAddr_Request{} - mi := &file_packages_proto_msgTypes[21] + mi := &file_packages_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1008,7 +840,7 @@ func (x *ComponentPackageSourceAddr_Request) String() string { func (*ComponentPackageSourceAddr_Request) ProtoMessage() {} func (x *ComponentPackageSourceAddr_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[21] + mi := &file_packages_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1021,7 +853,7 @@ func (x *ComponentPackageSourceAddr_Request) ProtoReflect() protoreflect.Message // Deprecated: Use ComponentPackageSourceAddr_Request.ProtoReflect.Descriptor instead. func (*ComponentPackageSourceAddr_Request) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{6, 0} + return file_packages_proto_rawDescGZIP(), []int{5, 0} } func (x *ComponentPackageSourceAddr_Request) GetSourceAddr() string { @@ -1048,7 +880,7 @@ type ComponentPackageSourceAddr_Response struct { func (x *ComponentPackageSourceAddr_Response) Reset() { *x = ComponentPackageSourceAddr_Response{} - mi := &file_packages_proto_msgTypes[22] + mi := &file_packages_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1060,7 +892,7 @@ func (x *ComponentPackageSourceAddr_Response) String() string { func (*ComponentPackageSourceAddr_Response) ProtoMessage() {} func (x *ComponentPackageSourceAddr_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[22] + mi := &file_packages_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1073,7 +905,7 @@ func (x *ComponentPackageSourceAddr_Response) ProtoReflect() protoreflect.Messag // Deprecated: Use ComponentPackageSourceAddr_Response.ProtoReflect.Descriptor instead. func (*ComponentPackageSourceAddr_Response) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{6, 1} + return file_packages_proto_rawDescGZIP(), []int{5, 1} } func (x *ComponentPackageSourceAddr_Response) GetUrl() string { @@ -1090,102 +922,6 @@ func (x *ComponentPackageSourceAddr_Response) GetDiagnostics() []*terraform1.Dia return nil } -type FetchComponentPackage_Request struct { - state protoimpl.MessageState `protogen:"open.v1"` - CacheDir string `protobuf:"bytes,1,opt,name=cache_dir,json=cacheDir,proto3" json:"cache_dir,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *FetchComponentPackage_Request) Reset() { - *x = FetchComponentPackage_Request{} - mi := &file_packages_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FetchComponentPackage_Request) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FetchComponentPackage_Request) ProtoMessage() {} - -func (x *FetchComponentPackage_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[23] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FetchComponentPackage_Request.ProtoReflect.Descriptor instead. -func (*FetchComponentPackage_Request) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{7, 0} -} - -func (x *FetchComponentPackage_Request) GetCacheDir() string { - if x != nil { - return x.CacheDir - } - return "" -} - -func (x *FetchComponentPackage_Request) GetUrl() string { - if x != nil { - return x.Url - } - return "" -} - -type FetchComponentPackage_Response struct { - state protoimpl.MessageState `protogen:"open.v1"` - Diagnostics []*terraform1.Diagnostic `protobuf:"bytes,1,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *FetchComponentPackage_Response) Reset() { - *x = FetchComponentPackage_Response{} - mi := &file_packages_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FetchComponentPackage_Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FetchComponentPackage_Response) ProtoMessage() {} - -func (x *FetchComponentPackage_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[24] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FetchComponentPackage_Response.ProtoReflect.Descriptor instead. -func (*FetchComponentPackage_Response) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{7, 1} -} - -func (x *FetchComponentPackage_Response) GetDiagnostics() []*terraform1.Diagnostic { - if x != nil { - return x.Diagnostics - } - return nil -} - var File_packages_proto protoreflect.FileDescriptor const file_packages_proto_rawDesc = "" + @@ -1232,14 +968,7 @@ const file_packages_proto_rawDesc = "" + "\tcache_dir\x18\x01 \x01(\tR\bcacheDir\x12\x10\n" + "\x03url\x18\x02 \x01(\tR\x03url\x1aD\n" + "\bResponse\x128\n" + - "\vdiagnostics\x18\x01 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\xa8\x01\n" + - "\x18ComponentPackageVersions\x1a*\n" + - "\aRequest\x12\x1f\n" + - "\vsource_addr\x18\x02 \x01(\tR\n" + - "sourceAddr\x1a`\n" + - "\bResponse\x12\x1a\n" + - "\bversions\x18\x01 \x03(\tR\bversions\x128\n" + - "\vdiagnostics\x18\x02 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\xba\x01\n" + + "\vdiagnostics\x18\x01 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\xba\x01\n" + "\x1aComponentPackageSourceAddr\x1aD\n" + "\aRequest\x12\x1f\n" + "\vsource_addr\x18\x01 \x01(\tR\n" + @@ -1247,22 +976,14 @@ const file_packages_proto_rawDesc = "" + "\aversion\x18\x02 \x01(\tR\aversion\x1aV\n" + "\bResponse\x12\x10\n" + "\x03url\x18\x01 \x01(\tR\x03url\x128\n" + - "\vdiagnostics\x18\x02 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\x97\x01\n" + - "\x15FetchComponentPackage\x1a8\n" + - "\aRequest\x12\x1b\n" + - "\tcache_dir\x18\x01 \x01(\tR\bcacheDir\x12\x10\n" + - "\x03url\x18\x02 \x01(\tR\x03url\x1aD\n" + - "\bResponse\x128\n" + - "\vdiagnostics\x18\x01 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics2\xb8\b\n" + + "\vdiagnostics\x18\x02 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics2\xa9\x06\n" + "\bPackages\x12\x86\x01\n" + "\x17ProviderPackageVersions\x124.terraform1.packages.ProviderPackageVersions.Request\x1a5.terraform1.packages.ProviderPackageVersions.Response\x12}\n" + "\x14FetchProviderPackage\x121.terraform1.packages.FetchProviderPackage.Request\x1a2.terraform1.packages.FetchProviderPackage.Response\x12\x80\x01\n" + "\x15ModulePackageVersions\x122.terraform1.packages.ModulePackageVersions.Request\x1a3.terraform1.packages.ModulePackageVersions.Response\x12\x86\x01\n" + "\x17ModulePackageSourceAddr\x124.terraform1.packages.ModulePackageSourceAddr.Request\x1a5.terraform1.packages.ModulePackageSourceAddr.Response\x12w\n" + - "\x12FetchModulePackage\x12/.terraform1.packages.FetchModulePackage.Request\x1a0.terraform1.packages.FetchModulePackage.Response\x12\x89\x01\n" + - "\x18ComponentPackageVersions\x125.terraform1.packages.ComponentPackageVersions.Request\x1a6.terraform1.packages.ComponentPackageVersions.Response\x12\x8f\x01\n" + - "\x1aComponentPackageSourceAddr\x127.terraform1.packages.ComponentPackageSourceAddr.Request\x1a8.terraform1.packages.ComponentPackageSourceAddr.Response\x12\x80\x01\n" + - "\x15FetchComponentPackage\x122.terraform1.packages.FetchComponentPackage.Request\x1a3.terraform1.packages.FetchComponentPackage.Responseb\x06proto3" + "\x12FetchModulePackage\x12/.terraform1.packages.FetchModulePackage.Request\x1a0.terraform1.packages.FetchModulePackage.Response\x12\x8f\x01\n" + + "\x1aComponentPackageSourceAddr\x127.terraform1.packages.ComponentPackageSourceAddr.Request\x1a8.terraform1.packages.ComponentPackageSourceAddr.Responseb\x06proto3" var ( file_packages_proto_rawDescOnce sync.Once @@ -1276,69 +997,57 @@ func file_packages_proto_rawDescGZIP() []byte { return file_packages_proto_rawDescData } -var file_packages_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_packages_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_packages_proto_goTypes = []any{ (*ProviderPackageVersions)(nil), // 0: terraform1.packages.ProviderPackageVersions (*FetchProviderPackage)(nil), // 1: terraform1.packages.FetchProviderPackage (*ModulePackageVersions)(nil), // 2: terraform1.packages.ModulePackageVersions (*ModulePackageSourceAddr)(nil), // 3: terraform1.packages.ModulePackageSourceAddr (*FetchModulePackage)(nil), // 4: terraform1.packages.FetchModulePackage - (*ComponentPackageVersions)(nil), // 5: terraform1.packages.ComponentPackageVersions - (*ComponentPackageSourceAddr)(nil), // 6: terraform1.packages.ComponentPackageSourceAddr - (*FetchComponentPackage)(nil), // 7: terraform1.packages.FetchComponentPackage - (*ProviderPackageVersions_Request)(nil), // 8: terraform1.packages.ProviderPackageVersions.Request - (*ProviderPackageVersions_Response)(nil), // 9: terraform1.packages.ProviderPackageVersions.Response - (*FetchProviderPackage_Request)(nil), // 10: terraform1.packages.FetchProviderPackage.Request - (*FetchProviderPackage_Response)(nil), // 11: terraform1.packages.FetchProviderPackage.Response - (*FetchProviderPackage_PlatformResult)(nil), // 12: terraform1.packages.FetchProviderPackage.PlatformResult - (*ModulePackageVersions_Request)(nil), // 13: terraform1.packages.ModulePackageVersions.Request - (*ModulePackageVersions_Response)(nil), // 14: terraform1.packages.ModulePackageVersions.Response - (*ModulePackageSourceAddr_Request)(nil), // 15: terraform1.packages.ModulePackageSourceAddr.Request - (*ModulePackageSourceAddr_Response)(nil), // 16: terraform1.packages.ModulePackageSourceAddr.Response - (*FetchModulePackage_Request)(nil), // 17: terraform1.packages.FetchModulePackage.Request - (*FetchModulePackage_Response)(nil), // 18: terraform1.packages.FetchModulePackage.Response - (*ComponentPackageVersions_Request)(nil), // 19: terraform1.packages.ComponentPackageVersions.Request - (*ComponentPackageVersions_Response)(nil), // 20: terraform1.packages.ComponentPackageVersions.Response - (*ComponentPackageSourceAddr_Request)(nil), // 21: terraform1.packages.ComponentPackageSourceAddr.Request - (*ComponentPackageSourceAddr_Response)(nil), // 22: terraform1.packages.ComponentPackageSourceAddr.Response - (*FetchComponentPackage_Request)(nil), // 23: terraform1.packages.FetchComponentPackage.Request - (*FetchComponentPackage_Response)(nil), // 24: terraform1.packages.FetchComponentPackage.Response - (*terraform1.Diagnostic)(nil), // 25: terraform1.Diagnostic - (*terraform1.ProviderPackage)(nil), // 26: terraform1.ProviderPackage + (*ComponentPackageSourceAddr)(nil), // 5: terraform1.packages.ComponentPackageSourceAddr + (*ProviderPackageVersions_Request)(nil), // 6: terraform1.packages.ProviderPackageVersions.Request + (*ProviderPackageVersions_Response)(nil), // 7: terraform1.packages.ProviderPackageVersions.Response + (*FetchProviderPackage_Request)(nil), // 8: terraform1.packages.FetchProviderPackage.Request + (*FetchProviderPackage_Response)(nil), // 9: terraform1.packages.FetchProviderPackage.Response + (*FetchProviderPackage_PlatformResult)(nil), // 10: terraform1.packages.FetchProviderPackage.PlatformResult + (*ModulePackageVersions_Request)(nil), // 11: terraform1.packages.ModulePackageVersions.Request + (*ModulePackageVersions_Response)(nil), // 12: terraform1.packages.ModulePackageVersions.Response + (*ModulePackageSourceAddr_Request)(nil), // 13: terraform1.packages.ModulePackageSourceAddr.Request + (*ModulePackageSourceAddr_Response)(nil), // 14: terraform1.packages.ModulePackageSourceAddr.Response + (*FetchModulePackage_Request)(nil), // 15: terraform1.packages.FetchModulePackage.Request + (*FetchModulePackage_Response)(nil), // 16: terraform1.packages.FetchModulePackage.Response + (*ComponentPackageSourceAddr_Request)(nil), // 17: terraform1.packages.ComponentPackageSourceAddr.Request + (*ComponentPackageSourceAddr_Response)(nil), // 18: terraform1.packages.ComponentPackageSourceAddr.Response + (*terraform1.Diagnostic)(nil), // 19: terraform1.Diagnostic + (*terraform1.ProviderPackage)(nil), // 20: terraform1.ProviderPackage } var file_packages_proto_depIdxs = []int32{ - 25, // 0: terraform1.packages.ProviderPackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic - 12, // 1: terraform1.packages.FetchProviderPackage.Response.results:type_name -> terraform1.packages.FetchProviderPackage.PlatformResult - 25, // 2: terraform1.packages.FetchProviderPackage.Response.diagnostics:type_name -> terraform1.Diagnostic - 26, // 3: terraform1.packages.FetchProviderPackage.PlatformResult.provider:type_name -> terraform1.ProviderPackage - 25, // 4: terraform1.packages.FetchProviderPackage.PlatformResult.diagnostics:type_name -> terraform1.Diagnostic - 25, // 5: terraform1.packages.ModulePackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic - 25, // 6: terraform1.packages.ModulePackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic - 25, // 7: terraform1.packages.FetchModulePackage.Response.diagnostics:type_name -> terraform1.Diagnostic - 25, // 8: terraform1.packages.ComponentPackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic - 25, // 9: terraform1.packages.ComponentPackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic - 25, // 10: terraform1.packages.FetchComponentPackage.Response.diagnostics:type_name -> terraform1.Diagnostic - 8, // 11: terraform1.packages.Packages.ProviderPackageVersions:input_type -> terraform1.packages.ProviderPackageVersions.Request - 10, // 12: terraform1.packages.Packages.FetchProviderPackage:input_type -> terraform1.packages.FetchProviderPackage.Request - 13, // 13: terraform1.packages.Packages.ModulePackageVersions:input_type -> terraform1.packages.ModulePackageVersions.Request - 15, // 14: terraform1.packages.Packages.ModulePackageSourceAddr:input_type -> terraform1.packages.ModulePackageSourceAddr.Request - 17, // 15: terraform1.packages.Packages.FetchModulePackage:input_type -> terraform1.packages.FetchModulePackage.Request - 19, // 16: terraform1.packages.Packages.ComponentPackageVersions:input_type -> terraform1.packages.ComponentPackageVersions.Request - 21, // 17: terraform1.packages.Packages.ComponentPackageSourceAddr:input_type -> terraform1.packages.ComponentPackageSourceAddr.Request - 23, // 18: terraform1.packages.Packages.FetchComponentPackage:input_type -> terraform1.packages.FetchComponentPackage.Request - 9, // 19: terraform1.packages.Packages.ProviderPackageVersions:output_type -> terraform1.packages.ProviderPackageVersions.Response - 11, // 20: terraform1.packages.Packages.FetchProviderPackage:output_type -> terraform1.packages.FetchProviderPackage.Response - 14, // 21: terraform1.packages.Packages.ModulePackageVersions:output_type -> terraform1.packages.ModulePackageVersions.Response - 16, // 22: terraform1.packages.Packages.ModulePackageSourceAddr:output_type -> terraform1.packages.ModulePackageSourceAddr.Response - 18, // 23: terraform1.packages.Packages.FetchModulePackage:output_type -> terraform1.packages.FetchModulePackage.Response - 20, // 24: terraform1.packages.Packages.ComponentPackageVersions:output_type -> terraform1.packages.ComponentPackageVersions.Response - 22, // 25: terraform1.packages.Packages.ComponentPackageSourceAddr:output_type -> terraform1.packages.ComponentPackageSourceAddr.Response - 24, // 26: terraform1.packages.Packages.FetchComponentPackage:output_type -> terraform1.packages.FetchComponentPackage.Response - 19, // [19:27] is the sub-list for method output_type - 11, // [11:19] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 19, // 0: terraform1.packages.ProviderPackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic + 10, // 1: terraform1.packages.FetchProviderPackage.Response.results:type_name -> terraform1.packages.FetchProviderPackage.PlatformResult + 19, // 2: terraform1.packages.FetchProviderPackage.Response.diagnostics:type_name -> terraform1.Diagnostic + 20, // 3: terraform1.packages.FetchProviderPackage.PlatformResult.provider:type_name -> terraform1.ProviderPackage + 19, // 4: terraform1.packages.FetchProviderPackage.PlatformResult.diagnostics:type_name -> terraform1.Diagnostic + 19, // 5: terraform1.packages.ModulePackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic + 19, // 6: terraform1.packages.ModulePackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic + 19, // 7: terraform1.packages.FetchModulePackage.Response.diagnostics:type_name -> terraform1.Diagnostic + 19, // 8: terraform1.packages.ComponentPackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic + 6, // 9: terraform1.packages.Packages.ProviderPackageVersions:input_type -> terraform1.packages.ProviderPackageVersions.Request + 8, // 10: terraform1.packages.Packages.FetchProviderPackage:input_type -> terraform1.packages.FetchProviderPackage.Request + 11, // 11: terraform1.packages.Packages.ModulePackageVersions:input_type -> terraform1.packages.ModulePackageVersions.Request + 13, // 12: terraform1.packages.Packages.ModulePackageSourceAddr:input_type -> terraform1.packages.ModulePackageSourceAddr.Request + 15, // 13: terraform1.packages.Packages.FetchModulePackage:input_type -> terraform1.packages.FetchModulePackage.Request + 17, // 14: terraform1.packages.Packages.ComponentPackageSourceAddr:input_type -> terraform1.packages.ComponentPackageSourceAddr.Request + 7, // 15: terraform1.packages.Packages.ProviderPackageVersions:output_type -> terraform1.packages.ProviderPackageVersions.Response + 9, // 16: terraform1.packages.Packages.FetchProviderPackage:output_type -> terraform1.packages.FetchProviderPackage.Response + 12, // 17: terraform1.packages.Packages.ModulePackageVersions:output_type -> terraform1.packages.ModulePackageVersions.Response + 14, // 18: terraform1.packages.Packages.ModulePackageSourceAddr:output_type -> terraform1.packages.ModulePackageSourceAddr.Response + 16, // 19: terraform1.packages.Packages.FetchModulePackage:output_type -> terraform1.packages.FetchModulePackage.Response + 18, // 20: terraform1.packages.Packages.ComponentPackageSourceAddr:output_type -> terraform1.packages.ComponentPackageSourceAddr.Response + 15, // [15:21] is the sub-list for method output_type + 9, // [9:15] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name } func init() { file_packages_proto_init() } @@ -1352,7 +1061,7 @@ func file_packages_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_packages_proto_rawDesc), len(file_packages_proto_rawDesc)), NumEnums: 0, - NumMessages: 25, + NumMessages: 19, NumExtensions: 0, NumServices: 1, }, diff --git a/internal/rpcapi/terraform1/packages/packages.proto b/internal/rpcapi/terraform1/packages/packages.proto index f0542090eb51..5b74f25c58c6 100644 --- a/internal/rpcapi/terraform1/packages/packages.proto +++ b/internal/rpcapi/terraform1/packages/packages.proto @@ -28,12 +28,8 @@ service Packages { rpc FetchModulePackage(FetchModulePackage.Request) returns (FetchModulePackage.Response); - rpc ComponentPackageVersions(ComponentPackageVersions.Request) - returns (ComponentPackageVersions.Response); rpc ComponentPackageSourceAddr(ComponentPackageSourceAddr.Request) returns (ComponentPackageSourceAddr.Response); - rpc FetchComponentPackage(FetchComponentPackage.Request) - returns (FetchComponentPackage.Response); } message ProviderPackageVersions { @@ -96,14 +92,6 @@ message FetchModulePackage { message Response { repeated terraform1.Diagnostic diagnostics = 1; } } -message ComponentPackageVersions { - message Request { string source_addr = 2; } - message Response { - repeated string versions = 1; - repeated terraform1.Diagnostic diagnostics = 2; - } -} - message ComponentPackageSourceAddr { message Request { string source_addr = 1; @@ -114,11 +102,3 @@ message ComponentPackageSourceAddr { repeated terraform1.Diagnostic diagnostics = 2; } } - -message FetchComponentPackage { - message Request { - string cache_dir = 1; - string url = 2; - } - message Response { repeated terraform1.Diagnostic diagnostics = 1; } -} diff --git a/internal/rpcapi/terraform1/packages/packages_grpc.pb.go b/internal/rpcapi/terraform1/packages/packages_grpc.pb.go index 3dc987f1f795..7644fbcb6543 100644 --- a/internal/rpcapi/terraform1/packages/packages_grpc.pb.go +++ b/internal/rpcapi/terraform1/packages/packages_grpc.pb.go @@ -27,9 +27,7 @@ const ( Packages_ModulePackageVersions_FullMethodName = "/terraform1.packages.Packages/ModulePackageVersions" Packages_ModulePackageSourceAddr_FullMethodName = "/terraform1.packages.Packages/ModulePackageSourceAddr" Packages_FetchModulePackage_FullMethodName = "/terraform1.packages.Packages/FetchModulePackage" - Packages_ComponentPackageVersions_FullMethodName = "/terraform1.packages.Packages/ComponentPackageVersions" Packages_ComponentPackageSourceAddr_FullMethodName = "/terraform1.packages.Packages/ComponentPackageSourceAddr" - Packages_FetchComponentPackage_FullMethodName = "/terraform1.packages.Packages/FetchComponentPackage" ) // PackagesClient is the client API for Packages service. @@ -53,9 +51,7 @@ type PackagesClient interface { ModulePackageVersions(ctx context.Context, in *ModulePackageVersions_Request, opts ...grpc.CallOption) (*ModulePackageVersions_Response, error) ModulePackageSourceAddr(ctx context.Context, in *ModulePackageSourceAddr_Request, opts ...grpc.CallOption) (*ModulePackageSourceAddr_Response, error) FetchModulePackage(ctx context.Context, in *FetchModulePackage_Request, opts ...grpc.CallOption) (*FetchModulePackage_Response, error) - ComponentPackageVersions(ctx context.Context, in *ComponentPackageVersions_Request, opts ...grpc.CallOption) (*ComponentPackageVersions_Response, error) ComponentPackageSourceAddr(ctx context.Context, in *ComponentPackageSourceAddr_Request, opts ...grpc.CallOption) (*ComponentPackageSourceAddr_Response, error) - FetchComponentPackage(ctx context.Context, in *FetchComponentPackage_Request, opts ...grpc.CallOption) (*FetchComponentPackage_Response, error) } type packagesClient struct { @@ -116,16 +112,6 @@ func (c *packagesClient) FetchModulePackage(ctx context.Context, in *FetchModule return out, nil } -func (c *packagesClient) ComponentPackageVersions(ctx context.Context, in *ComponentPackageVersions_Request, opts ...grpc.CallOption) (*ComponentPackageVersions_Response, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ComponentPackageVersions_Response) - err := c.cc.Invoke(ctx, Packages_ComponentPackageVersions_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *packagesClient) ComponentPackageSourceAddr(ctx context.Context, in *ComponentPackageSourceAddr_Request, opts ...grpc.CallOption) (*ComponentPackageSourceAddr_Response, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ComponentPackageSourceAddr_Response) @@ -136,16 +122,6 @@ func (c *packagesClient) ComponentPackageSourceAddr(ctx context.Context, in *Com return out, nil } -func (c *packagesClient) FetchComponentPackage(ctx context.Context, in *FetchComponentPackage_Request, opts ...grpc.CallOption) (*FetchComponentPackage_Response, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(FetchComponentPackage_Response) - err := c.cc.Invoke(ctx, Packages_FetchComponentPackage_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - // PackagesServer is the server API for Packages service. // All implementations must embed UnimplementedPackagesServer // for forward compatibility. @@ -167,9 +143,7 @@ type PackagesServer interface { ModulePackageVersions(context.Context, *ModulePackageVersions_Request) (*ModulePackageVersions_Response, error) ModulePackageSourceAddr(context.Context, *ModulePackageSourceAddr_Request) (*ModulePackageSourceAddr_Response, error) FetchModulePackage(context.Context, *FetchModulePackage_Request) (*FetchModulePackage_Response, error) - ComponentPackageVersions(context.Context, *ComponentPackageVersions_Request) (*ComponentPackageVersions_Response, error) ComponentPackageSourceAddr(context.Context, *ComponentPackageSourceAddr_Request) (*ComponentPackageSourceAddr_Response, error) - FetchComponentPackage(context.Context, *FetchComponentPackage_Request) (*FetchComponentPackage_Response, error) mustEmbedUnimplementedPackagesServer() } @@ -195,15 +169,9 @@ func (UnimplementedPackagesServer) ModulePackageSourceAddr(context.Context, *Mod func (UnimplementedPackagesServer) FetchModulePackage(context.Context, *FetchModulePackage_Request) (*FetchModulePackage_Response, error) { return nil, status.Errorf(codes.Unimplemented, "method FetchModulePackage not implemented") } -func (UnimplementedPackagesServer) ComponentPackageVersions(context.Context, *ComponentPackageVersions_Request) (*ComponentPackageVersions_Response, error) { - return nil, status.Errorf(codes.Unimplemented, "method ComponentPackageVersions not implemented") -} func (UnimplementedPackagesServer) ComponentPackageSourceAddr(context.Context, *ComponentPackageSourceAddr_Request) (*ComponentPackageSourceAddr_Response, error) { return nil, status.Errorf(codes.Unimplemented, "method ComponentPackageSourceAddr not implemented") } -func (UnimplementedPackagesServer) FetchComponentPackage(context.Context, *FetchComponentPackage_Request) (*FetchComponentPackage_Response, error) { - return nil, status.Errorf(codes.Unimplemented, "method FetchComponentPackage not implemented") -} func (UnimplementedPackagesServer) mustEmbedUnimplementedPackagesServer() {} func (UnimplementedPackagesServer) testEmbeddedByValue() {} @@ -315,24 +283,6 @@ func _Packages_FetchModulePackage_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } -func _Packages_ComponentPackageVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ComponentPackageVersions_Request) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(PackagesServer).ComponentPackageVersions(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Packages_ComponentPackageVersions_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PackagesServer).ComponentPackageVersions(ctx, req.(*ComponentPackageVersions_Request)) - } - return interceptor(ctx, in, info, handler) -} - func _Packages_ComponentPackageSourceAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ComponentPackageSourceAddr_Request) if err := dec(in); err != nil { @@ -351,24 +301,6 @@ func _Packages_ComponentPackageSourceAddr_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } -func _Packages_FetchComponentPackage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FetchComponentPackage_Request) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(PackagesServer).FetchComponentPackage(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Packages_FetchComponentPackage_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PackagesServer).FetchComponentPackage(ctx, req.(*FetchComponentPackage_Request)) - } - return interceptor(ctx, in, info, handler) -} - // Packages_ServiceDesc is the grpc.ServiceDesc for Packages service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -396,18 +328,10 @@ var Packages_ServiceDesc = grpc.ServiceDesc{ MethodName: "FetchModulePackage", Handler: _Packages_FetchModulePackage_Handler, }, - { - MethodName: "ComponentPackageVersions", - Handler: _Packages_ComponentPackageVersions_Handler, - }, { MethodName: "ComponentPackageSourceAddr", Handler: _Packages_ComponentPackageSourceAddr_Handler, }, - { - MethodName: "FetchComponentPackage", - Handler: _Packages_FetchComponentPackage_Handler, - }, }, Streams: []grpc.StreamDesc{}, Metadata: "packages.proto", From f6524dcdc52d5ba525f110fba190973c5a23214d Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Wed, 12 Nov 2025 15:48:25 -0800 Subject: [PATCH 07/21] refactor(registry): update client and rm unused method receiver --- internal/registry/client.go | 110 +++--------------------------------- 1 file changed, 9 insertions(+), 101 deletions(-) diff --git a/internal/registry/client.go b/internal/registry/client.go index b78566eb85dc..1c9d72f60ebb 100644 --- a/internal/registry/client.go +++ b/internal/registry/client.go @@ -7,7 +7,6 @@ import ( "context" "encoding/json" "fmt" - "io" "io/ioutil" "log" "net/http" @@ -278,98 +277,19 @@ func (c *Client) ModuleLocation(ctx context.Context, module *regsrc.Module, vers return location, nil } -// ComponentPackageVersions fetches all of the known exact versions -// available for the given package in its component registry. -func (c *Client) ComponentPackageVersions(ctx context.Context, pkgAddr regaddr.ComponentPackage) (sourcebundle.ComponentPackageVersionsResponse, error) { - var ret sourcebundle.ComponentPackageVersionsResponse - baseURL, err := c.registryComponentsBaseUrl(pkgAddr.Host) - if err != nil { - return ret, err - } - - // Query: GET /v1/components/{namespace}/{name}/versions - reqURL := baseURL.JoinPath( - url.PathEscape(pkgAddr.Namespace), - url.PathEscape(pkgAddr.Name), - "versions", - ) - - req, err := retryablehttp.NewRequest("GET", reqURL.String(), nil) - if err != nil { - return ret, err - } - - log.Print("[DEBUG] regURL=", reqURL.String()) - - c.addRequestCreds(pkgAddr.Host, req.Request) - req.Header.Set(xTerraformVersion, tfVersion) - - resp, err := c.client.Do(req) - if err != nil { - return ret, err - } - defer resp.Body.Close() - - switch resp.StatusCode { - case http.StatusOK: - // OK - case http.StatusNotFound: - return ret, fmt.Errorf("component not found: %s", resp.Status) - default: - return ret, fmt.Errorf("error looking up component versions: %s", resp.Status) - } - - raw, err := io.ReadAll(resp.Body) - if err != nil { - return ret, fmt.Errorf("error reading registry response: %w", err) - } - - type respVersion struct { - Version string `json:"version"` - } - type respComp struct { - Versions []respVersion `json:"versions"` - } - type respBody struct { - Components []respComp `json:"components"` - } - var body respBody - err = json.Unmarshal(raw, &body) - if err != nil { - return ret, fmt.Errorf("invalid registry response: %w", err) - } - if len(body.Components) < 1 { - return ret, fmt.Errorf("invalid registry response: no conmponent package") - } - - vs := body.Components[0].Versions - if len(vs) == 0 { - return ret, nil - } - - vvs := make([]sourcebundle.ComponentPackageInfo, len(vs)) - for i, v := range vs { - version, err := versions.ParseVersion(v.Version) - if err != nil { - return ret, fmt.Errorf("PENIS invalid registry response: invalid version %q: %w", v.Version, err) - } - vvs[i] = sourcebundle.ComponentPackageInfo{ - Version: version, - } - } - ret.Versions = vvs - - return ret, nil -} - // ComponentPackageSourceAddr fetches the real remote source address for the // given version of the given component registry package. func (c *Client) ComponentPackageSourceAddr(ctx context.Context, pkgAddr regaddr.ComponentPackage, version versions.Version) (sourcebundle.ComponentPackageSourceAddrResponse, error) { var ret sourcebundle.ComponentPackageSourceAddrResponse - baseURL, err := c.registryComponentsBaseUrl(pkgAddr.Host) + services, err := c.services.Discover(pkgAddr.Host) if err != nil { - return ret, err + return ret, fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) + } + + baseURL, err := services.ServiceURL("components.v3") + if err != nil { + return ret, fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) } reqURL := baseURL.JoinPath( @@ -389,7 +309,7 @@ func (c *Client) ComponentPackageSourceAddr(ctx context.Context, pkgAddr regaddr c.addRequestCreds(pkgAddr.Host, req.Request) req.Header.Set(xTerraformVersion, tfVersion) - // req = req.WithContext(ctx) + req = req.WithContext(ctx) resp, err := c.client.Do(req) if err != nil { @@ -407,7 +327,7 @@ func (c *Client) ComponentPackageSourceAddr(ctx context.Context, pkgAddr regaddr case http.StatusOK, http.StatusNoContent: // OK case http.StatusNotFound: - return ret, fmt.Errorf("module %q version %q not found", pkgAddr, version) + return ret, fmt.Errorf("component %q version %q not found", pkgAddr, version) default: // anything else is an error: return ret, fmt.Errorf("error getting download location for %q: %s resp:%s", pkgAddr, resp.Status, body) @@ -436,18 +356,6 @@ func (c *Client) ComponentPackageSourceAddr(ctx context.Context, pkgAddr regaddr return ret, nil } -func (c *Client) registryComponentsBaseUrl(hostname svchost.Hostname) (*url.URL, error) { - services, err := c.services.Discover(hostname) - if err != nil { - return nil, fmt.Errorf("service discovery failed for %s: %w", hostname.ForDisplay(), err) - } - base, err := services.ServiceURL("components.v3") - if err != nil { - return nil, fmt.Errorf("service discovery failed for %s: %w", hostname.ForDisplay(), err) - } - return base, nil -} - // configureDiscoveryRetry configures the number of retries the registry client // will attempt for requests with retryable errors, like 502 status codes func configureDiscoveryRetry() { From b9d8d86411705a555f1a287c74db1e64c5b40748 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Wed, 12 Nov 2025 15:48:59 -0800 Subject: [PATCH 08/21] chore(rpcapi): update packages service to rm unused service methods --- internal/rpcapi/packages.go | 46 ------------------------------------- 1 file changed, 46 deletions(-) diff --git a/internal/rpcapi/packages.go b/internal/rpcapi/packages.go index cee1d7b3a940..67153678ec5c 100644 --- a/internal/rpcapi/packages.go +++ b/internal/rpcapi/packages.go @@ -257,36 +257,6 @@ func (p *packagesServer) FetchModulePackage(ctx context.Context, request *packag return response, nil } -// NOTE: Might need to remove this as components.v3 does not have a /versions endpoint -func (p *packagesServer) ComponentPackageVersions(ctx context.Context, request *packages.ComponentPackageVersions_Request) (*packages.ComponentPackageVersions_Response, error) { - response := new(packages.ComponentPackageVersions_Response) - compAddrs, err := regaddrs.ParseComponentSource(request.SourceAddr) - if err != nil { - response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ - Severity: terraform1.Diagnostic_ERROR, - Summary: "Invalid component source", - Detail: fmt.Sprintf("Component source %s is invalid: %s.", request.SourceAddr, err), - }) - return response, nil - } - - client := registry.NewClient(p.services, nil) - pkgVersionsRes, err := client.ComponentPackageVersions(ctx, compAddrs.Package) - if err != nil { - response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ - Severity: terraform1.Diagnostic_ERROR, - Summary: "Failed to query available component packages", - Detail: fmt.Sprintf("Could not retrieve the list of available modules for module %s: %s.", compAddrs.ForDisplay(), err), - }) - } - - for _, comp := range pkgVersionsRes.Versions { - response.Versions = append(response.Versions, comp.Version.String()) - } - - return response, nil -} - func (p *packagesServer) ComponentPackageSourceAddr(ctx context.Context, request *packages.ComponentPackageSourceAddr_Request) (*packages.ComponentPackageSourceAddr_Response, error) { response := new(packages.ComponentPackageSourceAddr_Response) @@ -324,19 +294,3 @@ func (p *packagesServer) ComponentPackageSourceAddr(ctx context.Context, request return response, nil } - -func (p *packagesServer) FetchComponentPackage(ctx context.Context, request *packages.FetchComponentPackage_Request) (*packages.FetchComponentPackage_Response, error) { - response := new(packages.FetchComponentPackage_Response) - - fetcher := getmodules.NewPackageFetcher() - if err := fetcher.FetchPackage(ctx, request.CacheDir, request.Url); err != nil { - response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ - Severity: terraform1.Diagnostic_ERROR, - Summary: "Failed to download component package", - Detail: fmt.Sprintf("Could not download provider from %s: %s.", request.Url, err), - }) - return response, nil - } - - return response, nil -} From 5bea39c517518e7e69f933eac5d5301bba4b3ec3 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Wed, 12 Nov 2025 15:58:09 -0800 Subject: [PATCH 09/21] refactor(registry): rn registry client method and return basic string value --- internal/registry/client.go | 30 +++++++++++++----------------- internal/rpcapi/packages.go | 4 ++-- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/internal/registry/client.go b/internal/registry/client.go index 1c9d72f60ebb..0e1121273029 100644 --- a/internal/registry/client.go +++ b/internal/registry/client.go @@ -20,7 +20,6 @@ import ( "github.com/apparentlymart/go-versions/versions" "github.com/hashicorp/go-retryablehttp" sourceaddrs "github.com/hashicorp/go-slug/sourceaddrs" - sourcebundle "github.com/hashicorp/go-slug/sourcebundle" regaddr "github.com/hashicorp/terraform-registry-address" svchost "github.com/hashicorp/terraform-svchost" "github.com/hashicorp/terraform-svchost/disco" @@ -277,19 +276,17 @@ func (c *Client) ModuleLocation(ctx context.Context, module *regsrc.Module, vers return location, nil } -// ComponentPackageSourceAddr fetches the real remote source address for the +// ComponentLocation fetches the real remote source address for the // given version of the given component registry package. -func (c *Client) ComponentPackageSourceAddr(ctx context.Context, pkgAddr regaddr.ComponentPackage, version versions.Version) (sourcebundle.ComponentPackageSourceAddrResponse, error) { - var ret sourcebundle.ComponentPackageSourceAddrResponse - +func (c *Client) ComponentLocation(ctx context.Context, pkgAddr regaddr.ComponentPackage, version versions.Version) (string, error) { services, err := c.services.Discover(pkgAddr.Host) if err != nil { - return ret, fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) + return "", fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) } baseURL, err := services.ServiceURL("components.v3") if err != nil { - return ret, fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) + return "", fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) } reqURL := baseURL.JoinPath( @@ -303,7 +300,7 @@ func (c *Client) ComponentPackageSourceAddr(ctx context.Context, pkgAddr regaddr req, err := retryablehttp.NewRequestWithContext(ctx, "GET", reqURL.String(), nil) if err != nil { - return ret, fmt.Errorf("invalid request: %w", err) + return "", fmt.Errorf("invalid request: %w", err) } c.addRequestCreds(pkgAddr.Host, req.Request) @@ -313,35 +310,35 @@ func (c *Client) ComponentPackageSourceAddr(ctx context.Context, pkgAddr regaddr resp, err := c.client.Do(req) if err != nil { - return ret, err + return "", err } defer resp.Body.Close() // there should be no body, but save it for logging body, err := ioutil.ReadAll(resp.Body) if err != nil { - return ret, fmt.Errorf("error reading response body from registry: %s", err) + return "", fmt.Errorf("error reading response body from registry: %s", err) } switch resp.StatusCode { case http.StatusOK, http.StatusNoContent: // OK case http.StatusNotFound: - return ret, fmt.Errorf("component %q version %q not found", pkgAddr, version) + return "", fmt.Errorf("component %q version %q not found", pkgAddr, version) default: // anything else is an error: - return ret, fmt.Errorf("error getting download location for %q: %s resp:%s", pkgAddr, resp.Status, body) + return "", fmt.Errorf("error getting download location for %q: %s resp:%s", pkgAddr, resp.Status, body) } location := resp.Header.Get("x-terraform-get") if location == "" { - return ret, fmt.Errorf("failed to get download URL for %s %s", pkgAddr, version) + return "", fmt.Errorf("failed to get download URL for %s %s", pkgAddr, version) } if strings.HasPrefix(location, "/") || strings.HasPrefix(location, "./") || strings.HasPrefix(location, "../") { locationURL, err := url.Parse(location) if err != nil { - return ret, fmt.Errorf("invalid relative URL for %s: %s", pkgAddr, err) + return "", fmt.Errorf("invalid relative URL for %s: %s", pkgAddr, err) } locationURL = resp.Request.URL.ResolveReference(locationURL) location = locationURL.String() @@ -349,11 +346,10 @@ func (c *Client) ComponentPackageSourceAddr(ctx context.Context, pkgAddr regaddr srcAddr, err := sourceaddrs.ParseRemoteSource(location) if err != nil { - return ret, fmt.Errorf("invalid source address %q for %s: %s", location, pkgAddr, err) + return "", fmt.Errorf("invalid source address %q for %s: %s", location, pkgAddr, err) } - ret.SourceAddr = srcAddr - return ret, nil + return srcAddr.String(), nil } // configureDiscoveryRetry configures the number of retries the registry client diff --git a/internal/rpcapi/packages.go b/internal/rpcapi/packages.go index 67153678ec5c..dff5ba927417 100644 --- a/internal/rpcapi/packages.go +++ b/internal/rpcapi/packages.go @@ -280,7 +280,7 @@ func (p *packagesServer) ComponentPackageSourceAddr(ctx context.Context, request } client := registry.NewClient(p.services, nil) - compPkgRes, err := client.ComponentPackageSourceAddr(ctx, comp.Package, version) + location, err := client.ComponentLocation(ctx, comp.Package, version) if err != nil { response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ Severity: terraform1.Diagnostic_ERROR, @@ -290,7 +290,7 @@ func (p *packagesServer) ComponentPackageSourceAddr(ctx context.Context, request return response, nil } - response.Url = compPkgRes.SourceAddr.String() + response.Url = location return response, nil } From 67933a120dc4101aa793983209e68d42bc5720fd Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Fri, 14 Nov 2025 21:06:36 -0800 Subject: [PATCH 10/21] chore(rpcapi): add back component versions rpc method --- internal/rpcapi/dynrpcserver/packages.go | 8 + .../rpcapi/terraform1/packages/packages.pb.go | 302 +++++++++++++----- .../rpcapi/terraform1/packages/packages.proto | 10 + .../terraform1/packages/packages_grpc.pb.go | 38 +++ 4 files changed, 280 insertions(+), 78 deletions(-) diff --git a/internal/rpcapi/dynrpcserver/packages.go b/internal/rpcapi/dynrpcserver/packages.go index 54dd65997d91..76cf071cd8a0 100644 --- a/internal/rpcapi/dynrpcserver/packages.go +++ b/internal/rpcapi/dynrpcserver/packages.go @@ -31,6 +31,14 @@ func (s *Packages) ComponentPackageSourceAddr(a0 context.Context, a1 *packages.C return impl.ComponentPackageSourceAddr(a0, a1) } +func (s *Packages) ComponentPackageVersions(a0 context.Context, a1 *packages.ComponentPackageVersions_Request) (*packages.ComponentPackageVersions_Response, error) { + impl, err := s.realRPCServer() + if err != nil { + return nil, err + } + return impl.ComponentPackageVersions(a0, a1) +} + func (s *Packages) FetchModulePackage(a0 context.Context, a1 *packages.FetchModulePackage_Request) (*packages.FetchModulePackage_Response, error) { impl, err := s.realRPCServer() if err != nil { diff --git a/internal/rpcapi/terraform1/packages/packages.pb.go b/internal/rpcapi/terraform1/packages/packages.pb.go index 93a0c6091115..626cb196c07a 100644 --- a/internal/rpcapi/terraform1/packages/packages.pb.go +++ b/internal/rpcapi/terraform1/packages/packages.pb.go @@ -205,6 +205,42 @@ func (*FetchModulePackage) Descriptor() ([]byte, []int) { return file_packages_proto_rawDescGZIP(), []int{4} } +type ComponentPackageVersions struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentPackageVersions) Reset() { + *x = ComponentPackageVersions{} + mi := &file_packages_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComponentPackageVersions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentPackageVersions) ProtoMessage() {} + +func (x *ComponentPackageVersions) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentPackageVersions.ProtoReflect.Descriptor instead. +func (*ComponentPackageVersions) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{5} +} + type ComponentPackageSourceAddr struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields @@ -213,7 +249,7 @@ type ComponentPackageSourceAddr struct { func (x *ComponentPackageSourceAddr) Reset() { *x = ComponentPackageSourceAddr{} - mi := &file_packages_proto_msgTypes[5] + mi := &file_packages_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -225,7 +261,7 @@ func (x *ComponentPackageSourceAddr) String() string { func (*ComponentPackageSourceAddr) ProtoMessage() {} func (x *ComponentPackageSourceAddr) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[5] + mi := &file_packages_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -238,7 +274,7 @@ func (x *ComponentPackageSourceAddr) ProtoReflect() protoreflect.Message { // Deprecated: Use ComponentPackageSourceAddr.ProtoReflect.Descriptor instead. func (*ComponentPackageSourceAddr) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{5} + return file_packages_proto_rawDescGZIP(), []int{6} } type ProviderPackageVersions_Request struct { @@ -250,7 +286,7 @@ type ProviderPackageVersions_Request struct { func (x *ProviderPackageVersions_Request) Reset() { *x = ProviderPackageVersions_Request{} - mi := &file_packages_proto_msgTypes[6] + mi := &file_packages_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -262,7 +298,7 @@ func (x *ProviderPackageVersions_Request) String() string { func (*ProviderPackageVersions_Request) ProtoMessage() {} func (x *ProviderPackageVersions_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[6] + mi := &file_packages_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -295,7 +331,7 @@ type ProviderPackageVersions_Response struct { func (x *ProviderPackageVersions_Response) Reset() { *x = ProviderPackageVersions_Response{} - mi := &file_packages_proto_msgTypes[7] + mi := &file_packages_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -307,7 +343,7 @@ func (x *ProviderPackageVersions_Response) String() string { func (*ProviderPackageVersions_Response) ProtoMessage() {} func (x *ProviderPackageVersions_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[7] + mi := &file_packages_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -350,7 +386,7 @@ type FetchProviderPackage_Request struct { func (x *FetchProviderPackage_Request) Reset() { *x = FetchProviderPackage_Request{} - mi := &file_packages_proto_msgTypes[8] + mi := &file_packages_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -362,7 +398,7 @@ func (x *FetchProviderPackage_Request) String() string { func (*FetchProviderPackage_Request) ProtoMessage() {} func (x *FetchProviderPackage_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[8] + mi := &file_packages_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -428,7 +464,7 @@ type FetchProviderPackage_Response struct { func (x *FetchProviderPackage_Response) Reset() { *x = FetchProviderPackage_Response{} - mi := &file_packages_proto_msgTypes[9] + mi := &file_packages_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -440,7 +476,7 @@ func (x *FetchProviderPackage_Response) String() string { func (*FetchProviderPackage_Response) ProtoMessage() {} func (x *FetchProviderPackage_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[9] + mi := &file_packages_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -480,7 +516,7 @@ type FetchProviderPackage_PlatformResult struct { func (x *FetchProviderPackage_PlatformResult) Reset() { *x = FetchProviderPackage_PlatformResult{} - mi := &file_packages_proto_msgTypes[10] + mi := &file_packages_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -492,7 +528,7 @@ func (x *FetchProviderPackage_PlatformResult) String() string { func (*FetchProviderPackage_PlatformResult) ProtoMessage() {} func (x *FetchProviderPackage_PlatformResult) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[10] + mi := &file_packages_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -531,7 +567,7 @@ type ModulePackageVersions_Request struct { func (x *ModulePackageVersions_Request) Reset() { *x = ModulePackageVersions_Request{} - mi := &file_packages_proto_msgTypes[11] + mi := &file_packages_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -543,7 +579,7 @@ func (x *ModulePackageVersions_Request) String() string { func (*ModulePackageVersions_Request) ProtoMessage() {} func (x *ModulePackageVersions_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[11] + mi := &file_packages_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -576,7 +612,7 @@ type ModulePackageVersions_Response struct { func (x *ModulePackageVersions_Response) Reset() { *x = ModulePackageVersions_Response{} - mi := &file_packages_proto_msgTypes[12] + mi := &file_packages_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -588,7 +624,7 @@ func (x *ModulePackageVersions_Response) String() string { func (*ModulePackageVersions_Response) ProtoMessage() {} func (x *ModulePackageVersions_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[12] + mi := &file_packages_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -628,7 +664,7 @@ type ModulePackageSourceAddr_Request struct { func (x *ModulePackageSourceAddr_Request) Reset() { *x = ModulePackageSourceAddr_Request{} - mi := &file_packages_proto_msgTypes[13] + mi := &file_packages_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -640,7 +676,7 @@ func (x *ModulePackageSourceAddr_Request) String() string { func (*ModulePackageSourceAddr_Request) ProtoMessage() {} func (x *ModulePackageSourceAddr_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[13] + mi := &file_packages_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -680,7 +716,7 @@ type ModulePackageSourceAddr_Response struct { func (x *ModulePackageSourceAddr_Response) Reset() { *x = ModulePackageSourceAddr_Response{} - mi := &file_packages_proto_msgTypes[14] + mi := &file_packages_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -692,7 +728,7 @@ func (x *ModulePackageSourceAddr_Response) String() string { func (*ModulePackageSourceAddr_Response) ProtoMessage() {} func (x *ModulePackageSourceAddr_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[14] + mi := &file_packages_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -732,7 +768,7 @@ type FetchModulePackage_Request struct { func (x *FetchModulePackage_Request) Reset() { *x = FetchModulePackage_Request{} - mi := &file_packages_proto_msgTypes[15] + mi := &file_packages_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -744,7 +780,7 @@ func (x *FetchModulePackage_Request) String() string { func (*FetchModulePackage_Request) ProtoMessage() {} func (x *FetchModulePackage_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[15] + mi := &file_packages_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -783,7 +819,7 @@ type FetchModulePackage_Response struct { func (x *FetchModulePackage_Response) Reset() { *x = FetchModulePackage_Response{} - mi := &file_packages_proto_msgTypes[16] + mi := &file_packages_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -795,7 +831,7 @@ func (x *FetchModulePackage_Response) String() string { func (*FetchModulePackage_Response) ProtoMessage() {} func (x *FetchModulePackage_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[16] + mi := &file_packages_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -818,6 +854,102 @@ func (x *FetchModulePackage_Response) GetDiagnostics() []*terraform1.Diagnostic return nil } +type ComponentPackageVersions_Request struct { + state protoimpl.MessageState `protogen:"open.v1"` + SourceAddr string `protobuf:"bytes,2,opt,name=source_addr,json=sourceAddr,proto3" json:"source_addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentPackageVersions_Request) Reset() { + *x = ComponentPackageVersions_Request{} + mi := &file_packages_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComponentPackageVersions_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentPackageVersions_Request) ProtoMessage() {} + +func (x *ComponentPackageVersions_Request) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentPackageVersions_Request.ProtoReflect.Descriptor instead. +func (*ComponentPackageVersions_Request) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *ComponentPackageVersions_Request) GetSourceAddr() string { + if x != nil { + return x.SourceAddr + } + return "" +} + +type ComponentPackageVersions_Response struct { + state protoimpl.MessageState `protogen:"open.v1"` + Versions []string `protobuf:"bytes,1,rep,name=versions,proto3" json:"versions,omitempty"` + Diagnostics []*terraform1.Diagnostic `protobuf:"bytes,2,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComponentPackageVersions_Response) Reset() { + *x = ComponentPackageVersions_Response{} + mi := &file_packages_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComponentPackageVersions_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentPackageVersions_Response) ProtoMessage() {} + +func (x *ComponentPackageVersions_Response) ProtoReflect() protoreflect.Message { + mi := &file_packages_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentPackageVersions_Response.ProtoReflect.Descriptor instead. +func (*ComponentPackageVersions_Response) Descriptor() ([]byte, []int) { + return file_packages_proto_rawDescGZIP(), []int{5, 1} +} + +func (x *ComponentPackageVersions_Response) GetVersions() []string { + if x != nil { + return x.Versions + } + return nil +} + +func (x *ComponentPackageVersions_Response) GetDiagnostics() []*terraform1.Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + type ComponentPackageSourceAddr_Request struct { state protoimpl.MessageState `protogen:"open.v1"` SourceAddr string `protobuf:"bytes,1,opt,name=source_addr,json=sourceAddr,proto3" json:"source_addr,omitempty"` @@ -828,7 +960,7 @@ type ComponentPackageSourceAddr_Request struct { func (x *ComponentPackageSourceAddr_Request) Reset() { *x = ComponentPackageSourceAddr_Request{} - mi := &file_packages_proto_msgTypes[17] + mi := &file_packages_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -840,7 +972,7 @@ func (x *ComponentPackageSourceAddr_Request) String() string { func (*ComponentPackageSourceAddr_Request) ProtoMessage() {} func (x *ComponentPackageSourceAddr_Request) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[17] + mi := &file_packages_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -853,7 +985,7 @@ func (x *ComponentPackageSourceAddr_Request) ProtoReflect() protoreflect.Message // Deprecated: Use ComponentPackageSourceAddr_Request.ProtoReflect.Descriptor instead. func (*ComponentPackageSourceAddr_Request) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{5, 0} + return file_packages_proto_rawDescGZIP(), []int{6, 0} } func (x *ComponentPackageSourceAddr_Request) GetSourceAddr() string { @@ -880,7 +1012,7 @@ type ComponentPackageSourceAddr_Response struct { func (x *ComponentPackageSourceAddr_Response) Reset() { *x = ComponentPackageSourceAddr_Response{} - mi := &file_packages_proto_msgTypes[18] + mi := &file_packages_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -892,7 +1024,7 @@ func (x *ComponentPackageSourceAddr_Response) String() string { func (*ComponentPackageSourceAddr_Response) ProtoMessage() {} func (x *ComponentPackageSourceAddr_Response) ProtoReflect() protoreflect.Message { - mi := &file_packages_proto_msgTypes[18] + mi := &file_packages_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -905,7 +1037,7 @@ func (x *ComponentPackageSourceAddr_Response) ProtoReflect() protoreflect.Messag // Deprecated: Use ComponentPackageSourceAddr_Response.ProtoReflect.Descriptor instead. func (*ComponentPackageSourceAddr_Response) Descriptor() ([]byte, []int) { - return file_packages_proto_rawDescGZIP(), []int{5, 1} + return file_packages_proto_rawDescGZIP(), []int{6, 1} } func (x *ComponentPackageSourceAddr_Response) GetUrl() string { @@ -968,7 +1100,14 @@ const file_packages_proto_rawDesc = "" + "\tcache_dir\x18\x01 \x01(\tR\bcacheDir\x12\x10\n" + "\x03url\x18\x02 \x01(\tR\x03url\x1aD\n" + "\bResponse\x128\n" + - "\vdiagnostics\x18\x01 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\xba\x01\n" + + "\vdiagnostics\x18\x01 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\xa8\x01\n" + + "\x18ComponentPackageVersions\x1a*\n" + + "\aRequest\x12\x1f\n" + + "\vsource_addr\x18\x02 \x01(\tR\n" + + "sourceAddr\x1a`\n" + + "\bResponse\x12\x1a\n" + + "\bversions\x18\x01 \x03(\tR\bversions\x128\n" + + "\vdiagnostics\x18\x02 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics\"\xba\x01\n" + "\x1aComponentPackageSourceAddr\x1aD\n" + "\aRequest\x12\x1f\n" + "\vsource_addr\x18\x01 \x01(\tR\n" + @@ -976,13 +1115,14 @@ const file_packages_proto_rawDesc = "" + "\aversion\x18\x02 \x01(\tR\aversion\x1aV\n" + "\bResponse\x12\x10\n" + "\x03url\x18\x01 \x01(\tR\x03url\x128\n" + - "\vdiagnostics\x18\x02 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics2\xa9\x06\n" + + "\vdiagnostics\x18\x02 \x03(\v2\x16.terraform1.DiagnosticR\vdiagnostics2\xb5\a\n" + "\bPackages\x12\x86\x01\n" + "\x17ProviderPackageVersions\x124.terraform1.packages.ProviderPackageVersions.Request\x1a5.terraform1.packages.ProviderPackageVersions.Response\x12}\n" + "\x14FetchProviderPackage\x121.terraform1.packages.FetchProviderPackage.Request\x1a2.terraform1.packages.FetchProviderPackage.Response\x12\x80\x01\n" + "\x15ModulePackageVersions\x122.terraform1.packages.ModulePackageVersions.Request\x1a3.terraform1.packages.ModulePackageVersions.Response\x12\x86\x01\n" + "\x17ModulePackageSourceAddr\x124.terraform1.packages.ModulePackageSourceAddr.Request\x1a5.terraform1.packages.ModulePackageSourceAddr.Response\x12w\n" + - "\x12FetchModulePackage\x12/.terraform1.packages.FetchModulePackage.Request\x1a0.terraform1.packages.FetchModulePackage.Response\x12\x8f\x01\n" + + "\x12FetchModulePackage\x12/.terraform1.packages.FetchModulePackage.Request\x1a0.terraform1.packages.FetchModulePackage.Response\x12\x89\x01\n" + + "\x18ComponentPackageVersions\x125.terraform1.packages.ComponentPackageVersions.Request\x1a6.terraform1.packages.ComponentPackageVersions.Response\x12\x8f\x01\n" + "\x1aComponentPackageSourceAddr\x127.terraform1.packages.ComponentPackageSourceAddr.Request\x1a8.terraform1.packages.ComponentPackageSourceAddr.Responseb\x06proto3" var ( @@ -997,57 +1137,63 @@ func file_packages_proto_rawDescGZIP() []byte { return file_packages_proto_rawDescData } -var file_packages_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_packages_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_packages_proto_goTypes = []any{ (*ProviderPackageVersions)(nil), // 0: terraform1.packages.ProviderPackageVersions (*FetchProviderPackage)(nil), // 1: terraform1.packages.FetchProviderPackage (*ModulePackageVersions)(nil), // 2: terraform1.packages.ModulePackageVersions (*ModulePackageSourceAddr)(nil), // 3: terraform1.packages.ModulePackageSourceAddr (*FetchModulePackage)(nil), // 4: terraform1.packages.FetchModulePackage - (*ComponentPackageSourceAddr)(nil), // 5: terraform1.packages.ComponentPackageSourceAddr - (*ProviderPackageVersions_Request)(nil), // 6: terraform1.packages.ProviderPackageVersions.Request - (*ProviderPackageVersions_Response)(nil), // 7: terraform1.packages.ProviderPackageVersions.Response - (*FetchProviderPackage_Request)(nil), // 8: terraform1.packages.FetchProviderPackage.Request - (*FetchProviderPackage_Response)(nil), // 9: terraform1.packages.FetchProviderPackage.Response - (*FetchProviderPackage_PlatformResult)(nil), // 10: terraform1.packages.FetchProviderPackage.PlatformResult - (*ModulePackageVersions_Request)(nil), // 11: terraform1.packages.ModulePackageVersions.Request - (*ModulePackageVersions_Response)(nil), // 12: terraform1.packages.ModulePackageVersions.Response - (*ModulePackageSourceAddr_Request)(nil), // 13: terraform1.packages.ModulePackageSourceAddr.Request - (*ModulePackageSourceAddr_Response)(nil), // 14: terraform1.packages.ModulePackageSourceAddr.Response - (*FetchModulePackage_Request)(nil), // 15: terraform1.packages.FetchModulePackage.Request - (*FetchModulePackage_Response)(nil), // 16: terraform1.packages.FetchModulePackage.Response - (*ComponentPackageSourceAddr_Request)(nil), // 17: terraform1.packages.ComponentPackageSourceAddr.Request - (*ComponentPackageSourceAddr_Response)(nil), // 18: terraform1.packages.ComponentPackageSourceAddr.Response - (*terraform1.Diagnostic)(nil), // 19: terraform1.Diagnostic - (*terraform1.ProviderPackage)(nil), // 20: terraform1.ProviderPackage + (*ComponentPackageVersions)(nil), // 5: terraform1.packages.ComponentPackageVersions + (*ComponentPackageSourceAddr)(nil), // 6: terraform1.packages.ComponentPackageSourceAddr + (*ProviderPackageVersions_Request)(nil), // 7: terraform1.packages.ProviderPackageVersions.Request + (*ProviderPackageVersions_Response)(nil), // 8: terraform1.packages.ProviderPackageVersions.Response + (*FetchProviderPackage_Request)(nil), // 9: terraform1.packages.FetchProviderPackage.Request + (*FetchProviderPackage_Response)(nil), // 10: terraform1.packages.FetchProviderPackage.Response + (*FetchProviderPackage_PlatformResult)(nil), // 11: terraform1.packages.FetchProviderPackage.PlatformResult + (*ModulePackageVersions_Request)(nil), // 12: terraform1.packages.ModulePackageVersions.Request + (*ModulePackageVersions_Response)(nil), // 13: terraform1.packages.ModulePackageVersions.Response + (*ModulePackageSourceAddr_Request)(nil), // 14: terraform1.packages.ModulePackageSourceAddr.Request + (*ModulePackageSourceAddr_Response)(nil), // 15: terraform1.packages.ModulePackageSourceAddr.Response + (*FetchModulePackage_Request)(nil), // 16: terraform1.packages.FetchModulePackage.Request + (*FetchModulePackage_Response)(nil), // 17: terraform1.packages.FetchModulePackage.Response + (*ComponentPackageVersions_Request)(nil), // 18: terraform1.packages.ComponentPackageVersions.Request + (*ComponentPackageVersions_Response)(nil), // 19: terraform1.packages.ComponentPackageVersions.Response + (*ComponentPackageSourceAddr_Request)(nil), // 20: terraform1.packages.ComponentPackageSourceAddr.Request + (*ComponentPackageSourceAddr_Response)(nil), // 21: terraform1.packages.ComponentPackageSourceAddr.Response + (*terraform1.Diagnostic)(nil), // 22: terraform1.Diagnostic + (*terraform1.ProviderPackage)(nil), // 23: terraform1.ProviderPackage } var file_packages_proto_depIdxs = []int32{ - 19, // 0: terraform1.packages.ProviderPackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic - 10, // 1: terraform1.packages.FetchProviderPackage.Response.results:type_name -> terraform1.packages.FetchProviderPackage.PlatformResult - 19, // 2: terraform1.packages.FetchProviderPackage.Response.diagnostics:type_name -> terraform1.Diagnostic - 20, // 3: terraform1.packages.FetchProviderPackage.PlatformResult.provider:type_name -> terraform1.ProviderPackage - 19, // 4: terraform1.packages.FetchProviderPackage.PlatformResult.diagnostics:type_name -> terraform1.Diagnostic - 19, // 5: terraform1.packages.ModulePackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic - 19, // 6: terraform1.packages.ModulePackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic - 19, // 7: terraform1.packages.FetchModulePackage.Response.diagnostics:type_name -> terraform1.Diagnostic - 19, // 8: terraform1.packages.ComponentPackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic - 6, // 9: terraform1.packages.Packages.ProviderPackageVersions:input_type -> terraform1.packages.ProviderPackageVersions.Request - 8, // 10: terraform1.packages.Packages.FetchProviderPackage:input_type -> terraform1.packages.FetchProviderPackage.Request - 11, // 11: terraform1.packages.Packages.ModulePackageVersions:input_type -> terraform1.packages.ModulePackageVersions.Request - 13, // 12: terraform1.packages.Packages.ModulePackageSourceAddr:input_type -> terraform1.packages.ModulePackageSourceAddr.Request - 15, // 13: terraform1.packages.Packages.FetchModulePackage:input_type -> terraform1.packages.FetchModulePackage.Request - 17, // 14: terraform1.packages.Packages.ComponentPackageSourceAddr:input_type -> terraform1.packages.ComponentPackageSourceAddr.Request - 7, // 15: terraform1.packages.Packages.ProviderPackageVersions:output_type -> terraform1.packages.ProviderPackageVersions.Response - 9, // 16: terraform1.packages.Packages.FetchProviderPackage:output_type -> terraform1.packages.FetchProviderPackage.Response - 12, // 17: terraform1.packages.Packages.ModulePackageVersions:output_type -> terraform1.packages.ModulePackageVersions.Response - 14, // 18: terraform1.packages.Packages.ModulePackageSourceAddr:output_type -> terraform1.packages.ModulePackageSourceAddr.Response - 16, // 19: terraform1.packages.Packages.FetchModulePackage:output_type -> terraform1.packages.FetchModulePackage.Response - 18, // 20: terraform1.packages.Packages.ComponentPackageSourceAddr:output_type -> terraform1.packages.ComponentPackageSourceAddr.Response - 15, // [15:21] is the sub-list for method output_type - 9, // [9:15] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 22, // 0: terraform1.packages.ProviderPackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic + 11, // 1: terraform1.packages.FetchProviderPackage.Response.results:type_name -> terraform1.packages.FetchProviderPackage.PlatformResult + 22, // 2: terraform1.packages.FetchProviderPackage.Response.diagnostics:type_name -> terraform1.Diagnostic + 23, // 3: terraform1.packages.FetchProviderPackage.PlatformResult.provider:type_name -> terraform1.ProviderPackage + 22, // 4: terraform1.packages.FetchProviderPackage.PlatformResult.diagnostics:type_name -> terraform1.Diagnostic + 22, // 5: terraform1.packages.ModulePackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic + 22, // 6: terraform1.packages.ModulePackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic + 22, // 7: terraform1.packages.FetchModulePackage.Response.diagnostics:type_name -> terraform1.Diagnostic + 22, // 8: terraform1.packages.ComponentPackageVersions.Response.diagnostics:type_name -> terraform1.Diagnostic + 22, // 9: terraform1.packages.ComponentPackageSourceAddr.Response.diagnostics:type_name -> terraform1.Diagnostic + 7, // 10: terraform1.packages.Packages.ProviderPackageVersions:input_type -> terraform1.packages.ProviderPackageVersions.Request + 9, // 11: terraform1.packages.Packages.FetchProviderPackage:input_type -> terraform1.packages.FetchProviderPackage.Request + 12, // 12: terraform1.packages.Packages.ModulePackageVersions:input_type -> terraform1.packages.ModulePackageVersions.Request + 14, // 13: terraform1.packages.Packages.ModulePackageSourceAddr:input_type -> terraform1.packages.ModulePackageSourceAddr.Request + 16, // 14: terraform1.packages.Packages.FetchModulePackage:input_type -> terraform1.packages.FetchModulePackage.Request + 18, // 15: terraform1.packages.Packages.ComponentPackageVersions:input_type -> terraform1.packages.ComponentPackageVersions.Request + 20, // 16: terraform1.packages.Packages.ComponentPackageSourceAddr:input_type -> terraform1.packages.ComponentPackageSourceAddr.Request + 8, // 17: terraform1.packages.Packages.ProviderPackageVersions:output_type -> terraform1.packages.ProviderPackageVersions.Response + 10, // 18: terraform1.packages.Packages.FetchProviderPackage:output_type -> terraform1.packages.FetchProviderPackage.Response + 13, // 19: terraform1.packages.Packages.ModulePackageVersions:output_type -> terraform1.packages.ModulePackageVersions.Response + 15, // 20: terraform1.packages.Packages.ModulePackageSourceAddr:output_type -> terraform1.packages.ModulePackageSourceAddr.Response + 17, // 21: terraform1.packages.Packages.FetchModulePackage:output_type -> terraform1.packages.FetchModulePackage.Response + 19, // 22: terraform1.packages.Packages.ComponentPackageVersions:output_type -> terraform1.packages.ComponentPackageVersions.Response + 21, // 23: terraform1.packages.Packages.ComponentPackageSourceAddr:output_type -> terraform1.packages.ComponentPackageSourceAddr.Response + 17, // [17:24] is the sub-list for method output_type + 10, // [10:17] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_packages_proto_init() } @@ -1061,7 +1207,7 @@ func file_packages_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_packages_proto_rawDesc), len(file_packages_proto_rawDesc)), NumEnums: 0, - NumMessages: 19, + NumMessages: 22, NumExtensions: 0, NumServices: 1, }, diff --git a/internal/rpcapi/terraform1/packages/packages.proto b/internal/rpcapi/terraform1/packages/packages.proto index 5b74f25c58c6..dca4e9c30710 100644 --- a/internal/rpcapi/terraform1/packages/packages.proto +++ b/internal/rpcapi/terraform1/packages/packages.proto @@ -28,6 +28,8 @@ service Packages { rpc FetchModulePackage(FetchModulePackage.Request) returns (FetchModulePackage.Response); + rpc ComponentPackageVersions(ComponentPackageVersions.Request) + returns (ComponentPackageVersions.Response); rpc ComponentPackageSourceAddr(ComponentPackageSourceAddr.Request) returns (ComponentPackageSourceAddr.Response); } @@ -92,6 +94,14 @@ message FetchModulePackage { message Response { repeated terraform1.Diagnostic diagnostics = 1; } } +message ComponentPackageVersions { + message Request { string source_addr = 2; } + message Response { + repeated string versions = 1; + repeated terraform1.Diagnostic diagnostics = 2; + } +} + message ComponentPackageSourceAddr { message Request { string source_addr = 1; diff --git a/internal/rpcapi/terraform1/packages/packages_grpc.pb.go b/internal/rpcapi/terraform1/packages/packages_grpc.pb.go index 7644fbcb6543..7d80435fd585 100644 --- a/internal/rpcapi/terraform1/packages/packages_grpc.pb.go +++ b/internal/rpcapi/terraform1/packages/packages_grpc.pb.go @@ -27,6 +27,7 @@ const ( Packages_ModulePackageVersions_FullMethodName = "/terraform1.packages.Packages/ModulePackageVersions" Packages_ModulePackageSourceAddr_FullMethodName = "/terraform1.packages.Packages/ModulePackageSourceAddr" Packages_FetchModulePackage_FullMethodName = "/terraform1.packages.Packages/FetchModulePackage" + Packages_ComponentPackageVersions_FullMethodName = "/terraform1.packages.Packages/ComponentPackageVersions" Packages_ComponentPackageSourceAddr_FullMethodName = "/terraform1.packages.Packages/ComponentPackageSourceAddr" ) @@ -51,6 +52,7 @@ type PackagesClient interface { ModulePackageVersions(ctx context.Context, in *ModulePackageVersions_Request, opts ...grpc.CallOption) (*ModulePackageVersions_Response, error) ModulePackageSourceAddr(ctx context.Context, in *ModulePackageSourceAddr_Request, opts ...grpc.CallOption) (*ModulePackageSourceAddr_Response, error) FetchModulePackage(ctx context.Context, in *FetchModulePackage_Request, opts ...grpc.CallOption) (*FetchModulePackage_Response, error) + ComponentPackageVersions(ctx context.Context, in *ComponentPackageVersions_Request, opts ...grpc.CallOption) (*ComponentPackageVersions_Response, error) ComponentPackageSourceAddr(ctx context.Context, in *ComponentPackageSourceAddr_Request, opts ...grpc.CallOption) (*ComponentPackageSourceAddr_Response, error) } @@ -112,6 +114,16 @@ func (c *packagesClient) FetchModulePackage(ctx context.Context, in *FetchModule return out, nil } +func (c *packagesClient) ComponentPackageVersions(ctx context.Context, in *ComponentPackageVersions_Request, opts ...grpc.CallOption) (*ComponentPackageVersions_Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ComponentPackageVersions_Response) + err := c.cc.Invoke(ctx, Packages_ComponentPackageVersions_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *packagesClient) ComponentPackageSourceAddr(ctx context.Context, in *ComponentPackageSourceAddr_Request, opts ...grpc.CallOption) (*ComponentPackageSourceAddr_Response, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ComponentPackageSourceAddr_Response) @@ -143,6 +155,7 @@ type PackagesServer interface { ModulePackageVersions(context.Context, *ModulePackageVersions_Request) (*ModulePackageVersions_Response, error) ModulePackageSourceAddr(context.Context, *ModulePackageSourceAddr_Request) (*ModulePackageSourceAddr_Response, error) FetchModulePackage(context.Context, *FetchModulePackage_Request) (*FetchModulePackage_Response, error) + ComponentPackageVersions(context.Context, *ComponentPackageVersions_Request) (*ComponentPackageVersions_Response, error) ComponentPackageSourceAddr(context.Context, *ComponentPackageSourceAddr_Request) (*ComponentPackageSourceAddr_Response, error) mustEmbedUnimplementedPackagesServer() } @@ -169,6 +182,9 @@ func (UnimplementedPackagesServer) ModulePackageSourceAddr(context.Context, *Mod func (UnimplementedPackagesServer) FetchModulePackage(context.Context, *FetchModulePackage_Request) (*FetchModulePackage_Response, error) { return nil, status.Errorf(codes.Unimplemented, "method FetchModulePackage not implemented") } +func (UnimplementedPackagesServer) ComponentPackageVersions(context.Context, *ComponentPackageVersions_Request) (*ComponentPackageVersions_Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method ComponentPackageVersions not implemented") +} func (UnimplementedPackagesServer) ComponentPackageSourceAddr(context.Context, *ComponentPackageSourceAddr_Request) (*ComponentPackageSourceAddr_Response, error) { return nil, status.Errorf(codes.Unimplemented, "method ComponentPackageSourceAddr not implemented") } @@ -283,6 +299,24 @@ func _Packages_FetchModulePackage_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Packages_ComponentPackageVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ComponentPackageVersions_Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PackagesServer).ComponentPackageVersions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Packages_ComponentPackageVersions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PackagesServer).ComponentPackageVersions(ctx, req.(*ComponentPackageVersions_Request)) + } + return interceptor(ctx, in, info, handler) +} + func _Packages_ComponentPackageSourceAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ComponentPackageSourceAddr_Request) if err := dec(in); err != nil { @@ -328,6 +362,10 @@ var Packages_ServiceDesc = grpc.ServiceDesc{ MethodName: "FetchModulePackage", Handler: _Packages_FetchModulePackage_Handler, }, + { + MethodName: "ComponentPackageVersions", + Handler: _Packages_ComponentPackageVersions_Handler, + }, { MethodName: "ComponentPackageSourceAddr", Handler: _Packages_ComponentPackageSourceAddr_Handler, From 8890c88d3ede8e421244d151c39a66f70a5d2cbd Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Fri, 14 Nov 2025 21:09:18 -0800 Subject: [PATCH 11/21] feat: update registry client and rpcapi packages server --- internal/registry/client.go | 91 +++++++++++++++++-- .../registry/response/component_versions.go | 22 +++++ internal/rpcapi/packages.go | 32 +++++++ 3 files changed, 135 insertions(+), 10 deletions(-) create mode 100644 internal/registry/response/component_versions.go diff --git a/internal/registry/client.go b/internal/registry/client.go index 0e1121273029..1a57c660023f 100644 --- a/internal/registry/client.go +++ b/internal/registry/client.go @@ -276,29 +276,100 @@ func (c *Client) ModuleLocation(ctx context.Context, module *regsrc.Module, vers return location, nil } +// ComponentVersions fetches all of the known exact versions +// available for the given package in its component registry. +func (c *Client) ComponentVersions(ctx context.Context, pkgAddr regaddr.ComponentPackage) (*response.ComponentVersions, error) { + host, err := c.services.Discover(pkgAddr.Host) + if err != nil { + return nil, fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) + } + + service, err := host.ServiceURL(componentServiceID) + if err != nil { + return nil, fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) + } + + serviceUrl := service.JoinPath( + url.PathEscape(pkgAddr.Namespace), + url.PathEscape(pkgAddr.Name), + "versions", + ) + + log.Printf("[DEBUG] fetching component versions from %q", serviceUrl) + + req, err := retryablehttp.NewRequest("GET", serviceUrl.String(), nil) + if err != nil { + return nil, err + } + + c.addRequestCreds(pkgAddr.Host, req.Request) + req.Header.Set(xTerraformVersion, tfVersion) + + resp, err := c.client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + switch resp.StatusCode { + case http.StatusOK: + // OK + case http.StatusNotFound: + return nil, fmt.Errorf("component not found: %s", resp.Status) + default: + return nil, fmt.Errorf("error looking up component versions: %s", resp.Status) + } + + var versions response.ComponentVersions + + dec := json.NewDecoder(resp.Body) + if err := dec.Decode(&versions); err != nil { + return nil, err + } + + for _, comp := range versions.Components { + for _, v := range comp.Versions { + log.Printf("[DEBUG] found available version %q for %s", v.Version, comp.Source) + } + } + + return &versions, nil +} + // ComponentLocation fetches the real remote source address for the // given version of the given component registry package. func (c *Client) ComponentLocation(ctx context.Context, pkgAddr regaddr.ComponentPackage, version versions.Version) (string, error) { - services, err := c.services.Discover(pkgAddr.Host) + host, err := c.services.Discover(pkgAddr.Host) if err != nil { return "", fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) } - baseURL, err := services.ServiceURL("components.v3") + service, err := host.ServiceURL(componentServiceID) if err != nil { return "", fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) } - reqURL := baseURL.JoinPath( - url.PathEscape(pkgAddr.Namespace), - url.PathEscape(pkgAddr.Name), - url.PathEscape(version.String()), - "download", - ) + var download *url.URL + + // TODO: Verify if we can rely on unspecified in the request download url path + if version == versions.Unspecified { + download = service.JoinPath( + url.PathEscape(pkgAddr.Namespace), + url.PathEscape(pkgAddr.Name), + "download", + ) + } else { + download = service.JoinPath( + url.PathEscape(pkgAddr.Namespace), + url.PathEscape(pkgAddr.Name), + url.PathEscape(version.String()), + "download", + ) + } - log.Print("[DEBUG] regURL=", reqURL.String()) + log.Printf("[DEBUG] looking up module location from %q", download.String()) - req, err := retryablehttp.NewRequestWithContext(ctx, "GET", reqURL.String(), nil) + req, err := retryablehttp.NewRequestWithContext(ctx, "GET", download.String(), nil) if err != nil { return "", fmt.Errorf("invalid request: %w", err) } diff --git a/internal/registry/response/component_versions.go b/internal/registry/response/component_versions.go new file mode 100644 index 000000000000..e3cfe8124c89 --- /dev/null +++ b/internal/registry/response/component_versions.go @@ -0,0 +1,22 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: BUSL-1.1 +package response + +// ComponentVersions is the response format that contains metadata about +// versions needed for terraform CLI to resolve version constraints. +type ComponentVersions struct { + Components []*ComponentProviderVersions `json:"components"` +} + +// ComponentProviderVerions is the response format for a single module instance, +// containing metadata about all versions and their dependencies. +type ComponentProviderVersions struct { + Source string `json:"source"` + Versions []*ComponentVersion `json:"version"` +} + +// ComponentVersion is the output metadata for a given version needed by CLI to +// resolve candidate versions to satisfy requirements. +type ComponentVersion struct { + Version string `json:"version"` +} diff --git a/internal/rpcapi/packages.go b/internal/rpcapi/packages.go index dff5ba927417..876c5ebbbe84 100644 --- a/internal/rpcapi/packages.go +++ b/internal/rpcapi/packages.go @@ -257,6 +257,38 @@ func (p *packagesServer) FetchModulePackage(ctx context.Context, request *packag return response, nil } +func (p *packagesServer) ComponentPackageVersions(ctx context.Context, request *packages.ComponentPackageVersions_Request) (*packages.ComponentPackageVersions_Response, error) { + response := new(packages.ComponentPackageVersions_Response) + + compAddrs, err := regaddrs.ParseComponentSource(request.SourceAddr) + if err != nil { + response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ + Severity: terraform1.Diagnostic_ERROR, + Summary: "Invalid component source", + Detail: fmt.Sprintf("Component source %s is invalid: %s.", request.SourceAddr, err), + }) + return response, nil + } + + client := registry.NewClient(p.services, nil) + pkgVersions, err := client.ComponentVersions(ctx, compAddrs.Package) + if err != nil { + response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ + Severity: terraform1.Diagnostic_ERROR, + Summary: "Failed to query available component packages", + Detail: fmt.Sprintf("Could not retrieve the list of available modules for module %s: %s.", compAddrs.ForDisplay(), err), + }) + } + + for _, comp := range pkgVersions.Components { + for _, version := range comp.Versions { + response.Versions = append(response.Versions, version.Version) + } + } + + return response, nil +} + func (p *packagesServer) ComponentPackageSourceAddr(ctx context.Context, request *packages.ComponentPackageSourceAddr_Request) (*packages.ComponentPackageSourceAddr_Response, error) { response := new(packages.ComponentPackageSourceAddr_Response) From 9b20605981291ab51c7f1cf5d3cb32d0e889090d Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Fri, 14 Nov 2025 21:13:39 -0800 Subject: [PATCH 12/21] chore: update go-slug pkg dep to unreleased ver --- go.mod | 4 +--- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 0c4cbcfba4c1..17492b3b24df 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/hashicorp/go-hclog v1.6.3 github.com/hashicorp/go-plugin v1.7.0 github.com/hashicorp/go-retryablehttp v0.7.8 - github.com/hashicorp/go-slug v0.16.8 + github.com/hashicorp/go-slug v0.17.2-0.20251111194019-4b058a3792ea github.com/hashicorp/go-tfe v1.94.0 github.com/hashicorp/go-uuid v1.0.3 github.com/hashicorp/go-version v1.7.0 @@ -331,5 +331,3 @@ tool ( golang.org/x/tools/cmd/stringer honnef.co/go/tools/cmd/staticcheck ) - -replace github.com/hashicorp/go-slug => github.com/hashicorp/go-slug v0.17.2-0.20251112070849-b0735d70afe1 diff --git a/go.sum b/go.sum index 303931d0b899..473d2c4250da 100644 --- a/go.sum +++ b/go.sum @@ -482,8 +482,8 @@ github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3 github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-slug v0.17.2-0.20251112070849-b0735d70afe1 h1:m+oyqkZA8iINtH4Nv8P06Y317M8jJ/Q/LFBNM61xyAU= -github.com/hashicorp/go-slug v0.17.2-0.20251112070849-b0735d70afe1/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= +github.com/hashicorp/go-slug v0.17.2-0.20251111194019-4b058a3792ea h1:f8USPPXSpopYun+73JW4LQw6IQhOkbBlhthDFfzPHW0= +github.com/hashicorp/go-slug v0.17.2-0.20251111194019-4b058a3792ea/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-sockaddr v1.0.5 h1:dvk7TIXCZpmfOlM+9mlcrWmWjw/wlKT+VDq2wMvfPJU= From 4ceb8c5d6f8da6011d9e2786d66ae9cc8fee1153 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Mon, 17 Nov 2025 09:30:55 -0800 Subject: [PATCH 13/21] fix: rm redundant version parsing and diag detail msg --- internal/rpcapi/packages.go | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/internal/rpcapi/packages.go b/internal/rpcapi/packages.go index 876c5ebbbe84..939550ef43fc 100644 --- a/internal/rpcapi/packages.go +++ b/internal/rpcapi/packages.go @@ -276,7 +276,7 @@ func (p *packagesServer) ComponentPackageVersions(ctx context.Context, request * response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ Severity: terraform1.Diagnostic_ERROR, Summary: "Failed to query available component packages", - Detail: fmt.Sprintf("Could not retrieve the list of available modules for module %s: %s.", compAddrs.ForDisplay(), err), + Detail: fmt.Sprintf("Could not retrieve the list of available components for component %s: %s.", compAddrs.ForDisplay(), err), }) } @@ -302,17 +302,8 @@ func (p *packagesServer) ComponentPackageSourceAddr(ctx context.Context, request return response, err } - version, err := versions.ParseVersion(request.Version) - if err != nil { - response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ - Severity: terraform1.Diagnostic_ERROR, - Summary: "Invalid Component Version", - Detail: fmt.Sprintf("Component version %s is invalid: %s", request.Version, err), - }) - } - client := registry.NewClient(p.services, nil) - location, err := client.ComponentLocation(ctx, comp.Package, version) + location, err := client.ComponentLocation(ctx, comp.Package, request.Version) if err != nil { response.Diagnostics = append(response.Diagnostics, &terraform1.Diagnostic{ Severity: terraform1.Diagnostic_ERROR, From c45e507e6640c7ff6711b4db2cbba74712716341 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Mon, 17 Nov 2025 09:31:17 -0800 Subject: [PATCH 14/21] fix: accept generic version string --- internal/registry/client.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/internal/registry/client.go b/internal/registry/client.go index 1a57c660023f..89b92cb7d808 100644 --- a/internal/registry/client.go +++ b/internal/registry/client.go @@ -17,7 +17,6 @@ import ( "strings" "time" - "github.com/apparentlymart/go-versions/versions" "github.com/hashicorp/go-retryablehttp" sourceaddrs "github.com/hashicorp/go-slug/sourceaddrs" regaddr "github.com/hashicorp/terraform-registry-address" @@ -338,7 +337,7 @@ func (c *Client) ComponentVersions(ctx context.Context, pkgAddr regaddr.Componen // ComponentLocation fetches the real remote source address for the // given version of the given component registry package. -func (c *Client) ComponentLocation(ctx context.Context, pkgAddr regaddr.ComponentPackage, version versions.Version) (string, error) { +func (c *Client) ComponentLocation(ctx context.Context, pkgAddr regaddr.ComponentPackage, version string) (string, error) { host, err := c.services.Discover(pkgAddr.Host) if err != nil { return "", fmt.Errorf("service discovery failed for %s: %w", pkgAddr.Host.ForDisplay(), err) @@ -351,8 +350,7 @@ func (c *Client) ComponentLocation(ctx context.Context, pkgAddr regaddr.Componen var download *url.URL - // TODO: Verify if we can rely on unspecified in the request download url path - if version == versions.Unspecified { + if version == "" { download = service.JoinPath( url.PathEscape(pkgAddr.Namespace), url.PathEscape(pkgAddr.Name), @@ -362,7 +360,7 @@ func (c *Client) ComponentLocation(ctx context.Context, pkgAddr regaddr.Componen download = service.JoinPath( url.PathEscape(pkgAddr.Namespace), url.PathEscape(pkgAddr.Name), - url.PathEscape(version.String()), + url.PathEscape(version), "download", ) } From 0c19db9cec132562d4e66c646ad7969a42d7529c Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Mon, 17 Nov 2025 11:24:19 -0800 Subject: [PATCH 15/21] fix: update component location handling --- internal/registry/client.go | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/internal/registry/client.go b/internal/registry/client.go index 89b92cb7d808..9b6d75fd34ed 100644 --- a/internal/registry/client.go +++ b/internal/registry/client.go @@ -365,7 +365,7 @@ func (c *Client) ComponentLocation(ctx context.Context, pkgAddr regaddr.Componen ) } - log.Printf("[DEBUG] looking up module location from %q", download.String()) + log.Printf("[DEBUG] looking up component location from %q", download.String()) req, err := retryablehttp.NewRequestWithContext(ctx, "GET", download.String(), nil) if err != nil { @@ -399,20 +399,13 @@ func (c *Client) ComponentLocation(ctx context.Context, pkgAddr regaddr.Componen return "", fmt.Errorf("error getting download location for %q: %s resp:%s", pkgAddr, resp.Status, body) } + // the download location is in the X-Terraform-Get header location := resp.Header.Get("x-terraform-get") if location == "" { return "", fmt.Errorf("failed to get download URL for %s %s", pkgAddr, version) } - if strings.HasPrefix(location, "/") || strings.HasPrefix(location, "./") || strings.HasPrefix(location, "../") { - locationURL, err := url.Parse(location) - if err != nil { - return "", fmt.Errorf("invalid relative URL for %s: %s", pkgAddr, err) - } - locationURL = resp.Request.URL.ResolveReference(locationURL) - location = locationURL.String() - } - + // only remote sources are valid srcAddr, err := sourceaddrs.ParseRemoteSource(location) if err != nil { return "", fmt.Errorf("invalid source address %q for %s: %s", location, pkgAddr, err) From 23d7dbc0c5170e514e4aaf95637b891e90f33f87 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Mon, 17 Nov 2025 11:25:19 -0800 Subject: [PATCH 16/21] feat: implement test mock server for registry components.v3 --- internal/registry/test/mock_registry.go | 138 ++++++++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/internal/registry/test/mock_registry.go b/internal/registry/test/mock_registry.go index 8f71125521c0..d1ade44a5803 100644 --- a/internal/registry/test/mock_registry.go +++ b/internal/registry/test/mock_registry.go @@ -38,6 +38,18 @@ func Disco(s *httptest.Server) *disco.Disco { return d } +func DiscoForComponents(s *httptest.Server) *disco.Disco { + services := map[string]interface{}{ + "components.v3": fmt.Sprintf("%s/v3/components", s.URL), + } + + d := disco.NewWithCredentialsSource(credsSrc) + d.SetUserAgent(httpclient.TerraformUserAgent(tfversion.String())) + d.ForceHostServices(svchost.Hostname("example.com"), services) + + return d +} + // Map of module names and location of test modules. // Only one version for now, as we only lookup latest from the registry. type testMod struct { @@ -96,6 +108,14 @@ var testMods = map[string][]testMod{ "private/name/provider": { {version: "1.0.0"}, }, + // components + "component-namespace/name": { + { + location: "https://example.com/component-namespace/name/download/0.1.0/name.tgz", + version: "0.1.0", + }, + {version: "0.1.1"}, + }, } var testProviders = map[string][]testProvider{ @@ -261,3 +281,121 @@ func RegistryRetryableErrorsServer() *httptest.Server { }) return httptest.NewServer(mux) } + +// mockCompRegHandler returns a http handler for components.v3 services +func mockCompRegHandler() http.Handler { + mux := http.NewServeMux() + + mux.Handle("/v3/components/", + http.StripPrefix("/v3/components/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + // handle for /download request + if strings.HasSuffix(r.URL.Path, "/download") { + func(w http.ResponseWriter, r *http.Request) { + p := strings.TrimLeft(r.URL.Path, "/") + // handle download request + re := regexp.MustCompile(`^([-a-z]+/\w+).*/download$`) + // download lookup + matches := re.FindStringSubmatch(p) + + if len(matches) != 2 { + w.WriteHeader(http.StatusBadRequest) + return + } + + // check for auth + if strings.Contains(matches[0], "private/") { + if !strings.Contains(r.Header.Get("Authorization"), testCred) { + http.Error(w, "", http.StatusForbidden) + return + } + } + + versions, ok := testMods[matches[1]] + if !ok { + http.NotFound(w, r) + return + } + cmp := versions[0] + + location := cmp.location + + w.Header().Set("X-Terraform-Get", location) + w.WriteHeader(http.StatusNoContent) + }(w, r) + return + } + + if strings.HasSuffix(r.URL.Path, "/versions") { + func(w http.ResponseWriter, r *http.Request) { + p := strings.TrimLeft(r.URL.Path, "/") + re := regexp.MustCompile(`^([a-z-]+/\w+)/versions$`) + matches := re.FindStringSubmatch(p) + if len(matches) != 2 { + w.WriteHeader(http.StatusBadRequest) + return + } + + // check for auth + if strings.Contains(matches[1], "private/") { + if !strings.Contains(r.Header.Get("Authorization"), testCred) { + http.Error(w, "", http.StatusForbidden) + } + } + + name := matches[1] + versions, ok := testMods[name] + if !ok { + http.NotFound(w, r) + return + } + + // only adding the single requested module for now + // this is the minimal that any regisry is epected to support + cmpvs := &response.ComponentProviderVersions{ + Source: name, + } + + for _, v := range versions { + cv := &response.ComponentVersion{ + Version: v.version, + } + cmpvs.Versions = append(cmpvs.Versions, cv) + } + + resp := response.ComponentVersions{ + Components: []*response.ComponentProviderVersions{cmpvs}, + } + + js, err := json.Marshal(resp) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + w.Header().Set("Content-Type", "application/json") + w.Write(js) + }(w, r) + return + } + http.NotFound(w, r) + })), + ) + + mux.HandleFunc("/.well-known/terraform.json", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + io.WriteString(w, `{"components.v3":"http://localhost/v3/components/", "providers.v1":"http://localhost/v1/providers/"}`) + }) + return mux +} + +// ComponentRegistry returns http server that mocks registry components.v3 functionality only. +func ComponentRegistry() *httptest.Server { + return httptest.NewServer(mockCompRegHandler()) +} + +func ComponentRegistryRetryableErrorServer() *httptest.Server { + mux := http.NewServeMux() + mux.HandleFunc("/v3/components/", func(w http.ResponseWriter, r *http.Request) { + http.Error(w, "mocked server error", http.StatusBadGateway) + }) + return httptest.NewServer(mux) +} From a1f23f4b5842aa8441b7b4f38190cd7ca06f2a7a Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Mon, 17 Nov 2025 11:25:37 -0800 Subject: [PATCH 17/21] test: add registry test coverage for component handlers --- internal/registry/client_test.go | 121 +++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/internal/registry/client_test.go b/internal/registry/client_test.go index 8588ae384052..b5ab8bc00469 100644 --- a/internal/registry/client_test.go +++ b/internal/registry/client_test.go @@ -5,6 +5,7 @@ package registry import ( "context" + "fmt" "net/http" "os" "strings" @@ -12,6 +13,7 @@ import ( "time" version "github.com/hashicorp/go-version" + regaddr "github.com/hashicorp/terraform-registry-address" "github.com/hashicorp/terraform-svchost/disco" "github.com/hashicorp/terraform/internal/httpclient" "github.com/hashicorp/terraform/internal/registry/regsrc" @@ -370,3 +372,122 @@ func TestLookupModuleNetworkError(t *testing.T) { t.Fatal("unexpected error, got:", err) } } + +func TestLookupComponentVersions(t *testing.T) { + server := test.ComponentRegistry() + defer server.Close() + + client := NewClient(test.DiscoForComponents(server), nil) + + compName := `component-namespace/name` + host := `example.com` + compSrc, err := regaddr.ParseComponentSource(strings.Join([]string{host, compName}, "/")) + if err != nil { + t.Fatal(err) + } + + resp, err := client.ComponentVersions(context.Background(), compSrc.Package) + if err != nil { + t.Fatal(err) + } + + if len(resp.Components) != 1 { + t.Fatal("expected 1 component, got", len(resp.Components)) + } + + comp := resp.Components[0] + if comp.Source != compName { + t.Fatalf("expected component name %q, got %q", compName, comp.Source) + } + + if len(comp.Versions) != 2 { + t.Fatal("expected 2 versions, got", len(comp.Versions)) + } + + for _, v := range comp.Versions { + _, err := version.NewVersion(v.Version) + if err != nil { + t.Fatalf("invalid version %q: %s", v.Version, err) + } + } +} + +func TestLookupComponentLocation(t *testing.T) { + server := test.ComponentRegistry() + defer server.Close() + + client := NewClient(test.DiscoForComponents(server), nil) + + src := "example.com/component-namespace/name" + + compSrc, err := regaddr.ParseComponentSource(src) + if err != nil { + t.Fatal(err) + } + + got, err := client.ComponentLocation(context.Background(), compSrc.Package, "0.1.0") + if err != nil { + t.Fatal(err) + } + + want := strings.Join([]string{ + "https://example.com", + "component-namespace", + "name", + "download", + "0.1.0/name.tgz", + }, "/") + + if got != want { + t.Errorf("expected %s, received: %s", want, got) + } +} + +func TestLookupComponentRetryError(t *testing.T) { + server := test.ComponentRegistryRetryableErrorServer() + defer server.Close() + + client := NewClient(test.DiscoForComponents(server), nil) + + src := "example.com/component-namespace/name" + cmpSrc, err := regaddr.ParseComponentSource(src) + if err != nil { + t.Fatal(err) + } + resp, err := client.ComponentVersions(context.Background(), cmpSrc.Package) + if err == nil { + t.Fatal("expected requests to exceed retry", err) + } + if resp != nil { + t.Fatal("unexpected response", *resp) + } + + // verify maxRetryErrorHandler handler returned the error + if !strings.Contains(err.Error(), "the request failed after 2 attempts, please try again later") { + t.Fatal("unexpected error, got:", err) + } +} + +func TestComponentServiceDiscoError(t *testing.T) { + server := test.ComponentRegistry() + defer server.Close() + + client := NewClient(test.DiscoForComponents(server), nil) + + unsupportedHost := "unsupported-host.com" + src := unsupportedHost + "/component-namespace/name" + + compSrc, err := regaddr.ParseComponentSource(src) + if err != nil { + t.Fatal(err) + } + + _, err = client.ComponentLocation(context.Background(), compSrc.Package, "0.1.0") + if err == nil { + t.Fatal("expected error") + } + + if !strings.Contains(err.Error(), fmt.Sprintf("service discovery failed for %s:", unsupportedHost)) { + t.Fatalf("unexpected error message, got: %s", err) + } +} From c9e5529c788b5a3868808350bf82f67f57790d45 Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Mon, 17 Nov 2025 14:05:14 -0800 Subject: [PATCH 18/21] chore: bump go-slug dep to v0.18.0 --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 17492b3b24df..5539456cefe0 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/hashicorp/go-hclog v1.6.3 github.com/hashicorp/go-plugin v1.7.0 github.com/hashicorp/go-retryablehttp v0.7.8 - github.com/hashicorp/go-slug v0.17.2-0.20251111194019-4b058a3792ea + github.com/hashicorp/go-slug v0.18.0 github.com/hashicorp/go-tfe v1.94.0 github.com/hashicorp/go-uuid v1.0.3 github.com/hashicorp/go-version v1.7.0 diff --git a/go.sum b/go.sum index 473d2c4250da..d6fa9bd70e8b 100644 --- a/go.sum +++ b/go.sum @@ -484,6 +484,8 @@ github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5O github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-slug v0.17.2-0.20251111194019-4b058a3792ea h1:f8USPPXSpopYun+73JW4LQw6IQhOkbBlhthDFfzPHW0= github.com/hashicorp/go-slug v0.17.2-0.20251111194019-4b058a3792ea/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-sockaddr v1.0.5 h1:dvk7TIXCZpmfOlM+9mlcrWmWjw/wlKT+VDq2wMvfPJU= From c9a8109ac5a556774e15df325196fa87dbf4878d Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Mon, 17 Nov 2025 14:35:37 -0800 Subject: [PATCH 19/21] chore: cleanup go.sum --- go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/go.sum b/go.sum index d6fa9bd70e8b..b8d6cf32c8d0 100644 --- a/go.sum +++ b/go.sum @@ -482,8 +482,6 @@ github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3 github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-slug v0.17.2-0.20251111194019-4b058a3792ea h1:f8USPPXSpopYun+73JW4LQw6IQhOkbBlhthDFfzPHW0= -github.com/hashicorp/go-slug v0.17.2-0.20251111194019-4b058a3792ea/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= From 7e05c105c2da3635bca89b965d2aa19c725c50dd Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Mon, 17 Nov 2025 15:05:19 -0800 Subject: [PATCH 20/21] fix: sync deps between all packages for go-slug --- internal/backend/remote-state/azure/go.mod | 2 +- internal/backend/remote-state/azure/go.sum | 4 ++-- internal/backend/remote-state/consul/go.mod | 2 +- internal/backend/remote-state/consul/go.sum | 4 ++-- internal/backend/remote-state/cos/go.mod | 2 +- internal/backend/remote-state/cos/go.sum | 4 ++-- internal/backend/remote-state/gcs/go.mod | 2 +- internal/backend/remote-state/gcs/go.sum | 4 ++-- internal/backend/remote-state/kubernetes/go.mod | 2 +- internal/backend/remote-state/kubernetes/go.sum | 4 ++-- internal/backend/remote-state/oci/go.mod | 2 +- internal/backend/remote-state/oci/go.sum | 4 ++-- internal/backend/remote-state/oss/go.mod | 2 +- internal/backend/remote-state/oss/go.sum | 4 ++-- internal/backend/remote-state/pg/go.mod | 2 +- internal/backend/remote-state/pg/go.sum | 4 ++-- internal/backend/remote-state/s3/go.mod | 2 +- internal/backend/remote-state/s3/go.sum | 4 ++-- internal/legacy/go.mod | 2 +- internal/legacy/go.sum | 4 ++-- 20 files changed, 30 insertions(+), 30 deletions(-) diff --git a/internal/backend/remote-state/azure/go.mod b/internal/backend/remote-state/azure/go.mod index 263dc4efca87..1ce50b4f5178 100644 --- a/internal/backend/remote-state/azure/go.mod +++ b/internal/backend/remote-state/azure/go.mod @@ -35,7 +35,7 @@ require ( github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect github.com/hashicorp/go-retryablehttp v0.7.8 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl/v2 v2.24.0 // indirect github.com/hashicorp/logutils v1.0.0 // indirect diff --git a/internal/backend/remote-state/azure/go.sum b/internal/backend/remote-state/azure/go.sum index fde8322de983..4a181b1055fb 100644 --- a/internal/backend/remote-state/azure/go.sum +++ b/internal/backend/remote-state/azure/go.sum @@ -245,8 +245,8 @@ github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshf github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8= github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48= github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= diff --git a/internal/backend/remote-state/consul/go.mod b/internal/backend/remote-state/consul/go.mod index bae5dae6625e..a1acc049cc76 100644 --- a/internal/backend/remote-state/consul/go.mod +++ b/internal/backend/remote-state/consul/go.mod @@ -29,7 +29,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect diff --git a/internal/backend/remote-state/consul/go.sum b/internal/backend/remote-state/consul/go.sum index fa7a0a4e4e4d..e0feefb8128f 100644 --- a/internal/backend/remote-state/consul/go.sum +++ b/internal/backend/remote-state/consul/go.sum @@ -256,8 +256,8 @@ github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVU github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-sockaddr v1.0.5 h1:dvk7TIXCZpmfOlM+9mlcrWmWjw/wlKT+VDq2wMvfPJU= github.com/hashicorp/go-sockaddr v1.0.5/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= diff --git a/internal/backend/remote-state/cos/go.mod b/internal/backend/remote-state/cos/go.mod index 12ca95a87c38..5addf16c5a04 100644 --- a/internal/backend/remote-state/cos/go.mod +++ b/internal/backend/remote-state/cos/go.mod @@ -27,7 +27,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl/v2 v2.24.0 // indirect diff --git a/internal/backend/remote-state/cos/go.sum b/internal/backend/remote-state/cos/go.sum index 5846f1e23bde..1d434a7f27bb 100644 --- a/internal/backend/remote-state/cos/go.sum +++ b/internal/backend/remote-state/cos/go.sum @@ -216,8 +216,8 @@ github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshf github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8= github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48= github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= diff --git a/internal/backend/remote-state/gcs/go.mod b/internal/backend/remote-state/gcs/go.mod index a54be40a82fd..be4c6a4cc80a 100644 --- a/internal/backend/remote-state/gcs/go.mod +++ b/internal/backend/remote-state/gcs/go.mod @@ -37,7 +37,7 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl/v2 v2.24.0 // indirect diff --git a/internal/backend/remote-state/gcs/go.sum b/internal/backend/remote-state/gcs/go.sum index 4e33160b02d7..33bc4d6e1c53 100644 --- a/internal/backend/remote-state/gcs/go.sum +++ b/internal/backend/remote-state/gcs/go.sum @@ -220,8 +220,8 @@ github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshf github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8= github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48= github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= diff --git a/internal/backend/remote-state/kubernetes/go.mod b/internal/backend/remote-state/kubernetes/go.mod index c2de3b1d14dc..46850e315ec1 100644 --- a/internal/backend/remote-state/kubernetes/go.mod +++ b/internal/backend/remote-state/kubernetes/go.mod @@ -33,7 +33,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl/v2 v2.24.0 // indirect diff --git a/internal/backend/remote-state/kubernetes/go.sum b/internal/backend/remote-state/kubernetes/go.sum index d0c25aa33aaf..9725436058bd 100644 --- a/internal/backend/remote-state/kubernetes/go.sum +++ b/internal/backend/remote-state/kubernetes/go.sum @@ -232,8 +232,8 @@ github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshf github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8= github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48= github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= diff --git a/internal/backend/remote-state/oci/go.mod b/internal/backend/remote-state/oci/go.mod index dbe0a10e6a66..55fc646336ff 100644 --- a/internal/backend/remote-state/oci/go.mod +++ b/internal/backend/remote-state/oci/go.mod @@ -23,7 +23,7 @@ require ( github.com/golang/protobuf v1.5.4 // indirect github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl/v2 v2.24.0 // indirect github.com/hashicorp/terraform-registry-address v0.4.0 // indirect diff --git a/internal/backend/remote-state/oci/go.sum b/internal/backend/remote-state/oci/go.sum index bdaf6570b751..dd6c46417f87 100644 --- a/internal/backend/remote-state/oci/go.sum +++ b/internal/backend/remote-state/oci/go.sum @@ -212,8 +212,8 @@ github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshf github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8= github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48= github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= diff --git a/internal/backend/remote-state/oss/go.mod b/internal/backend/remote-state/oss/go.mod index 1797577e90db..d26a95afdaad 100644 --- a/internal/backend/remote-state/oss/go.mod +++ b/internal/backend/remote-state/oss/go.mod @@ -29,7 +29,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl/v2 v2.24.0 // indirect github.com/hashicorp/terraform-registry-address v0.4.0 // indirect diff --git a/internal/backend/remote-state/oss/go.sum b/internal/backend/remote-state/oss/go.sum index cb479628c8c6..8076bcc1f4d1 100644 --- a/internal/backend/remote-state/oss/go.sum +++ b/internal/backend/remote-state/oss/go.sum @@ -220,8 +220,8 @@ github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshf github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8= github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48= github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= diff --git a/internal/backend/remote-state/pg/go.mod b/internal/backend/remote-state/pg/go.mod index 4e56e783fd33..a34b200bbebf 100644 --- a/internal/backend/remote-state/pg/go.mod +++ b/internal/backend/remote-state/pg/go.mod @@ -23,7 +23,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/terraform-registry-address v0.4.0 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect diff --git a/internal/backend/remote-state/pg/go.sum b/internal/backend/remote-state/pg/go.sum index 6c5b35a9f80d..c867fb527088 100644 --- a/internal/backend/remote-state/pg/go.sum +++ b/internal/backend/remote-state/pg/go.sum @@ -209,8 +209,8 @@ github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshf github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8= github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48= github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= diff --git a/internal/backend/remote-state/s3/go.mod b/internal/backend/remote-state/s3/go.mod index bbad5e77bcd5..f14420591260 100644 --- a/internal/backend/remote-state/s3/go.mod +++ b/internal/backend/remote-state/s3/go.mod @@ -51,7 +51,7 @@ require ( github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-registry-address v0.4.0 // indirect diff --git a/internal/backend/remote-state/s3/go.sum b/internal/backend/remote-state/s3/go.sum index 0df44814d764..d22625b0e00c 100644 --- a/internal/backend/remote-state/s3/go.sum +++ b/internal/backend/remote-state/s3/go.sum @@ -229,8 +229,8 @@ github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshf github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8= github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48= github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= diff --git a/internal/legacy/go.mod b/internal/legacy/go.mod index 49bd2aa62236..27a07ce5d066 100644 --- a/internal/legacy/go.mod +++ b/internal/legacy/go.mod @@ -25,7 +25,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-plugin v1.7.0 // indirect - github.com/hashicorp/go-slug v0.16.8 // indirect + github.com/hashicorp/go-slug v0.18.0 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl/v2 v2.24.0 // indirect diff --git a/internal/legacy/go.sum b/internal/legacy/go.sum index 7a081c5ec639..4414316d3b0a 100644 --- a/internal/legacy/go.sum +++ b/internal/legacy/go.sum @@ -145,8 +145,8 @@ github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB1 github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshfk+mA= github.com/hashicorp/go-plugin v1.7.0/go.mod h1:BExt6KEaIYx804z8k4gRzRLEvxKVb+kn0NMcihqOqb8= -github.com/hashicorp/go-slug v0.16.8 h1:f4/sDZqRsxx006HrE6e9BE5xO9lWXydKhVoH6Kb0v1M= -github.com/hashicorp/go-slug v0.16.8/go.mod h1:hB4mUcVHl4RPu0205s0fwmB9i31MxQgeafGkko3FD+Y= +github.com/hashicorp/go-slug v0.18.0 h1:PInWGLemcAh4RxMJQg7HJR0mDOoiTgajpfHfevgnPww= +github.com/hashicorp/go-slug v0.18.0/go.mod h1:Zxkkl8/LfXmhxZO3fLXQUCy3MVXAJK9pybY8WoDPgvs= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= From c465a940fc8387f5f4585691294fb07832a4716f Mon Sep 17 00:00:00 2001 From: Michael Yocca Date: Mon, 17 Nov 2025 16:50:59 -0800 Subject: [PATCH 21/21] fix(rpcapi): handling bad responses from registry client --- internal/rpcapi/packages.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpcapi/packages.go b/internal/rpcapi/packages.go index 939550ef43fc..b1434b526cac 100644 --- a/internal/rpcapi/packages.go +++ b/internal/rpcapi/packages.go @@ -278,6 +278,7 @@ func (p *packagesServer) ComponentPackageVersions(ctx context.Context, request * Summary: "Failed to query available component packages", Detail: fmt.Sprintf("Could not retrieve the list of available components for component %s: %s.", compAddrs.ForDisplay(), err), }) + return response, err } for _, comp := range pkgVersions.Components {