mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Fix #560 (kinda/sorta)
This commit is contained in:
@@ -18,6 +18,8 @@ package transformers
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
type mutateFunc func(interface{}) (interface{}, error)
|
type mutateFunc func(interface{}) (interface{}, error)
|
||||||
@@ -53,6 +55,11 @@ func mutateField(
|
|||||||
v := m[pathToField[0]]
|
v := m[pathToField[0]]
|
||||||
newPathToField := pathToField[1:]
|
newPathToField := pathToField[1:]
|
||||||
switch typedV := v.(type) {
|
switch typedV := v.(type) {
|
||||||
|
case nil:
|
||||||
|
log.Printf(
|
||||||
|
"nil value at `%s` ignored in mutation attempt",
|
||||||
|
strings.Join(pathToField, "."))
|
||||||
|
return nil
|
||||||
case map[string]interface{}:
|
case map[string]interface{}:
|
||||||
return mutateField(typedV, newPathToField, createIfNotPresent, fns...)
|
return mutateField(typedV, newPathToField, createIfNotPresent, fns...)
|
||||||
case []interface{}:
|
case []interface{}:
|
||||||
|
|||||||
@@ -162,10 +162,7 @@ func TestWithNil(t *testing.T) {
|
|||||||
m := &noopMutator{}
|
m := &noopMutator{}
|
||||||
err := mutateField(
|
err := mutateField(
|
||||||
obj.Map(), []string{"spec", "template", "metadata", "labels", "vegetable"}, false, m.mutate)
|
obj.Map(), []string{"spec", "template", "metadata", "labels", "vegetable"}, false, m.mutate)
|
||||||
if err == nil {
|
if err != nil {
|
||||||
t.Fatalf("Expected error due to nil field.")
|
t.Fatalf("Unexpected error: %v", err)
|
||||||
}
|
|
||||||
if err.Error() != "<nil> is not expected to be a primitive type" {
|
|
||||||
t.Fatalf("unexpected error: %v", err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user