From df6dad5070db77fe55de8b40348d3c181c9dd000 Mon Sep 17 00:00:00 2001 From: Katy Moe Date: Mon, 1 Nov 2021 19:00:54 +0000 Subject: [PATCH 1/3] add failing test for IgnoreAllChanges override --- internal/configs/module_merge_test.go | 10 ++++++++++ .../valid-modules/override-ignore-changes/main.tf | 3 +++ .../override-ignore-changes/main_override.tf | 6 ++++++ 3 files changed, 19 insertions(+) create mode 100644 internal/configs/testdata/valid-modules/override-ignore-changes/main.tf create mode 100644 internal/configs/testdata/valid-modules/override-ignore-changes/main_override.tf diff --git a/internal/configs/module_merge_test.go b/internal/configs/module_merge_test.go index d95e62c3c..b5d7fb368 100644 --- a/internal/configs/module_merge_test.go +++ b/internal/configs/module_merge_test.go @@ -320,3 +320,13 @@ func TestModuleOverrideResourceFQNs(t *testing.T) { t.Fatalf("wrong result: found provider config ref %s, expected nil", got.ProviderConfigRef) } } + +func TestModuleOverrideIgnoreAllChanges(t *testing.T) { + mod, diags := testModuleFromDir("testdata/valid-modules/override-ignore-changes") + assertNoDiagnostics(t, diags) + + r := mod.ManagedResources["test_instance.foo"] + if !r.Managed.IgnoreAllChanges { + t.Fatalf("wrong result: expected r.Managed.IgnoreAllChanges to be true") + } +} diff --git a/internal/configs/testdata/valid-modules/override-ignore-changes/main.tf b/internal/configs/testdata/valid-modules/override-ignore-changes/main.tf new file mode 100644 index 000000000..55ae5151d --- /dev/null +++ b/internal/configs/testdata/valid-modules/override-ignore-changes/main.tf @@ -0,0 +1,3 @@ +resource "test_instance" "foo" { + foo = "bar" +} diff --git a/internal/configs/testdata/valid-modules/override-ignore-changes/main_override.tf b/internal/configs/testdata/valid-modules/override-ignore-changes/main_override.tf new file mode 100644 index 000000000..f9cd9a5d3 --- /dev/null +++ b/internal/configs/testdata/valid-modules/override-ignore-changes/main_override.tf @@ -0,0 +1,6 @@ +resource "test_instance" "foo" { + foo = "bar" + lifecycle { + ignore_changes = all + } +} From 257c24ff752e56b795c1b17f128d27bb7430e733 Mon Sep 17 00:00:00 2001 From: Katy Moe Date: Mon, 1 Nov 2021 19:08:30 +0000 Subject: [PATCH 2/3] IgnoreAllChanges should override during merge --- internal/configs/module_merge.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/configs/module_merge.go b/internal/configs/module_merge.go index 7dc380114..2381a88d1 100644 --- a/internal/configs/module_merge.go +++ b/internal/configs/module_merge.go @@ -242,6 +242,9 @@ func (r *Resource) merge(or *Resource, rps map[string]*RequiredProvider) hcl.Dia if len(or.Managed.IgnoreChanges) != 0 { r.Managed.IgnoreChanges = or.Managed.IgnoreChanges } + if or.Managed.IgnoreAllChanges { + r.Managed.IgnoreAllChanges = true + } if or.Managed.PreventDestroySet { r.Managed.PreventDestroy = or.Managed.PreventDestroy r.Managed.PreventDestroySet = or.Managed.PreventDestroySet From 8e640ae151c327cec9b8e5e552e103ac8c1e4464 Mon Sep 17 00:00:00 2001 From: Katy Moe Date: Mon, 1 Nov 2021 19:09:14 +0000 Subject: [PATCH 3/3] fix typo --- internal/configs/configschema/validate_traversal.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/configs/configschema/validate_traversal.go b/internal/configs/configschema/validate_traversal.go index ca293af98..f8a9efe12 100644 --- a/internal/configs/configschema/validate_traversal.go +++ b/internal/configs/configschema/validate_traversal.go @@ -17,7 +17,7 @@ import ( // diagnostics if any problems are found. // // This method is "optimistic" in that it will not return errors for possible -// problems that cannot be detected statically. It is possible that an +// problems that cannot be detected statically. It is possible that a // traversal which passed static validation will still fail when evaluated. func (b *Block) StaticValidateTraversal(traversal hcl.Traversal) tfdiags.Diagnostics { if !traversal.IsRelative() {