refactor Unmarshal Kustomization struct code

This commit is contained in:
yugo kobayashi
2022-12-13 20:36:26 +00:00
parent faddb49c89
commit 5fed0f76c8
21 changed files with 37 additions and 116 deletions

View File

@@ -4,8 +4,6 @@
package types
import (
"bytes"
"encoding/json"
"fmt"
"sigs.k8s.io/kustomize/kyaml/filesys"
@@ -318,17 +316,8 @@ func (k *Kustomization) EnforceFields() []string {
// Unmarshal replace k with the content in YAML input y
func (k *Kustomization) Unmarshal(y []byte) error {
j, err := yaml.YAMLToJSON(y)
if err != nil {
return err
if err := yaml.UnmarshalStrict(y, &k); err != nil {
return fmt.Errorf("kustomization unmarshal error: %w", err)
}
dec := json.NewDecoder(bytes.NewReader(j))
dec.DisallowUnknownFields()
var nk Kustomization
err = dec.Decode(&nk)
if err != nil {
return err
}
*k = nk
return nil
}

View File

@@ -278,7 +278,7 @@ unknown: foo`)
if err == nil {
t.Fatalf("expect an error")
}
expect := "json: unknown field \"unknown\""
expect := "kustomization unmarshal error: error unmarshaling JSON: while decoding JSON: json: unknown field \"unknown\""
if err.Error() != expect {
t.Fatalf("expect %v but got: %v", expect, err.Error())
}