aboutsummaryrefslogtreecommitdiff
path: root/libpod/container_api.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-03-02 20:23:26 +0100
committerGitHub <noreply@github.com>2020-03-02 20:23:26 +0100
commit47c4ea39196cedac87e7a4e4c1ead54ed9d7ed50 (patch)
tree64ce3ceb630aaecf993b1747bf8ba7f3f3af170f /libpod/container_api.go
parentf9a476833bc8461dd246db0b31f542ad4a6d7587 (diff)
parent09048731000e73b44a0243a0339d8c122eb8a165 (diff)
downloadpodman-47c4ea39196cedac87e7a4e4c1ead54ed9d7ed50.tar.gz
podman-47c4ea39196cedac87e7a4e4c1ead54ed9d7ed50.tar.bz2
podman-47c4ea39196cedac87e7a4e4c1ead54ed9d7ed50.zip
Merge pull request #5347 from baude/apiv2wait
rework apiv2 wait endpoint|binding
Diffstat (limited to 'libpod/container_api.go')
-rw-r--r--libpod/container_api.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/libpod/container_api.go b/libpod/container_api.go
index dabbe27dc..aa932e0b8 100644
--- a/libpod/container_api.go
+++ b/libpod/container_api.go
@@ -624,6 +624,26 @@ func (c *Container) WaitWithInterval(waitTimeout time.Duration) (int32, error) {
}
}
+func (c *Container) WaitForConditionWithInterval(waitTimeout time.Duration, condition define.ContainerStatus) (int32, error) {
+ if !c.valid {
+ return -1, define.ErrCtrRemoved
+ }
+ if condition == define.ContainerStateStopped || condition == define.ContainerStateExited {
+ return c.WaitWithInterval(waitTimeout)
+ }
+ for {
+ state, err := c.State()
+ if err != nil {
+ return -1, err
+ }
+ if state == condition {
+ break
+ }
+ time.Sleep(waitTimeout)
+ }
+ return -1, nil
+}
+
// Cleanup unmounts all mount points in container and cleans up container storage
// It also cleans up the network stack
func (c *Container) Cleanup(ctx context.Context) error {