mirror of
https://github.com/containers/podman.git
synced 2025-07-04 10:10:32 +08:00
libpod API: return proper error status code for pod start
When we failed to do anything we should return 500, the 409 code has a special meaing to the client as it uses a different error format. As such the remote client was not able to unmarshal the error correctly and just returned an empty string. Fixes #22989 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
@ -202,7 +202,7 @@ func PodStart(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
status, err := pod.GetPodStatus()
|
status, err := pod.GetPodStatus()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
utils.Error(w, http.StatusInternalServerError, err)
|
utils.InternalServerError(w, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if status == define.PodStateRunning {
|
if status == define.PodStateRunning {
|
||||||
@ -212,13 +212,13 @@ func PodStart(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
responses, err := pod.Start(r.Context())
|
responses, err := pod.Start(r.Context())
|
||||||
if err != nil && !errors.Is(err, define.ErrPodPartialFail) {
|
if err != nil && !errors.Is(err, define.ErrPodPartialFail) {
|
||||||
utils.Error(w, http.StatusConflict, err)
|
utils.InternalServerError(w, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, err := pod.Config()
|
cfg, err := pod.Config()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
utils.Error(w, http.StatusConflict, err)
|
utils.InternalServerError(w, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
report := entities.PodStartReport{
|
report := entities.PodStartReport{
|
||||||
|
@ -29,12 +29,7 @@ var _ = Describe("Podman pod start", func() {
|
|||||||
|
|
||||||
session := podmanTest.Podman([]string{"pod", "start", podid})
|
session := podmanTest.Podman([]string{"pod", "start", podid})
|
||||||
session.WaitWithDefaultTimeout()
|
session.WaitWithDefaultTimeout()
|
||||||
expect := fmt.Sprintf("no containers in pod %s have no dependencies, cannot start pod: no such container", podid)
|
Expect(session).Should(ExitWithError(125, fmt.Sprintf("no containers in pod %s have no dependencies, cannot start pod: no such container", podid)))
|
||||||
if IsRemote() {
|
|
||||||
// FIXME: #22989 no error message
|
|
||||||
expect = "Error:"
|
|
||||||
}
|
|
||||||
Expect(session).Should(ExitWithError(125, expect))
|
|
||||||
})
|
})
|
||||||
|
|
||||||
It("podman pod start single pod by name", func() {
|
It("podman pod start single pod by name", func() {
|
||||||
|
Reference in New Issue
Block a user