diff options
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/runtime_pod.go | 45 | ||||
-rw-r--r-- | libpod/runtime_pod_linux.go | 2 |
2 files changed, 46 insertions, 1 deletions
diff --git a/libpod/runtime_pod.go b/libpod/runtime_pod.go index f5a2b017b..3ad8454b4 100644 --- a/libpod/runtime_pod.go +++ b/libpod/runtime_pod.go @@ -52,6 +52,51 @@ func (r *Runtime) HasPod(id string) (bool, error) { return r.state.HasPod(id) } +// ContainerIDsInPod returns the IDs of containers in the pod +func (r *Runtime) ContainerIDsInPod(pod *Pod) ([]string, error) { + r.lock.RLock() + defer r.lock.RUnlock() + + if !r.valid { + return nil, ErrRuntimeStopped + } + + return r.state.PodContainersByID(pod) +} + +// ContainersInPod returns the containers in the pod +func (r *Runtime) ContainersInPod(pod *Pod) ([]*Container, error) { + r.lock.RLock() + defer r.lock.RUnlock() + + if !r.valid { + return nil, ErrRuntimeStopped + } + + return r.state.PodContainers(pod) +} + +// ContainerNamesInPod returns the names of containers in the pod +func (r *Runtime) ContainerNamesInPod(pod *Pod) ([]string, error) { + r.lock.RLock() + defer r.lock.RUnlock() + + if !r.valid { + return nil, ErrRuntimeStopped + } + + var ctrNames []string + ctrs, err := r.ContainersInPod(pod) + if err != nil { + return nil, err + } + for _, ctr := range ctrs { + ctrNames = append(ctrNames, ctr.Name()) + } + + return ctrNames, nil +} + // LookupPod retrieves a pod by its name or a partial ID // If a partial ID is not unique, an error will be returned func (r *Runtime) LookupPod(idOrName string) (*Pod, error) { diff --git a/libpod/runtime_pod_linux.go b/libpod/runtime_pod_linux.go index 35d095ba3..25340abdb 100644 --- a/libpod/runtime_pod_linux.go +++ b/libpod/runtime_pod_linux.go @@ -74,7 +74,7 @@ func (r *Runtime) NewPod(options ...PodCreateOption) (*Pod, error) { return nil, errors.Wrapf(err, "error adding pod to state") } - return nil, ErrNotImplemented + return pod, nil } func (r *Runtime) removePod(ctx context.Context, p *Pod, removeCtrs, force bool) error { |