mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-09-19 06:07:50 +00:00
Retrieve IP addresses for container from DB
Instead of execing out to the host's IP, use the IP address we got back from CNI to populate Inspect's IP address information. Signed-off-by: Matthew Heon <mheon@redhat.com> Closes: #680 Approved by: umohnani8
This commit is contained in:
parent
6ac8a24db4
commit
0ccfd7dc20
2 changed files with 15 additions and 8 deletions
|
|
@ -1,6 +1,8 @@
|
|||
package libpod
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/cri-o/ocicni/pkg/ocicni"
|
||||
"github.com/projectatomic/libpod/pkg/inspect"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
|
@ -92,7 +94,7 @@ func (c *Container) getContainerInspectData(size bool, driverData *inspect.Data)
|
|||
Gateway: "", // TODO
|
||||
GlobalIPv6Addresses: []string{}, // TODO - do we even support IPv6?
|
||||
GlobalIPv6PrefixLen: 0, // TODO - do we even support IPv6?
|
||||
IPAddress: "",
|
||||
IPAddress: nil,
|
||||
IPPrefixLen: 0, // TODO
|
||||
IPv6Gateway: "", // TODO - do we even support IPv6?
|
||||
MacAddress: "", // TODO
|
||||
|
|
@ -106,14 +108,19 @@ func (c *Container) getContainerInspectData(size bool, driverData *inspect.Data)
|
|||
|
||||
// Get information on the container's network namespace (if present)
|
||||
if runtimeInfo.NetNS != nil {
|
||||
// Get IP address
|
||||
ip, err := c.runtime.getContainerIP(c)
|
||||
if err != nil {
|
||||
logrus.Errorf("error getting container %q IP: %v", config.ID, err)
|
||||
} else {
|
||||
data.NetworkSettings.IPAddress = ip.To4().String()
|
||||
// Go through our IP addresses
|
||||
ctrIPs := []string{}
|
||||
|
||||
for _, ctrIP := range c.state.IPs {
|
||||
if ctrIP.Version == "4" {
|
||||
ipWithMask := ctrIP.Address.String()
|
||||
splitIP := strings.Split(ipWithMask, "/")
|
||||
ctrIPs = append(ctrIPs, splitIP[0])
|
||||
}
|
||||
}
|
||||
|
||||
data.NetworkSettings.IPAddress = ctrIPs
|
||||
|
||||
// Set network namespace path
|
||||
data.NetworkSettings.SandboxKey = runtimeInfo.NetNS.Path()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ type NetworkSettings struct {
|
|||
Gateway string `json:"Gateway"`
|
||||
GlobalIPv6Addresses []string `json:"GlobalIPv6Addresses"`
|
||||
GlobalIPv6PrefixLen int `json:"GlobalIPv6PrefixLen"`
|
||||
IPAddress string `json:"IPAddress"`
|
||||
IPAddress []string `json:"IPAddress"`
|
||||
IPPrefixLen int `json:"IPPrefixLen"`
|
||||
IPv6Gateway string `json:"IPv6Gateway"`
|
||||
MacAddress string `json:"MacAddress"`
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue