mirror of https://github.com/containers/podman.git
libpod: Move getRootNetNsDepCtr to container_internal_common.go
[NO NEW TESTS NEEDED] Signed-off-by: Doug Rabson <dfr@rabson.org>
This commit is contained in:
parent
a148c16225
commit
b3989be768
|
@ -1567,3 +1567,31 @@ func (c *Container) restore(ctx context.Context, options ContainerCheckpointOpti
|
|||
|
||||
return criuStatistics, runtimeRestoreDuration, c.save()
|
||||
}
|
||||
|
||||
// Retrieves a container's "root" net namespace container dependency.
|
||||
func (c *Container) getRootNetNsDepCtr() (depCtr *Container, err error) {
|
||||
containersVisited := map[string]int{c.config.ID: 1}
|
||||
nextCtr := c.config.NetNsCtr
|
||||
for nextCtr != "" {
|
||||
// Make sure we aren't in a loop
|
||||
if _, visited := containersVisited[nextCtr]; visited {
|
||||
return nil, errors.New("loop encountered while determining net namespace container")
|
||||
}
|
||||
containersVisited[nextCtr] = 1
|
||||
|
||||
depCtr, err = c.runtime.state.Container(nextCtr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error fetching dependency %s of container %s: %w", c.config.NetNsCtr, c.ID(), err)
|
||||
}
|
||||
// This should never happen without an error
|
||||
if depCtr == nil {
|
||||
break
|
||||
}
|
||||
nextCtr = depCtr.config.NetNsCtr
|
||||
}
|
||||
|
||||
if depCtr == nil {
|
||||
return nil, errors.New("unexpected error depCtr is nil without reported error from runtime state")
|
||||
}
|
||||
return depCtr, nil
|
||||
}
|
||||
|
|
|
@ -190,43 +190,13 @@ func (c *Container) addNetworkContainer(g *generate.Generator, ctr string) error
|
|||
return nil
|
||||
}
|
||||
|
||||
// Retrieves a container's "root" net namespace container dependency.
|
||||
func (c *Container) getRootNetNsDepCtr() (depCtr *Container, err error) {
|
||||
containersVisited := map[string]int{c.config.ID: 1}
|
||||
nextCtr := c.config.NetNsCtr
|
||||
for nextCtr != "" {
|
||||
// Make sure we aren't in a loop
|
||||
if _, visited := containersVisited[nextCtr]; visited {
|
||||
return nil, errors.New("loop encountered while determining net namespace container")
|
||||
}
|
||||
containersVisited[nextCtr] = 1
|
||||
|
||||
depCtr, err = c.runtime.state.Container(nextCtr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error fetching dependency %s of container %s: %w", c.config.NetNsCtr, c.ID(), err)
|
||||
}
|
||||
// This should never happen without an error
|
||||
if depCtr == nil {
|
||||
break
|
||||
}
|
||||
nextCtr = depCtr.config.NetNsCtr
|
||||
}
|
||||
|
||||
if depCtr == nil {
|
||||
return nil, errors.New("unexpected error depCtr is nil without reported error from runtime state")
|
||||
}
|
||||
return depCtr, nil
|
||||
}
|
||||
|
||||
// Ensure standard bind mounts are mounted into all root directories (including chroot directories)
|
||||
func (c *Container) mountIntoRootDirs(mountName string, mountPath string) error {
|
||||
c.state.BindMounts[mountName] = mountPath
|
||||
|
||||
for _, chrootDir := range c.config.ChrootDirs {
|
||||
c.state.BindMounts[filepath.Join(chrootDir, mountName)] = mountPath
|
||||
logrus.Debugf("bind chrootDir=%s, mountName=%s", chrootDir, mountName)
|
||||
}
|
||||
// TODO: copy the file
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -343,34 +343,6 @@ func (c *Container) addNamespaceContainer(g *generate.Generator, ns LinuxNS, ctr
|
|||
return nil
|
||||
}
|
||||
|
||||
// Retrieves a container's "root" net namespace container dependency.
|
||||
func (c *Container) getRootNetNsDepCtr() (depCtr *Container, err error) {
|
||||
containersVisited := map[string]int{c.config.ID: 1}
|
||||
nextCtr := c.config.NetNsCtr
|
||||
for nextCtr != "" {
|
||||
// Make sure we aren't in a loop
|
||||
if _, visited := containersVisited[nextCtr]; visited {
|
||||
return nil, errors.New("loop encountered while determining net namespace container")
|
||||
}
|
||||
containersVisited[nextCtr] = 1
|
||||
|
||||
depCtr, err = c.runtime.state.Container(nextCtr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error fetching dependency %s of container %s: %w", c.config.NetNsCtr, c.ID(), err)
|
||||
}
|
||||
// This should never happen without an error
|
||||
if depCtr == nil {
|
||||
break
|
||||
}
|
||||
nextCtr = depCtr.config.NetNsCtr
|
||||
}
|
||||
|
||||
if depCtr == nil {
|
||||
return nil, errors.New("unexpected error depCtr is nil without reported error from runtime state")
|
||||
}
|
||||
return depCtr, nil
|
||||
}
|
||||
|
||||
// Ensure standard bind mounts are mounted into all root directories (including chroot directories)
|
||||
func (c *Container) mountIntoRootDirs(mountName string, mountPath string) error {
|
||||
c.state.BindMounts[mountName] = mountPath
|
||||
|
|
Loading…
Reference in New Issue