diff options
author | Matthew Heon <matthew.heon@gmail.com> | 2018-01-16 13:26:09 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-01-17 15:26:43 +0000 |
commit | aa34b86ae601398a3abac0ee70ed9a4ea96187c3 (patch) | |
tree | ce191238824a3c78a96e06803b8b26e9f68986fe /libpod/container.go | |
parent | daba9836c8f6c31b548248c0938091e684c3d592 (diff) | |
download | podman-aa34b86ae601398a3abac0ee70ed9a4ea96187c3.tar.gz podman-aa34b86ae601398a3abac0ee70ed9a4ea96187c3.tar.bz2 podman-aa34b86ae601398a3abac0ee70ed9a4ea96187c3.zip |
Add ability to get dependencies of a container
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Closes: #229
Approved by: rhatdan
Diffstat (limited to 'libpod/container.go')
-rw-r--r-- | libpod/container.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libpod/container.go b/libpod/container.go index 95c7eecb4..4d6fe3a5e 100644 --- a/libpod/container.go +++ b/libpod/container.go @@ -310,6 +310,40 @@ func (c *Container) ProcessLabel() string { return c.config.ProcessLabel } +// Dependencies gets the containers this container depends upon +func (c *Container) Dependencies() []string { + // Collect in a map first to remove dupes + dependsCtrs := map[string]bool{} + if c.config.IPCNsCtr != "" { + dependsCtrs[c.config.IPCNsCtr] = true + } + if c.config.MountNsCtr != "" { + dependsCtrs[c.config.MountNsCtr] = true + } + if c.config.NetNsCtr != "" { + dependsCtrs[c.config.NetNsCtr] = true + } + if c.config.PIDNsCtr != "" { + dependsCtrs[c.config.NetNsCtr] = true + } + if c.config.UserNsCtr != "" { + dependsCtrs[c.config.UserNsCtr] = true + } + if c.config.UTSNsCtr != "" { + dependsCtrs[c.config.UTSNsCtr] = true + } + if c.config.CgroupNsCtr != "" { + dependsCtrs[c.config.CgroupNsCtr] = true + } + + depends := make([]string, len(dependsCtrs), 0) + for ctr, _ := range dependsCtrs { + depends = append(depends, ctr) + } + + return depends +} + // Spec returns the container's OCI runtime spec // The spec returned is the one used to create the container. The running // spec may differ slightly as mounts are added based on the image |