aboutsummaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-06-24 09:35:25 -0400
committerGitHub <noreply@github.com>2020-06-24 09:35:25 -0400
commit6bc5dcc2829c2bc08923df0b50f71582d5558fe8 (patch)
tree9e770e18cfcf75f3d61f701fbba2d34b361bac20 /libpod
parentc07df63c45710729cc9a04b1bfdfc06cad7eccf7 (diff)
parentf586c006f8428a04fce5a5c7ae6b921e6337ebe6 (diff)
downloadpodman-6bc5dcc2829c2bc08923df0b50f71582d5558fe8.tar.gz
podman-6bc5dcc2829c2bc08923df0b50f71582d5558fe8.tar.bz2
podman-6bc5dcc2829c2bc08923df0b50f71582d5558fe8.zip
Merge pull request #6729 from QiWang19/inspect-format
Reformat inspect network settings
Diffstat (limited to 'libpod')
-rw-r--r--libpod/define/container_inspect.go15
-rw-r--r--libpod/networking_linux.go16
2 files changed, 20 insertions, 11 deletions
diff --git a/libpod/define/container_inspect.go b/libpod/define/container_inspect.go
index 27ada8706..3fbeb8f0b 100644
--- a/libpod/define/container_inspect.go
+++ b/libpod/define/container_inspect.go
@@ -5,7 +5,6 @@ import (
"github.com/containers/image/v5/manifest"
"github.com/containers/libpod/libpod/driver"
- "github.com/cri-o/ocicni/pkg/ocicni"
)
// InspectContainerConfig holds further data about how a container was initially
@@ -571,13 +570,13 @@ type InspectAdditionalNetwork struct {
type InspectNetworkSettings struct {
InspectBasicNetworkConfig
- Bridge string `json:"Bridge"`
- SandboxID string `json:"SandboxID"`
- HairpinMode bool `json:"HairpinMode"`
- LinkLocalIPv6Address string `json:"LinkLocalIPv6Address"`
- LinkLocalIPv6PrefixLen int `json:"LinkLocalIPv6PrefixLen"`
- Ports []ocicni.PortMapping `json:"Ports"`
- SandboxKey string `json:"SandboxKey"`
+ Bridge string `json:"Bridge"`
+ SandboxID string `json:"SandboxID"`
+ HairpinMode bool `json:"HairpinMode"`
+ LinkLocalIPv6Address string `json:"LinkLocalIPv6Address"`
+ LinkLocalIPv6PrefixLen int `json:"LinkLocalIPv6PrefixLen"`
+ Ports map[string][]InspectHostPort `json:"Ports"`
+ SandboxKey string `json:"SandboxKey"`
// Networks contains information on non-default CNI networks this
// container has joined.
// It is a map of network name to network information.
diff --git a/libpod/networking_linux.go b/libpod/networking_linux.go
index 0c9d28701..f53573645 100644
--- a/libpod/networking_linux.go
+++ b/libpod/networking_linux.go
@@ -587,10 +587,20 @@ func getContainerNetIO(ctr *Container) (*netlink.LinkStatistics, error) {
// network.
func (c *Container) getContainerNetworkInfo() (*define.InspectNetworkSettings, error) {
settings := new(define.InspectNetworkSettings)
- settings.Ports = []ocicni.PortMapping{}
+ settings.Ports = make(map[string][]define.InspectHostPort)
if c.config.PortMappings != nil {
- // TODO: This may not be safe.
- settings.Ports = c.config.PortMappings
+ for _, port := range c.config.PortMappings {
+ key := fmt.Sprintf("%d/%s", port.ContainerPort, port.Protocol)
+ mapping := settings.Ports[key]
+ if mapping == nil {
+ mapping = []define.InspectHostPort{}
+ }
+ mapping = append(mapping, define.InspectHostPort{
+ HostIP: port.HostIP,
+ HostPort: fmt.Sprintf("%d", port.HostPort),
+ })
+ settings.Ports[key] = mapping
+ }
}
// We can't do more if the network is down.