From 2409be42caceb996260e70905bd34fb1c9fed839 Mon Sep 17 00:00:00 2001 From: Eugene Dementyev Date: Wed, 8 Mar 2023 08:02:57 +1300 Subject: [PATCH] Fixes depends_on when overriding modules Fixes #32795 --- internal/configs/module_merge.go | 4 ++-- internal/configs/module_merge_test.go | 20 +++++++++++++++++++ .../valid-modules/override-module/primary.tf | 2 ++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/internal/configs/module_merge.go b/internal/configs/module_merge.go index 2381a88d1134..9494343f2e8a 100644 --- a/internal/configs/module_merge.go +++ b/internal/configs/module_merge.go @@ -190,12 +190,12 @@ func (mc *ModuleCall) merge(omc *ModuleCall) hcl.Diagnostics { // We don't allow depends_on to be overridden because that is likely to // cause confusing misbehavior. - if len(mc.DependsOn) != 0 { + if len(omc.DependsOn) != 0 { diags = append(diags, &hcl.Diagnostic{ Severity: hcl.DiagError, Summary: "Unsupported override", Detail: "The depends_on argument may not be overridden.", - Subject: mc.DependsOn[0].SourceRange().Ptr(), // the first item is the closest range we have + Subject: omc.DependsOn[0].SourceRange().Ptr(), // the first item is the closest range we have }) } diff --git a/internal/configs/module_merge_test.go b/internal/configs/module_merge_test.go index b5d7fb368c69..5d590661c728 100644 --- a/internal/configs/module_merge_test.go +++ b/internal/configs/module_merge_test.go @@ -117,6 +117,26 @@ func TestModuleOverrideModule(t *testing.T) { Byte: 17, }, }, + DependsOn: []hcl.Traversal{ + { + hcl.TraverseRoot{ + Name: "null_resource", + SrcRange: hcl.Range{ + Filename: "testdata/valid-modules/override-module/primary.tf", + Start: hcl.Pos{Line: 11, Column: 17, Byte: 149}, + End: hcl.Pos{Line: 11, Column: 30, Byte: 162}, + }, + }, + hcl.TraverseAttr{ + Name: "test", + SrcRange: hcl.Range{ + Filename: "testdata/valid-modules/override-module/primary.tf", + Start: hcl.Pos{Line: 11, Column: 30, Byte: 162}, + End: hcl.Pos{Line: 11, Column: 35, Byte: 167}, + }, + }, + }, + }, Providers: []PassedProviderConfig{ { InChild: &ProviderConfigRef{ diff --git a/internal/configs/testdata/valid-modules/override-module/primary.tf b/internal/configs/testdata/valid-modules/override-module/primary.tf index a676a00eedd6..01a870da8818 100644 --- a/internal/configs/testdata/valid-modules/override-module/primary.tf +++ b/internal/configs/testdata/valid-modules/override-module/primary.tf @@ -8,4 +8,6 @@ module "example" { providers = { test = test.foo } + depends_on = [null_resource.test] } +resource "null_resource" "test" {}