diff options
author | Matej Vasek <mvasek@redhat.com> | 2021-05-17 23:16:55 +0200 |
---|---|---|
committer | Matej Vasek <mvasek@redhat.com> | 2021-05-18 20:52:09 +0200 |
commit | 92e858914d1a3515ffa1017c5adaad3ef5d89f5b (patch) | |
tree | e6b00078d02aa5b4673699e0d2bb090d9f40106f | |
parent | 353f04b53cd0a7c89ac8b2eb836eeb9c0dfa7b6a (diff) | |
download | podman-92e858914d1a3515ffa1017c5adaad3ef5d89f5b.tar.gz podman-92e858914d1a3515ffa1017c5adaad3ef5d89f5b.tar.bz2 podman-92e858914d1a3515ffa1017c5adaad3ef5d89f5b.zip |
fix: response body of containers wait endpoint
The `Error` part of response must be nil (or omitted) if no error occurred.
Before this commit a zero value for the struct was returned.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
-rw-r--r-- | pkg/api/handlers/types.go | 2 | ||||
-rw-r--r-- | pkg/api/handlers/utils/containers.go | 15 | ||||
-rw-r--r-- | test/apiv2/26-containersWait.at | 4 | ||||
-rw-r--r-- | test/apiv2/python/rest_api/test_v2_0_0_container.py | 2 |
4 files changed, 13 insertions, 10 deletions
diff --git a/pkg/api/handlers/types.go b/pkg/api/handlers/types.go index 52d7633af..2ffd9b0cb 100644 --- a/pkg/api/handlers/types.go +++ b/pkg/api/handlers/types.go @@ -98,7 +98,7 @@ type BuildResult struct { type ContainerWaitOKBody struct { StatusCode int - Error struct { + Error *struct { Message string } } diff --git a/pkg/api/handlers/utils/containers.go b/pkg/api/handlers/utils/containers.go index 6c708f74e..fb1f8b7c1 100644 --- a/pkg/api/handlers/utils/containers.go +++ b/pkg/api/handlers/utils/containers.go @@ -75,18 +75,19 @@ func WaitContainerDocker(w http.ResponseWriter, r *http.Request) { } exitCode, err := waitDockerCondition(ctx, name, interval, condition) - msg := "" + var errStruct *struct{ Message string } if err != nil { logrus.Errorf("error while waiting on condition: %q", err) - msg = err.Error() + errStruct = &struct { + Message string + }{ + Message: err.Error(), + } } + responseData := handlers.ContainerWaitOKBody{ StatusCode: int(exitCode), - Error: struct { - Message string - }{ - Message: msg, - }, + Error: errStruct, } enc := json.NewEncoder(w) enc.SetEscapeHTML(true) diff --git a/test/apiv2/26-containersWait.at b/test/apiv2/26-containersWait.at index ec16c35df..55bcd4592 100644 --- a/test/apiv2/26-containersWait.at +++ b/test/apiv2/26-containersWait.at @@ -21,7 +21,9 @@ t POST "containers/${CTR}/wait?condition=non-existent-cond" 400 t POST "containers/${CTR}/wait?condition=not-running" 200 -t POST "containers/${CTR}/wait?condition=next-exit" 200 & +t POST "containers/${CTR}/wait?condition=next-exit" 200 \ + .StatusCode=0 \ + .Error=null & child_pid=$! podman start "${CTR}" wait "${child_pid}" diff --git a/test/apiv2/python/rest_api/test_v2_0_0_container.py b/test/apiv2/python/rest_api/test_v2_0_0_container.py index 70c07d47f..ad096ed38 100644 --- a/test/apiv2/python/rest_api/test_v2_0_0_container.py +++ b/test/apiv2/python/rest_api/test_v2_0_0_container.py @@ -99,7 +99,7 @@ class ContainerTestCase(APITestCase): r = requests.post(self.podman_url + f"/v1.40/containers/{create['Id']}/wait") self.assertEqual(r.status_code, 200, r.text) wait = r.json() - self.assertEqual(wait["StatusCode"], 0, wait["Error"]["Message"]) + self.assertEqual(wait["StatusCode"], 0, wait["Error"]) prune = requests.post(self.podman_url + "/v1.40/containers/prune") self.assertEqual(prune.status_code, 200, prune.status_code) |