1
0
mirror of https://github.com/rancher/types.git synced 2025-06-24 20:51:33 +00:00
types/mapper/node_address.go

55 lines
1.2 KiB
Go
Raw Normal View History

2017-11-15 04:45:08 +00:00
package mapper
import (
"github.com/rancher/norman/types"
2017-11-29 21:38:39 +00:00
"github.com/rancher/norman/types/values"
2017-11-15 04:45:08 +00:00
)
2018-04-10 23:11:27 +00:00
const (
extIPField = "externalIpAddress"
)
2017-11-15 04:45:08 +00:00
type NodeAddressMapper struct {
}
func (n NodeAddressMapper) FromInternal(data map[string]interface{}) {
2017-11-29 21:38:39 +00:00
addresses, _ := values.GetSlice(data, "addresses")
2017-11-15 04:45:08 +00:00
for _, address := range addresses {
t := address["type"]
a := address["address"]
if t == "InternalIP" {
2017-12-29 22:20:33 +00:00
data["ipAddress"] = a
2018-04-03 21:00:43 +00:00
} else if t == "ExternalIP" {
2018-04-10 23:11:27 +00:00
data[extIPField] = a
2017-11-15 04:45:08 +00:00
} else if t == "Hostname" {
data["hostname"] = a
}
}
}
2018-06-05 04:44:54 +00:00
func (n NodeAddressMapper) ToInternal(data map[string]interface{}) error {
return nil
2017-11-15 04:45:08 +00:00
}
func (n NodeAddressMapper) ModifySchema(schema *types.Schema, schemas *types.Schemas) error {
return nil
}
2018-04-10 23:11:27 +00:00
type NodeAddressAnnotationMapper struct {
}
func (n NodeAddressAnnotationMapper) FromInternal(data map[string]interface{}) {
externalIP, ok := values.GetValue(data, "status", "nodeAnnotations", "rke.cattle.io/external-ip")
if ok {
data[extIPField] = externalIP
}
}
2018-06-05 04:44:54 +00:00
func (n NodeAddressAnnotationMapper) ToInternal(data map[string]interface{}) error {
return nil
2018-04-10 23:11:27 +00:00
}
func (n NodeAddressAnnotationMapper) ModifySchema(schema *types.Schema, schemas *types.Schemas) error {
return nil
}