From 3123ff3f3b79b73c612e4c318d29583568f5fe56 Mon Sep 17 00:00:00 2001 From: Lars Haugan Date: Fri, 28 Feb 2025 17:35:52 +0100 Subject: [PATCH] add json encoded debug logging of diff detected instead of GoString to ensure readability Signed-off-by: Lars Haugan --- pkg/controller/external_tfpluginsdk.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/controller/external_tfpluginsdk.go b/pkg/controller/external_tfpluginsdk.go index 95b0a8f6..5b127c56 100644 --- a/pkg/controller/external_tfpluginsdk.go +++ b/pkg/controller/external_tfpluginsdk.go @@ -447,7 +447,17 @@ func (n *terraformPluginSDKExternal) getResourceDataDiff(tr resource.Terraformed instanceDiff.RawPlan = v } if instanceDiff != nil && !instanceDiff.Empty() { - n.logger.Debug("Diff detected", "instanceDiff", instanceDiff.GoString()) + encodedDiff, err := json.TFParser.Marshal(map[string]any{ + "attributes": instanceDiff.Attributes, + "destroy": instanceDiff.Destroy, + "destroyTainted": instanceDiff.DestroyTainted, + "destroyDeposed": instanceDiff.DestroyDeposed, + }) + if err != nil { + n.logger.Debug("Diff detected", "instanceDiff", instanceDiff.GoString()) + } else { + n.logger.Debug("Diff detected", "instanceDiff", string(encodedDiff)) + } // Assumption: Source of truth when applying diffs, for instance on updates, is instanceDiff.Attributes. // Setting instanceDiff.RawConfig has no effect on diff application. instanceDiff.RawConfig = n.rawConfig