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
|
|
|
|
}
|