Tweak the wording, and make sure we return a 400 status, not a 500
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
| ... | ... |
@@ -192,7 +192,7 @@ func (c *containerRouter) getContainersLogs(ctx context.Context, w http.Response |
| 192 | 192 |
// with the appropriate status code. |
| 193 | 193 |
stdout, stderr := httputils.BoolValue(r, "stdout"), httputils.BoolValue(r, "stderr") |
| 194 | 194 |
if !stdout && !stderr {
|
| 195 |
- return errdefs.InvalidParameter(errors.New("Bad parameters: you must choose at least one stream"))
|
|
| 195 |
+ return errdefs.InvalidParameter(errors.New("must specify at least one of 'stdout' or 'stderr'"))
|
|
| 196 | 196 |
} |
| 197 | 197 |
|
| 198 | 198 |
containerName := vars["name"] |
| ... | ... |
@@ -11,6 +11,7 @@ import ( |
| 11 | 11 |
"github.com/moby/moby/v2/daemon/server/backend" |
| 12 | 12 |
"github.com/moby/moby/v2/daemon/server/httputils" |
| 13 | 13 |
"github.com/moby/moby/v2/daemon/server/httputils/logstream" |
| 14 |
+ "github.com/moby/moby/v2/errdefs" |
|
| 14 | 15 |
) |
| 15 | 16 |
|
| 16 | 17 |
// swarmLogs takes an http response, request, and selector, and writes the logs |
| ... | ... |
@@ -23,7 +24,7 @@ func (sr *swarmRouter) swarmLogs(ctx context.Context, w http.ResponseWriter, r * |
| 23 | 23 |
// with the appropriate status code. |
| 24 | 24 |
stdout, stderr := httputils.BoolValue(r, "stdout"), httputils.BoolValue(r, "stderr") |
| 25 | 25 |
if !stdout && !stderr {
|
| 26 |
- return errors.New("Bad parameters: you must choose at least one stream")
|
|
| 26 |
+ return errdefs.InvalidParameter(errors.New("must specify at least one of 'stdout' or 'stderr'"))
|
|
| 27 | 27 |
} |
| 28 | 28 |
|
| 29 | 29 |
// there is probably a neater way to manufacture the LogsOptions |
| ... | ... |
@@ -11,6 +11,7 @@ import ( |
| 11 | 11 |
"testing" |
| 12 | 12 |
"time" |
| 13 | 13 |
|
| 14 |
+ cerrdefs "github.com/containerd/errdefs" |
|
| 14 | 15 |
"github.com/moby/moby/api/pkg/stdcopy" |
| 15 | 16 |
"github.com/moby/moby/client" |
| 16 | 17 |
"github.com/moby/moby/v2/integration-cli/cli" |
| ... | ... |
@@ -63,7 +64,8 @@ func (s *DockerAPISuite) TestLogsAPINoStdoutNorStderr(c *testing.T) {
|
| 63 | 63 |
defer apiClient.Close() |
| 64 | 64 |
|
| 65 | 65 |
_, err = apiClient.ContainerLogs(testutil.GetContext(c), name, client.ContainerLogsOptions{})
|
| 66 |
- assert.ErrorContains(c, err, "Bad parameters: you must choose at least one stream") |
|
| 66 |
+ assert.ErrorType(c, err, cerrdefs.IsInvalidArgument) |
|
| 67 |
+ assert.ErrorContains(c, err, "must specify at least one of 'stdout' or 'stderr'") |
|
| 67 | 68 |
} |
| 68 | 69 |
|
| 69 | 70 |
// Regression test for #12704 |