summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@gmail.com>2017-12-13 22:02:15 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-01-17 15:26:43 +0000
commit13f004aec5c70ca5be9f6c134566abd1e62ea660 (patch)
tree34556c8fcc5ab52a0fac8baf09033240f19645f7 /libpod
parent1735598d12dfc6965c1881d537c6c0051a3637dd (diff)
downloadpodman-13f004aec5c70ca5be9f6c134566abd1e62ea660.tar.gz
podman-13f004aec5c70ca5be9f6c134566abd1e62ea660.tar.bz2
podman-13f004aec5c70ca5be9f6c134566abd1e62ea660.zip
Add ability to retrieve a pod's container from the state
Signed-off-by: Matthew Heon <matthew.heon@gmail.com> Closes: #229 Approved by: rhatdan
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