From 773c8f572a8549fa80290d9bbb0ddcf792e3d7c1 Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Thu, 1 Mar 2018 10:46:25 -0800 Subject: [PATCH] Set hostPort for port kind=hostPort --- mapper/container_ports.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mapper/container_ports.go b/mapper/container_ports.go index a5b77c0f..78ceb1a4 100644 --- a/mapper/container_ports.go +++ b/mapper/container_ports.go @@ -4,6 +4,8 @@ import ( "github.com/rancher/norman/types" "github.com/rancher/norman/types/convert" "github.com/rancher/norman/types/mapper" + "github.com/sirupsen/logrus" + "strings" ) type ContainerPorts struct { @@ -37,6 +39,18 @@ func (n ContainerPorts) ToInternal(data map[string]interface{}) { path := []string{"containers", "{ARRAY}", "ports"} convert.Transform(data, path, func(obj interface{}) interface{} { if l, ok := obj.([]interface{}); ok { + for _, p := range l { + mapped, err := convert.EncodeToMap(p) + if err != nil { + logrus.Warnf("Failed to encode port: %v", err) + return obj + } + if strings.EqualFold(convert.ToString(mapped["kind"]), "HostPort") { + if _, ok := mapped["sourcePort"]; ok { + mapped["hostPort"] = mapped["sourcePort"] + } + } + } ports = append(ports, l) } return obj