1
0
mirror of https://github.com/moby/moby.git synced 2025-08-01 05:47:11 +03:00

Generate ContainerWait response from the swagger spec.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin
2016-10-20 15:56:27 -07:00
parent 2732b8a9bb
commit 181562c2e5
10 changed files with 35 additions and 23 deletions

View File

@ -283,8 +283,8 @@ func (s *containerRouter) postContainersWait(ctx context.Context, w http.Respons
return err return err
} }
return httputils.WriteJSON(w, http.StatusOK, &types.ContainerWaitResponse{ return httputils.WriteJSON(w, http.StatusOK, &container.ContainerWaitOKBody{
StatusCode: status, StatusCode: int64(status),
}) })
} }

View File

@ -3780,18 +3780,19 @@ paths:
post: post:
summary: "Wait for a container" summary: "Wait for a container"
description: "Block until a container stops, then returns the exit code." description: "Block until a container stops, then returns the exit code."
operationId: "PostContainerWait" operationId: "ContainerWait"
produces: produces: ["application/json"]
- "application/json"
responses: responses:
200: 200:
description: "no error" description: "The container has exit."
schema: schema:
type: "object" type: "object"
required: [StatusCode]
properties: properties:
StatusCode: StatusCode:
description: "Exit code of the container" description: "Exit code of the container"
type: "integer" type: "integer"
x-nullable: false
404: 404:
description: "no such container" description: "no such container"
schema: schema:

View File

@ -0,0 +1,17 @@
package container
// ----------------------------------------------------------------------------
// DO NOT EDIT THIS FILE
// This file was generated by `swagger generate operation`
//
// See hack/swagger-gen.sh
// ----------------------------------------------------------------------------
// ContainerWaitOKBody container wait o k body
// swagger:model ContainerWaitOKBody
type ContainerWaitOKBody struct {
// Exit code of the container
// Required: true
StatusCode int64 `json:"StatusCode"`
}

View File

