From 9a5f408f488c1b1acfa6f6cb13aae38e53258a05 Mon Sep 17 00:00:00 2001 From: AkiraFukushima Date: Sun, 18 Apr 2021 17:51:18 +0900 Subject: [PATCH] Make it possible to detect field changes when mixedInstancePolicy is removed --- upup/pkg/fi/dryrun_target.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/upup/pkg/fi/dryrun_target.go b/upup/pkg/fi/dryrun_target.go index 10b38fe388..c90b769d15 100644 --- a/upup/pkg/fi/dryrun_target.go +++ b/upup/pkg/fi/dryrun_target.go @@ -302,11 +302,16 @@ func buildChangeList(a, e, changes Task) ([]change, error) { } fieldValC := valC.Field(i) + fieldValE := valE.Field(i) + fieldValA := valA.Field(i) changed := true switch fieldValC.Kind() { case reflect.Ptr, reflect.Interface, reflect.Slice, reflect.Map: changed = !fieldValC.IsNil() + if fieldValC.IsNil() && !fieldValA.IsNil() && fieldValE.IsNil() { + changed = true + } case reflect.String: changed = fieldValC.Interface().(string) != "" @@ -320,12 +325,9 @@ func buildChangeList(a, e, changes Task) ([]change, error) { continue } - fieldValE := valE.Field(i) - description := "" ignored := false if fieldValE.CanInterface() { - fieldValA := valA.Field(i) switch fieldValE.Interface().(type) { //case SimpleUnit: