Merge pull request #10371 from matejvasek/fix-wait-compat

fix: response of containers wait endpoint
This commit is contained in:
OpenShift Merge Robot
2021-05-19 07:52:58 -04:00
committed by GitHub
4 changed files with 14 additions and 11 deletions

View File

@ -98,7 +98,7 @@ type BuildResult struct {
type ContainerWaitOKBody struct { type ContainerWaitOKBody struct {
StatusCode int StatusCode int
Error struct { Error *struct {
Message string Message string
} }
} }

View File

@ -75,18 +75,19 @@ func WaitContainerDocker(w http.ResponseWriter, r *http.Request) {
} }
exitCode, err := waitDockerCondition(ctx, name, interval, condition) exitCode, err := waitDockerCondition(ctx, name, interval, condition)
msg := "" var errStruct *struct{ Message string }
if err != nil { if err != nil {
logrus.Errorf("error while waiting on condition: %q", err) logrus.Errorf("error while waiting on condition: %q", err)
msg = err.Error() errStruct = &struct {
}
responseData := handlers.ContainerWaitOKBody{
StatusCode: int(exitCode),
Error: struct {
Message string Message string
}{ }{
Message: msg, Message: err.Error(),
}, }
}
responseData := handlers.ContainerWaitOKBody{
StatusCode: int(exitCode),
Error: errStruct,
} }
enc := json.NewEncoder(w) enc := json.NewEncoder(w)
enc.SetEscapeHTML(true) enc.SetEscapeHTML(true)

View File

@ -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=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=$! child_pid=$!
podman start "${CTR}" podman start "${CTR}"
wait "${child_pid}" wait "${child_pid}"

View File

@ -99,7 +99,7 @@ class ContainerTestCase(APITestCase):
r = requests.post(self.podman_url + f"/v1.40/containers/{create['Id']}/wait") r = requests.post(self.podman_url + f"/v1.40/containers/{create['Id']}/wait")
self.assertEqual(r.status_code, 200, r.text) self.assertEqual(r.status_code, 200, r.text)
wait = r.json() 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") prune = requests.post(self.podman_url + "/v1.40/containers/prune")
self.assertEqual(prune.status_code, 200, prune.status_code) self.assertEqual(prune.status_code, 200, prune.status_code)