From 8bab2a588d90766bd96220db7a85f2ba411c65be Mon Sep 17 00:00:00 2001 From: Daniel Schmidt Date: Tue, 5 Mar 2024 09:19:42 +0100 Subject: [PATCH] stacks: use component config address relative to stack --- internal/rpcapi/stacks.go | 8 ++++---- internal/rpcapi/stacks_test.go | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/rpcapi/stacks.go b/internal/rpcapi/stacks.go index ce47ca6ed3..35972f62be 100644 --- a/internal/rpcapi/stacks.go +++ b/internal/rpcapi/stacks.go @@ -147,11 +147,11 @@ func (s *stacksServer) FindStackConfigurationComponents(ctx context.Context, req } return &terraform1.FindStackConfigurationComponents_Response{ - Config: stackConfigMetaforProto(cfg.Root), + Config: stackConfigMetaforProto(cfg.Root, stackaddrs.RootStack), }, nil } -func stackConfigMetaforProto(cfgNode *stackconfig.ConfigNode) *terraform1.FindStackConfigurationComponents_StackConfig { +func stackConfigMetaforProto(cfgNode *stackconfig.ConfigNode, stackAddr stackaddrs.Stack) *terraform1.FindStackConfigurationComponents_StackConfig { ret := &terraform1.FindStackConfigurationComponents_StackConfig{ Components: make(map[string]*terraform1.FindStackConfigurationComponents_Component), EmbeddedStacks: make(map[string]*terraform1.FindStackConfigurationComponents_EmbeddedStack), @@ -160,7 +160,7 @@ func stackConfigMetaforProto(cfgNode *stackconfig.ConfigNode) *terraform1.FindSt for name, cc := range cfgNode.Stack.Components { cProto := &terraform1.FindStackConfigurationComponents_Component{ SourceAddr: cc.FinalSourceAddr.String(), - ComponentAddr: stackaddrs.Component{Name: cc.Name}.String(), + ComponentAddr: stackaddrs.Config(stackAddr, stackaddrs.Component{Name: cc.Name}).String(), } switch { case cc.ForEach != nil: @@ -175,7 +175,7 @@ func stackConfigMetaforProto(cfgNode *stackconfig.ConfigNode) *terraform1.FindSt sc := cfgNode.Stack.EmbeddedStacks[name] sProto := &terraform1.FindStackConfigurationComponents_EmbeddedStack{ SourceAddr: sn.Stack.SourceAddr.String(), - Config: stackConfigMetaforProto(sn), + Config: stackConfigMetaforProto(sn, stackAddr.Child(name)), } switch { case sc.ForEach != nil: diff --git a/internal/rpcapi/stacks_test.go b/internal/rpcapi/stacks_test.go index 0d4c34df5a..85660cf73b 100644 --- a/internal/rpcapi/stacks_test.go +++ b/internal/rpcapi/stacks_test.go @@ -201,7 +201,7 @@ func TestStacksFindStackConfigurationComponents(t *testing.T) { Components: map[string]*terraform1.FindStackConfigurationComponents_Component{ "foo": { SourceAddr: "git::https://example.com/foo.git//non-empty-stack/empty-module", - ComponentAddr: "component.foo", + ComponentAddr: "stack.single.component.foo", }, }, }, @@ -213,7 +213,7 @@ func TestStacksFindStackConfigurationComponents(t *testing.T) { Components: map[string]*terraform1.FindStackConfigurationComponents_Component{ "foo": { SourceAddr: "git::https://example.com/foo.git//non-empty-stack/empty-module", - ComponentAddr: "component.foo", + ComponentAddr: "stack.for_each.component.foo", }, }, },