Skip to content

Commit 593f923

Browse files
authored
Merge pull request #583 from monopole/fix560
Ignore empty fields targeted by transformations.
2 parents df3ec57 + 6b93973 commit 593f923

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

pkg/transformers/mutatefield.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ package transformers
1818

1919
import (
2020
"fmt"
21+
"log"
22+
"strings"
2123
)
2224

2325
type mutateFunc func(interface{}) (interface{}, error)
@@ -53,6 +55,11 @@ func mutateField(
5355
v := m[pathToField[0]]
5456
newPathToField := pathToField[1:]
5557
switch typedV := v.(type) {
58+
case nil:
59+
log.Printf(
60+
"nil value at `%s` ignored in mutation attempt",
61+
strings.Join(pathToField, "."))
62+
return nil
5663
case map[string]interface{}:
5764
return mutateField(typedV, newPathToField, createIfNotPresent, fns...)
5865
case []interface{}:

pkg/transformers/mutatefield_test.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,7 @@ func TestWithNil(t *testing.T) {
162162
m := &noopMutator{}
163163
err := mutateField(
164164
obj.Map(), []string{"spec", "template", "metadata", "labels", "vegetable"}, false, m.mutate)
165-
if err == nil {
166-
t.Fatalf("Expected error due to nil field.")
167-
}
168-
if err.Error() != "<nil> is not expected to be a primitive type" {
169-
t.Fatalf("unexpected error: %v", err)
165+
if err != nil {
166+
t.Fatalf("Unexpected error: %v", err)
170167
}
171168
}

0 commit comments

Comments
 (0)