summaryrefslogtreecommitdiff
path: root/pkg/api
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2021-06-05 16:45:20 +0200
committerGitHub <noreply@github.com>2021-06-05 16:45:20 +0200
commit1e006a58ccf62d9def0778af550c35f5acf504ae (patch)
tree01453444a70ae1431d021361b3d0d0ae06ff575f /pkg/api
parentcdf26a3d5677e0372e8892f85a8fd6065d512bcf (diff)
parent1f73374acd3c33d1884e9383205c9f891a3552db (diff)
downloadpodman-1e006a58ccf62d9def0778af550c35f5acf504ae.tar.gz
podman-1e006a58ccf62d9def0778af550c35f5acf504ae.tar.bz2
podman-1e006a58ccf62d9def0778af550c35f5acf504ae.zip
Merge pull request #10549 from Luap99/fix-9859
remote: always send resize before the container starts
Diffstat (limited to 'pkg/api')
-rw-r--r--pkg/api/handlers/compat/resize.go15
-rw-r--r--pkg/api/server/register_containers.go2
2 files changed, 6 insertions, 11 deletions
diff --git a/pkg/api/handlers/compat/resize.go b/pkg/api/handlers/compat/resize.go
index 23ed33a22..f65e313fc 100644
--- a/pkg/api/handlers/compat/resize.go
+++ b/pkg/api/handlers/compat/resize.go
@@ -46,20 +46,13 @@ func ResizeTTY(w http.ResponseWriter, r *http.Request) {
utils.ContainerNotFound(w, name, err)
return
}
- if state, err := ctnr.State(); err != nil {
- utils.InternalServerError(w, errors.Wrapf(err, "cannot obtain container state"))
- return
- } else if state != define.ContainerStateRunning && !query.IgnoreNotRunning {
- utils.Error(w, "Container not running", http.StatusConflict,
- fmt.Errorf("container %q in wrong state %q", name, state.String()))
- return
- }
- // If container is not running, ignore since this can be a race condition, and is expected
if err := ctnr.AttachResize(sz); err != nil {
- if errors.Cause(err) != define.ErrCtrStateInvalid || !query.IgnoreNotRunning {
+ if errors.Cause(err) != define.ErrCtrStateInvalid {
utils.InternalServerError(w, errors.Wrapf(err, "cannot resize container"))
- return
+ } else {
+ utils.Error(w, "Container not running", http.StatusConflict, err)
}
+ return
}
// This is not a 204, even though we write nothing, for compatibility
// reasons.
diff --git a/pkg/api/server/register_containers.go b/pkg/api/server/register_containers.go
index aa999905e..88ebb4df5 100644
--- a/pkg/api/server/register_containers.go
+++ b/pkg/api/server/register_containers.go
@@ -1364,6 +1364,8 @@ func (s *APIServer) registerContainersHandlers(r *mux.Router) error {
// $ref: "#/responses/ok"
// 404:
// $ref: "#/responses/NoSuchContainer"
+ // 409:
+ // $ref: "#/responses/ConflictError"
// 500:
// $ref: "#/responses/InternalError"
r.HandleFunc(VersionedPath("/libpod/containers/{name}/resize"), s.APIHandler(compat.ResizeTTY)).Methods(http.MethodPost)