@ -13,13 +13,6 @@ import (
"github.com/docker/go-connections/nat" "github.com/docker/go-connections/nat"
) )
// ContainerWaitResponse contains response of Remote API:
// POST "/containers/"+containerID+"/wait"
type ContainerWaitResponse struct {
// StatusCode is the status code of the wait job
StatusCode int `json:"StatusCode"`
}
// ContainerChange contains response of Remote API: // ContainerChange contains response of Remote API:
// GET "/containers/{name:.*}/changes" // GET "/containers/{name:.*}/changes"
type ContainerChange struct { type ContainerChange struct {

View File

@ -5,19 +5,19 @@ import (
"golang.org/x/net/context" "golang.org/x/net/context"
"github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container"
) )
// ContainerWait pauses execution until a container exits. // ContainerWait pauses execution until a container exits.
// It returns the API status code as response of its readiness. // It returns the API status code as response of its readiness.
func (cli *Client) ContainerWait(ctx context.Context, containerID string) (int, error) { func (cli *Client) ContainerWait(ctx context.Context, containerID string) (int64, error) {
resp, err := cli.post(ctx, "/containers/"+containerID+"/wait", nil, nil, nil) resp, err := cli.post(ctx, "/containers/"+containerID+"/wait", nil, nil, nil)
if err != nil { if err != nil {
return -1, err return -1, err
} }
defer ensureReaderClosed(resp) defer ensureReaderClosed(resp)
var res types.ContainerWaitResponse var res container.ContainerWaitOKBody
if err := json.NewDecoder(resp.body).Decode(&res); err != nil { if err := json.NewDecoder(resp.body).Decode(&res); err != nil {
return -1, err return -1, err
} }

View File

@ -11,7 +11,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container"
"golang.org/x/net/context" "golang.org/x/net/context"
) )
@ -36,7 +36,7 @@ func TestContainerWait(t *testing.T) {
if !strings.HasPrefix(req.URL.Path, expectedURL) { if !strings.HasPrefix(req.URL.Path, expectedURL) {
return nil, fmt.Errorf("Expected URL '%s', got '%s'", expectedURL, req.URL) return nil, fmt.Errorf("Expected URL '%s', got '%s'", expectedURL, req.URL)
} }
b, err := json.Marshal(types.ContainerWaitResponse{ b, err := json.Marshal(container.ContainerWaitOKBody{
StatusCode: 15, StatusCode: 15,
}) })
if err != nil { if err != nil {

View File

@ -59,7 +59,7 @@ type ContainerAPIClient interface {
ContainerTop(ctx context.Context, container string, arguments []string) (types.ContainerProcessList, error) ContainerTop(ctx context.Context, container string, arguments []string) (types.ContainerProcessList, error)
ContainerUnpause(ctx context.Context, container string) error ContainerUnpause(ctx context.Context, container string) error
ContainerUpdate(ctx context.Context, container string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error) ContainerUpdate(ctx context.Context, container string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error)
ContainerWait(ctx context.Context, container string) (int, error) ContainerWait(ctx context.Context, container string) (int64, error)
CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error) CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error)
CopyToContainer(ctx context.Context, container, path string, content io.Reader, options types.CopyToContainerOptions) error CopyToContainer(ctx context.Context, container, path string, content io.Reader, options types.CopyToContainerOptions) error
ContainersPrune(ctx context.Context, cfg types.ContainersPruneConfig) (types.ContainersPruneReport, error) ContainersPrune(ctx context.Context, cfg types.ContainersPruneConfig) (types.ContainersPruneReport, error)

View File

@ -23,7 +23,7 @@ type Backend interface {
FindNetwork(idName string) (libnetwork.Network, error) FindNetwork(idName string) (libnetwork.Network, error)
SetupIngress(req clustertypes.NetworkCreateRequest, nodeIP string) error SetupIngress(req clustertypes.NetworkCreateRequest, nodeIP string) error
PullImage(ctx context.Context, image, tag string, metaHeaders map[string][]string, authConfig *types.AuthConfig, outStream io.Writer) error PullImage(ctx context.Context, image, tag string, metaHeaders map[string][]string, authConfig *types.AuthConfig, outStream io.Writer) error
CreateManagedContainer(config types.ContainerCreateConfig, validateHostname bool) (container.ContainerCreateResponse, error) CreateManagedContainer(config types.ContainerCreateConfig, validateHostname bool) (container.ContainerCreateCreatedBody, error)
ContainerStart(name string, hostConfig *container.HostConfig, validateHostname bool, checkpoint string, checkpointDir string) error ContainerStart(name string, hostConfig *container.HostConfig, validateHostname bool, checkpoint string, checkpointDir string) error
ContainerStop(name string, seconds *int) error ContainerStop(name string, seconds *int) error
ConnectContainerToNetwork(containerName, networkName string, endpointConfig *network.EndpointSettings) error ConnectContainerToNetwork(containerName, networkName string, endpointConfig *network.EndpointSettings) error

View File

@ -17,4 +17,5 @@ swagger generate operation -f api/swagger.yaml \
-n VolumesCreate \ -n VolumesCreate \
-n ContainerCreate \ -n ContainerCreate \
-n ContainerUpdate \ -n ContainerUpdate \
-n Authenticate -n Authenticate \
-n ContainerWait

View File

@ -957,9 +957,9 @@ func (s *DockerSuite) TestContainerAPIWait(c *check.C) {
c.Assert(status, checker.Equals, http.StatusOK) c.Assert(status, checker.Equals, http.StatusOK)
c.Assert(waitInspect(name, "{{ .State.Running }}", "false", 60*time.Second), checker.IsNil) c.Assert(waitInspect(name, "{{ .State.Running }}", "false", 60*time.Second), checker.IsNil)
var waitres types.ContainerWaitResponse var waitres containertypes.ContainerWaitOKBody
c.Assert(json.Unmarshal(body, &waitres), checker.IsNil) c.Assert(json.Unmarshal(body, &waitres), checker.IsNil)
c.Assert(waitres.StatusCode, checker.Equals, 0) c.Assert(waitres.StatusCode, checker.Equals, int64(0))
} }
func (s *DockerSuite) TestContainerAPICopyNotExistsAnyMore(c *check.C) { func (s *DockerSuite) TestContainerAPICopyNotExistsAnyMore(c *check.C) {