From f8805e87a411275a298d20cc7b99d36dfa49354a Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Mon, 6 Nov 2023 15:12:32 +0100 Subject: [PATCH] merge tags in GetterFrom Signed-off-by: Christian Goll --- CHANGELOG.md | 1 + internal/pkg/node/transformers.go | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87cae42a..5183379f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed the ability to set MTU with wwctl #947 - Fixed a bug where profile tags were erroneously overridden by empty node values. #884 +- Fixed bug where tags from profiles weren't rendered #967 ### Changed diff --git a/internal/pkg/node/transformers.go b/internal/pkg/node/transformers.go index feabcc7c..61ff21d0 100644 --- a/internal/pkg/node/transformers.go +++ b/internal/pkg/node/transformers.go @@ -74,8 +74,11 @@ func recursiveGetter( if !targetValue.Elem().Field(i).MapIndex(sourceIter.Key()).IsValid() { // Only write entries for which have real values. This matters for // tags, as empty map elements can be created without this check - if ((sourceIter.Value().Interface()).(*Entry)).GotReal() { - str := getter((sourceIter.Value().Interface()).(*Entry)) + // The alternative was following check: + // if ((sourceIter.Value().Interface()).(*Entry)).GotReal() { + // but this one failed for tags in templates + str := getter((sourceIter.Value().Interface()).(*Entry)) + if str != "" { targetValue.Elem().Field(i).SetMapIndex(sourceIter.Key(), reflect.ValueOf(str)) } }