diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-06-18 11:20:19 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-18 11:20:19 -0400 |
commit | e6b9b3ab227729e72f52ddab94c024174ab8a442 (patch) | |
tree | 1c1e6c9bd1c595410d179b3ebf9ea868cddb587e /pkg | |
parent | 2e621aece054e9ba8cd2fb30254c8513e7caf1b6 (diff) | |
parent | b20619e5b0dfa6c63b25c3fd9a7ae6188bee2b4c (diff) | |
download | podman-e6b9b3ab227729e72f52ddab94c024174ab8a442.tar.gz podman-e6b9b3ab227729e72f52ddab94c024174ab8a442.tar.bz2 podman-e6b9b3ab227729e72f52ddab94c024174ab8a442.zip |
Merge pull request #6656 from mheon/recursive_init
Allow recursive dependency start with Init()
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/api/handlers/compat/containers_attach.go | 2 | ||||
-rw-r--r-- | pkg/api/handlers/libpod/containers.go | 2 | ||||
-rw-r--r-- | pkg/domain/infra/abi/containers.go | 2 | ||||
-rw-r--r-- | pkg/varlinkapi/containers.go | 4 |
4 files changed, 5 insertions, 5 deletions
diff --git a/pkg/api/handlers/compat/containers_attach.go b/pkg/api/handlers/compat/containers_attach.go index 990140ee1..aad6e2294 100644 --- a/pkg/api/handlers/compat/containers_attach.go +++ b/pkg/api/handlers/compat/containers_attach.go @@ -89,7 +89,7 @@ func AttachContainer(w http.ResponseWriter, r *http.Request) { } // For Docker compatibility, we need to re-initialize containers in these states. if state == define.ContainerStateConfigured || state == define.ContainerStateExited { - if err := ctr.Init(r.Context()); err != nil { + if err := ctr.Init(r.Context(), ctr.PodID() != ""); err != nil { utils.Error(w, "Container in wrong state", http.StatusConflict, errors.Wrapf(err, "error preparing container %s for attach", ctr.ID())) return } diff --git a/pkg/api/handlers/libpod/containers.go b/pkg/api/handlers/libpod/containers.go index 50f6b1a38..2556cdc2a 100644 --- a/pkg/api/handlers/libpod/containers.go +++ b/pkg/api/handlers/libpod/containers.go @@ -294,7 +294,7 @@ func InitContainer(w http.ResponseWriter, r *http.Request) { utils.ContainerNotFound(w, name, err) return } - err = ctr.Init(r.Context()) + err = ctr.Init(r.Context(), ctr.PodID() != "") if errors.Cause(err) == define.ErrCtrStateInvalid { utils.Error(w, "container already initialized", http.StatusNotModified, err) return diff --git a/pkg/domain/infra/abi/containers.go b/pkg/domain/infra/abi/containers.go index 8e0ffc075..22de28a1c 100644 --- a/pkg/domain/infra/abi/containers.go +++ b/pkg/domain/infra/abi/containers.go @@ -999,7 +999,7 @@ func (ic *ContainerEngine) ContainerInit(ctx context.Context, namesOrIds []strin reports := make([]*entities.ContainerInitReport, 0, len(ctrs)) for _, ctr := range ctrs { report := entities.ContainerInitReport{Id: ctr.ID()} - err := ctr.Init(ctx) + err := ctr.Init(ctx, ctr.PodID() != "") // If we're initializing all containers, ignore invalid state errors if options.All && errors.Cause(err) == define.ErrCtrStateInvalid { diff --git a/pkg/varlinkapi/containers.go b/pkg/varlinkapi/containers.go index 291353cad..a81d19131 100644 --- a/pkg/varlinkapi/containers.go +++ b/pkg/varlinkapi/containers.go @@ -385,7 +385,7 @@ func (i *VarlinkAPI) InitContainer(call iopodman.VarlinkCall, name string) error if err != nil { return call.ReplyContainerNotFound(name, err.Error()) } - if err := ctr.Init(getContext()); err != nil { + if err := ctr.Init(getContext(), false); err != nil { if errors.Cause(err) == define.ErrCtrStateInvalid { return call.ReplyInvalidState(ctr.ID(), err.Error()) } @@ -557,7 +557,7 @@ func (i *VarlinkAPI) GetAttachSockets(call iopodman.VarlinkCall, name string) er // If the container hasn't been run, we need to run init // so the conmon sockets get created. if status == define.ContainerStateConfigured || status == define.ContainerStateStopped { - if err := ctr.Init(getContext()); err != nil { + if err := ctr.Init(getContext(), false); err != nil { return call.ReplyErrorOccurred(err.Error()) } } |