1
0
mirror of https://github.com/rancher/norman.git synced 2025-08-16 14:27:05 +00:00

Add support for list in annotation field

This commit is contained in:
Darren Shepherd 2017-12-29 15:10:20 -07:00
parent 2bd0ed6014
commit 16783cf1d3

View File

@ -11,6 +11,7 @@ import (
type AnnotationField struct { type AnnotationField struct {
Field string Field string
Object bool Object bool
List bool
IgnoreDefinition bool IgnoreDefinition bool
} }
@ -24,6 +25,12 @@ func (e AnnotationField) FromInternal(data map[string]interface{}) {
v = data v = data
} }
} }
if e.List {
var data []interface{}
if err := json.Unmarshal([]byte(convert.ToString(v)), &data); err == nil {
v = data
}
}
data[e.Field] = v data[e.Field] = v
} }
@ -32,7 +39,7 @@ func (e AnnotationField) FromInternal(data map[string]interface{}) {
func (e AnnotationField) ToInternal(data map[string]interface{}) { func (e AnnotationField) ToInternal(data map[string]interface{}) {
v, ok := data[e.Field] v, ok := data[e.Field]
if ok { if ok {
if e.Object { if e.Object || e.List {
if bytes, err := json.Marshal(v); err == nil { if bytes, err := json.Marshal(v); err == nil {
v = string(bytes) v = string(bytes)
} }