compose/azure/convert/ports.go

38 lines
798 B
Go
Raw Normal View History

2020-05-15 17:52:19 +02:00
package convert
import (
2020-05-18 11:00:09 +02:00
"strings"
2020-05-15 17:52:19 +02:00
"github.com/Azure/azure-sdk-for-go/services/containerinstance/mgmt/2018-10-01/containerinstance"
"github.com/docker/api/containers"
)
// ToPorts converts Azure container ports to api ports
2020-05-18 11:00:09 +02:00
func ToPorts(ipAddr *containerinstance.IPAddress, ports []containerinstance.ContainerPort) []containers.Port {
2020-05-15 17:52:19 +02:00
var result []containers.Port
for _, port := range ports {
if port.Port == nil {
continue
}
2020-05-18 11:00:09 +02:00
protocol := "tcp"
if port.Protocol != "" {
protocol = string(port.Protocol)
}
ip := ""
if ipAddr != nil {
ip = *ipAddr.IP
}
2020-05-15 17:52:19 +02:00
result = append(result, containers.Port{
2020-05-18 11:00:09 +02:00
HostPort: uint32(*port.Port),
2020-05-15 17:52:19 +02:00
ContainerPort: uint32(*port.Port),
2020-05-18 11:00:09 +02:00
HostIP: ip,
Protocol: strings.ToLower(protocol),
2020-05-15 17:52:19 +02:00
})
}
return result
}