From ab421a992228fde258110dc56cc7177976de1cf8 Mon Sep 17 00:00:00 2001 From: Steph Date: Thu, 13 Nov 2025 15:22:35 +0100 Subject: [PATCH 1/5] marshal state and set in the proto req for generate resource config --- internal/plugin/grpc_provider.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/internal/plugin/grpc_provider.go b/internal/plugin/grpc_provider.go index 3da172f78448..9afbce4a964b 100644 --- a/internal/plugin/grpc_provider.go +++ b/internal/plugin/grpc_provider.go @@ -940,9 +940,15 @@ func (p *GRPCProvider) GenerateResourceConfig(r providers.GenerateResourceConfig return resp } + mp, err := msgpack.Marshal(r.State, resSchema.Body.ImpliedType()) + if err != nil { + resp.Diagnostics = resp.Diagnostics.Append(err) + return resp + } + protoReq := &proto.GenerateResourceConfig_Request{ TypeName: r.TypeName, - State: nil, + State: &proto.DynamicValue{Msgpack: mp}, } protoResp, err := p.client.GenerateResourceConfig(p.ctx, protoReq) From 22bc18c75ea50f7bba654c817fb14292ca865d04 Mon Sep 17 00:00:00 2001 From: Steph Date: Thu, 13 Nov 2025 15:29:08 +0100 Subject: [PATCH 2/5] changelog --- .changes/v1.15/BUG FIXES-20251113-152843.yaml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changes/v1.15/BUG FIXES-20251113-152843.yaml diff --git a/.changes/v1.15/BUG FIXES-20251113-152843.yaml b/.changes/v1.15/BUG FIXES-20251113-152843.yaml new file mode 100644 index 000000000000..4654468e7408 --- /dev/null +++ b/.changes/v1.15/BUG FIXES-20251113-152843.yaml @@ -0,0 +1,5 @@ +kind: BUG FIXES +body: Set state information in the proto request for the `GenerateResourceConfig` RPC +time: 2025-11-13T15:28:43.489677+01:00 +custom: + Issue: "37895" From 5d99e2e1fb9c2582df15260f7685a10fb3b991ca Mon Sep 17 00:00:00 2001 From: Steph Date: Thu, 13 Nov 2025 16:00:40 +0100 Subject: [PATCH 3/5] set state in the proto req for generate resource config in plugin6 --- internal/plugin6/grpc_provider.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/internal/plugin6/grpc_provider.go b/internal/plugin6/grpc_provider.go index 0339cefeeea2..cfe77265dd5d 100644 --- a/internal/plugin6/grpc_provider.go +++ b/internal/plugin6/grpc_provider.go @@ -945,9 +945,15 @@ func (p *GRPCProvider) GenerateResourceConfig(r providers.GenerateResourceConfig return resp } + mp, err := msgpack.Marshal(r.State, resSchema.Body.ImpliedType()) + if err != nil { + resp.Diagnostics = resp.Diagnostics.Append(err) + return resp + } + protoReq := &proto6.GenerateResourceConfig_Request{ TypeName: r.TypeName, - State: nil, + State: &proto6.DynamicValue{Msgpack: mp}, } protoResp, err := p.client.GenerateResourceConfig(p.ctx, protoReq) From bb0aaeef24d4063922ed7ee952191a50ef6cbb49 Mon Sep 17 00:00:00 2001 From: Steph Date: Fri, 14 Nov 2025 08:42:15 +0100 Subject: [PATCH 4/5] add GRPC tests for GenerateResourceConfig --- internal/plugin/grpc_provider_test.go | 33 ++++++++++++++++++++++++++ internal/plugin6/grpc_provider_test.go | 33 ++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/internal/plugin/grpc_provider_test.go b/internal/plugin/grpc_provider_test.go index 34017d724406..757cc9f49a48 100644 --- a/internal/plugin/grpc_provider_test.go +++ b/internal/plugin/grpc_provider_test.go @@ -2102,3 +2102,36 @@ func TestGRPCProvider_ListResource_Limit(t *testing.T) { t.Fatalf("Expected 2 events, got %d", len(results)) } } + +func TestGRPCProvider_GenerateResourceConfig(t *testing.T) { + client := mockProviderClient(t) + p := &GRPCProvider{ + client: client, + } + client.EXPECT().GenerateResourceConfig( + gomock.Any(), + gomock.Cond[any](func(x any) bool { + req := x.(*proto.GenerateResourceConfig_Request) + if req.TypeName != "resource" { + return false + } + if req.State == nil { + t.Log("GenerateResourceConfig state is nil") + return false + } + return true + }), + ).Return(&proto.GenerateResourceConfig_Response{ + Config: &proto.DynamicValue{ + Msgpack: []byte("\x81\xa4attr\xa3bar"), + }, + }, nil) + resp := p.GenerateResourceConfig(providers.GenerateResourceConfigRequest{ + TypeName: "resource", + State: cty.ObjectVal(map[string]cty.Value{ + "computed": cty.StringVal("computed"), + "attr": cty.StringVal("foo"), + }), + }) + checkDiags(t, resp.Diagnostics) +} diff --git a/internal/plugin6/grpc_provider_test.go b/internal/plugin6/grpc_provider_test.go index 0ebd3c88c3e8..0cec32179507 100644 --- a/internal/plugin6/grpc_provider_test.go +++ b/internal/plugin6/grpc_provider_test.go @@ -3366,3 +3366,36 @@ func TestGRPCProvider_WriteStateBytes(t *testing.T) { } }) } + +func TestGRPCProvider_GenerateResourceConfig(t *testing.T) { + client := mockProviderClient(t) + p := &GRPCProvider{ + client: client, + } + client.EXPECT().GenerateResourceConfig( + gomock.Any(), + gomock.Cond[any](func(x any) bool { + req := x.(*proto.GenerateResourceConfig_Request) + if req.TypeName != "resource" { + return false + } + if req.State == nil { + t.Log("GenerateResourceConfig state is nil") + return false + } + return true + }), + ).Return(&proto.GenerateResourceConfig_Response{ + Config: &proto.DynamicValue{ + Msgpack: []byte("\x81\xa4attr\xa3bar"), + }, + }, nil) + resp := p.GenerateResourceConfig(providers.GenerateResourceConfigRequest{ + TypeName: "resource", + State: cty.ObjectVal(map[string]cty.Value{ + "computed": cty.StringVal("computed"), + "attr": cty.StringVal("foo"), + }), + }) + checkDiags(t, resp.Diagnostics) +} From 1cac6ebfcae8c17b3e5acc37042b07e5a2321165 Mon Sep 17 00:00:00 2001 From: stephybun Date: Mon, 17 Nov 2025 08:29:43 +0100 Subject: [PATCH 5/5] remove changelog entry since this fix is backported to 1.14 --- .changes/v1.15/BUG FIXES-20251113-152843.yaml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .changes/v1.15/BUG FIXES-20251113-152843.yaml diff --git a/.changes/v1.15/BUG FIXES-20251113-152843.yaml b/.changes/v1.15/BUG FIXES-20251113-152843.yaml deleted file mode 100644 index 4654468e7408..000000000000 --- a/.changes/v1.15/BUG FIXES-20251113-152843.yaml +++ /dev/null @@ -1,5 +0,0 @@ -kind: BUG FIXES -body: Set state information in the proto request for the `GenerateResourceConfig` RPC -time: 2025-11-13T15:28:43.489677+01:00 -custom: - Issue: "37895"