mirror of
https://github.com/containers/podman.git
synced 2025-07-02 08:47:43 +08:00
Add more network info ipv4/ipv6 and be more compatible with docker
Signed-off-by: Wim <wim@42.be> Closes: #953 Approved by: mheon
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
package libpod
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/cri-o/ocicni/pkg/ocicni"
|
||||
@ -97,11 +98,11 @@ func (c *Container) getContainerInspectData(size bool, driverData *inspect.Data)
|
||||
SecondaryIPv6Addresses: nil, // TODO - do we support this?
|
||||
EndpointID: "", // TODO - is this even relevant?
|
||||
Gateway: "", // TODO
|
||||
GlobalIPv6Addresses: []string{}, // TODO - do we even support IPv6?
|
||||
GlobalIPv6PrefixLen: 0, // TODO - do we even support IPv6?
|
||||
IPAddress: nil,
|
||||
IPPrefixLen: 0, // TODO
|
||||
IPv6Gateway: "", // TODO - do we even support IPv6?
|
||||
GlobalIPv6Address: "",
|
||||
GlobalIPv6PrefixLen: 0,
|
||||
IPAddress: "",
|
||||
IPPrefixLen: 0,
|
||||
IPv6Gateway: "",
|
||||
MacAddress: "", // TODO
|
||||
},
|
||||
}
|
||||
@ -114,18 +115,21 @@ func (c *Container) getContainerInspectData(size bool, driverData *inspect.Data)
|
||||
// Get information on the container's network namespace (if present)
|
||||
if runtimeInfo.NetNS != nil {
|
||||
// Go through our IP addresses
|
||||
ctrIPs := []string{}
|
||||
|
||||
for _, ctrIP := range c.state.IPs {
|
||||
ipWithMask := ctrIP.Address.String()
|
||||
splitIP := strings.Split(ipWithMask, "/")
|
||||
mask, _ := strconv.Atoi(splitIP[1])
|
||||
if ctrIP.Version == "4" {
|
||||
ipWithMask := ctrIP.Address.String()
|
||||
splitIP := strings.Split(ipWithMask, "/")
|
||||
ctrIPs = append(ctrIPs, splitIP[0])
|
||||
data.NetworkSettings.IPAddress = splitIP[0]
|
||||
data.NetworkSettings.IPPrefixLen = mask
|
||||
data.NetworkSettings.Gateway = ctrIP.Gateway.String()
|
||||
} else {
|
||||
data.NetworkSettings.GlobalIPv6Address = splitIP[0]
|
||||
data.NetworkSettings.GlobalIPv6PrefixLen = mask
|
||||
data.NetworkSettings.IPv6Gateway = ctrIP.Gateway.String()
|
||||
}
|
||||
}
|
||||
|
||||
data.NetworkSettings.IPAddress = ctrIPs
|
||||
|
||||
// Set network namespace path
|
||||
data.NetworkSettings.SandboxKey = runtimeInfo.NetNS.Path()
|
||||
}
|
||||
|
@ -198,9 +198,9 @@ type NetworkSettings struct {
|
||||
SecondaryIPv6Addresses []string `json:"SecondaryIPv6Addresses"`
|
||||
EndpointID string `json:"EndpointID"`
|
||||
Gateway string `json:"Gateway"`
|
||||
GlobalIPv6Addresses []string `json:"GlobalIPv6Addresses"`
|
||||
GlobalIPv6Address string `json:"GlobalIPv6Address"`
|
||||
GlobalIPv6PrefixLen int `json:"GlobalIPv6PrefixLen"`
|
||||
IPAddress []string `json:"IPAddress"`
|
||||
IPAddress string `json:"IPAddress"`
|
||||
IPPrefixLen int `json:"IPPrefixLen"`
|
||||
IPv6Gateway string `json:"IPv6Gateway"`
|
||||
MacAddress string `json:"MacAddress"`
|
||||
|
Reference in New Issue
Block a user