diff options
-rw-r--r-- | libpod/in_memory_state.go | 14 | ||||
-rw-r--r-- | libpod/sql_state.go | 5 | ||||
-rw-r--r-- | libpod/state.go | 2 |
3 files changed, 21 insertions, 0 deletions
diff --git a/libpod/in_memory_state.go b/libpod/in_memory_state.go index b4e224d77..93c61537f 100644 --- a/libpod/in_memory_state.go +++ b/libpod/in_memory_state.go @@ -284,6 +284,20 @@ func (s *InMemoryState) HasPod(id string) (bool, error) { return ok, nil } +// PodContainers retrieves the containers from a pod given the pod's full ID +func (s *InMemoryState) PodContainers(id string) ([]*Container, error) { + if id == "" { + return nil, ErrEmptyID + } + + pod, ok := s.pods[id] + if !ok { + return nil, errors.Wrapf(ErrNoSuchPod, "no pod with ID %s found", id) + } + + return pod.GetContainers() +} + // AddPod adds a given pod to the state // Only empty pods can be added to the state func (s *InMemoryState) AddPod(pod *Pod) error { diff --git a/libpod/sql_state.go b/libpod/sql_state.go index 4abce8576..f67fc0e2c 100644 --- a/libpod/sql_state.go +++ b/libpod/sql_state.go @@ -836,6 +836,11 @@ func (s *SQLState) HasPod(id string) (bool, error) { return false, ErrNotImplemented } +// PodContainers returns all the containers in a pod given the pod's full ID +func (s *SQLState) PodContainers(id string) ([]*Container, error) { + return nil, ErrNotImplemented +} + // AddPod adds a pod to the state // Only empty pods can be added to the state func (s *SQLState) AddPod(pod *Pod) error { diff --git a/libpod/state.go b/libpod/state.go index 63865a541..95012e586 100644 --- a/libpod/state.go +++ b/libpod/state.go @@ -44,6 +44,8 @@ type State interface { LookupPod(idOrName string) (*Pod, error) // Checks if a pod with the given ID is present in the state HasPod(id string) (bool, error) + // Get all the containers in a pod. Accepts full ID of pod. + PodContainers(id string) ([]*Container, error) // Adds pod to state // Only empty pods can be added to the state AddPod(pod *Pod) error |