1
0
mirror of https://github.com/rancher/types.git synced 2025-10-22 03:29:45 +00:00

Vendor changes for embed mapper

This commit is contained in:
Prachi Damle
2018-06-07 12:15:51 -07:00
committed by Alena Prokharchyk
parent a15097a11b
commit 3482812846
3 changed files with 32 additions and 1 deletions

25
vendor/github.com/rancher/norman/types/encoder.go generated vendored Normal file
View File

@@ -0,0 +1,25 @@
package types
import (
"encoding/json"
"io"
"github.com/ghodss/yaml"
)
func JSONEncoder(writer io.Writer, v interface{}) error {
return json.NewEncoder(writer).Encode(v)
}
func YAMLEncoder(writer io.Writer, v interface{}) error {
data, err := json.Marshal(v)
if err != nil {
return err
}
buf, err := yaml.JSONToYAML(data)
if err != nil {
return err
}
_, err = writer.Write(buf)
return err
}

View File

@@ -13,6 +13,7 @@ type Embed struct {
Ignore []string
ignoreOverride bool
embeddedFields []string
EmptyValueOk bool
}
func (e *Embed) FromInternal(data map[string]interface{}) {
@@ -39,6 +40,9 @@ func (e *Embed) ToInternal(data map[string]interface{}) {
delete(data, fieldName)
}
if len(sub) == 0 {
if e.EmptyValueOk {
data[e.Field] = nil
}
return
}
data[e.Field] = sub