1
0
mirror of https://github.com/rancher/steve.git synced 2025-08-27 18:41:24 +00:00
steve/pkg/resources/schema/defaultmapper.go
2019-08-13 16:36:03 -07:00

39 lines
802 B
Go

package schema
import (
"fmt"
"github.com/rancher/norman/pkg/types"
"github.com/rancher/norman/pkg/types/convert"
"github.com/rancher/norman/pkg/types/values"
)
func newDefaultMapper() types.Mapper {
return &defaultMapper{}
}
type defaultMapper struct {
types.EmptyMapper
}
func (d *defaultMapper) FromInternal(data map[string]interface{}) {
if data["kind"] != "" && data["apiVersion"] != "" {
if t, ok := data["type"]; ok && data != nil {
data["_type"] = t
}
}
if _, ok := data["id"]; ok || data == nil {
return
}
name := convert.ToString(values.GetValueN(data, "metadata", "name"))
namespace := convert.ToString(values.GetValueN(data, "metadata", "namespace"))
if namespace == "" {
data["id"] = name
} else {
data["id"] = fmt.Sprintf("%s/%s", namespace, name)
}
}