aboutsummaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
Diffstat (limited to 'libpod')
-rw-r--r--libpod/in_memory_state.go14
-rw-r--r--libpod/sql_state.go5
-rw-r--r--libpod/state.go2
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