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: