github.com/rancher/types@v0.0.0-20220328215343-4370ff10ecd5/mapper/os_info.go (about) 1 package mapper 2 3 import ( 4 "strings" 5 6 "github.com/rancher/norman/types" 7 "github.com/rancher/norman/types/convert" 8 "github.com/rancher/norman/types/values" 9 ) 10 11 type OSInfo struct { 12 } 13 14 func (o OSInfo) FromInternal(data map[string]interface{}) { 15 if data == nil { 16 return 17 } 18 cpuInfo := map[string]interface{}{ 19 "count": values.GetValueN(data, "capacity", "cpu"), 20 } 21 22 kib := strings.TrimSuffix(convert.ToString(values.GetValueN(data, "capacity", "memory")), "Ki") 23 memoryInfo := map[string]interface{}{} 24 25 kibNum, err := convert.ToNumber(kib) 26 if err == nil { 27 memoryInfo["memTotalKiB"] = kibNum 28 } 29 30 osInfo := map[string]interface{}{ 31 "dockerVersion": strings.TrimPrefix(convert.ToString(values.GetValueN(data, "nodeInfo", "containerRuntimeVersion")), "docker://"), 32 "kernelVersion": values.GetValueN(data, "nodeInfo", "kernelVersion"), 33 "operatingSystem": values.GetValueN(data, "nodeInfo", "osImage"), 34 } 35 36 data["info"] = map[string]interface{}{ 37 "cpu": cpuInfo, 38 "memory": memoryInfo, 39 "os": osInfo, 40 "kubernetes": map[string]interface{}{ 41 "kubeletVersion": values.GetValueN(data, "nodeInfo", "kubeletVersion"), 42 "kubeProxyVersion": values.GetValueN(data, "nodeInfo", "kubeletVersion"), 43 }, 44 } 45 } 46 47 func (o OSInfo) ToInternal(data map[string]interface{}) error { 48 return nil 49 } 50 51 func (o OSInfo) ModifySchema(schema *types.Schema, schemas *types.Schemas) error { 52 return nil 53 }