diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-07-05 14:22:52 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-05 14:22:52 -0400 |
commit | 41ccc045fb492e79d8b6c1bf2dba97b0fa912afa (patch) | |
tree | c2d357c72cc481f942f8a424013fd1044ed0d511 /pkg/api | |
parent | b9d48a95a1c5daf2bb473df7f11c5df715389619 (diff) | |
parent | e5bf56a48dca83d1f9daccfc271dc8093c91c497 (diff) | |
download | podman-41ccc045fb492e79d8b6c1bf2dba97b0fa912afa.tar.gz podman-41ccc045fb492e79d8b6c1bf2dba97b0fa912afa.tar.bz2 podman-41ccc045fb492e79d8b6c1bf2dba97b0fa912afa.zip |
Merge pull request #6852 from skorhone/fix/6803_null_ports
Fix container inspect endpoint returning null for network settings / ports
Diffstat (limited to 'pkg/api')
-rw-r--r-- | pkg/api/handlers/compat/containers.go | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/pkg/api/handlers/compat/containers.go b/pkg/api/handlers/compat/containers.go index b103e399d..5c76ab4f5 100644 --- a/pkg/api/handlers/compat/containers.go +++ b/pkg/api/handlers/compat/containers.go @@ -321,17 +321,17 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON, stopTimeout := int(l.StopTimeout()) - ports := make(nat.PortSet) - for p := range inspect.HostConfig.PortBindings { - splitp := strings.SplitN(p, "/", 2) + exposedPorts := make(nat.PortSet) + for ep := range inspect.HostConfig.PortBindings { + splitp := strings.SplitN(ep, "/", 2) if len(splitp) != 2 { - return nil, errors.Errorf("PORT/PROTOCOL Format required for %q", p) + return nil, errors.Errorf("PORT/PROTOCOL Format required for %q", ep) } - port, err := nat.NewPort(splitp[1], splitp[0]) + exposedPort, err := nat.NewPort(splitp[1], splitp[0]) if err != nil { return nil, err } - ports[port] = struct{}{} + exposedPorts[exposedPort] = struct{}{} } config := container.Config{ @@ -341,7 +341,7 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON, AttachStdin: inspect.Config.AttachStdin, AttachStdout: inspect.Config.AttachStdout, AttachStderr: inspect.Config.AttachStderr, - ExposedPorts: ports, + ExposedPorts: exposedPorts, Tty: inspect.Config.Tty, OpenStdin: inspect.Config.OpenStdin, StdinOnce: inspect.Config.StdinOnce, @@ -371,6 +371,15 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON, return nil, err } + p, err := json.Marshal(inspect.NetworkSettings.Ports) + if err != nil { + return nil, err + } + ports := nat.PortMap{} + if err := json.Unmarshal(p, &ports); err != nil { + return nil, err + } + networkSettingsDefault := types.DefaultNetworkSettings{ EndpointID: "", Gateway: "", @@ -382,8 +391,12 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON, MacAddress: l.Config().StaticMAC.String(), } + networkSettingsBase := types.NetworkSettingsBase{ + Ports: ports, + } + networkSettings := types.NetworkSettings{ - NetworkSettingsBase: types.NetworkSettingsBase{}, + NetworkSettingsBase: networkSettingsBase, DefaultNetworkSettings: networkSettingsDefault, Networks: nil, } |