Ver código fonte

Convert ContainerTopOKResponse from swagger spec.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Daniel Nephin 8 anos atrás
pai
commit
16bdbaaa33

+ 1 - 1
api/server/router/container/backend.go

@@ -53,7 +53,7 @@ type monitorBackend interface {
 	ContainerInspect(name string, size bool, version string) (interface{}, error)
 	ContainerInspect(name string, size bool, version string) (interface{}, error)
 	ContainerLogs(ctx context.Context, name string, config *backend.ContainerLogsConfig, started chan struct{}) error
 	ContainerLogs(ctx context.Context, name string, config *backend.ContainerLogsConfig, started chan struct{}) error
 	ContainerStats(ctx context.Context, name string, config *backend.ContainerStatsConfig) error
 	ContainerStats(ctx context.Context, name string, config *backend.ContainerStatsConfig) error
-	ContainerTop(name string, psArgs string) (*types.ContainerProcessList, error)
+	ContainerTop(name string, psArgs string) (*container.ContainerTopOKBody, error)
 
 
 	Containers(config *types.ContainerListOptions) ([]*types.Container, error)
 	Containers(config *types.ContainerListOptions) ([]*types.Container, error)
 }
 }

+ 11 - 12
api/swagger.yaml

@@ -3384,12 +3384,14 @@ paths:
     get:
     get:
       summary: "Get container stats based on resource usage"
       summary: "Get container stats based on resource usage"
       description: |
       description: |
-        This endpoint returns a live stream of a container’s resource usage statistics.
+        This endpoint returns a live stream of a container’s resource usage
+        statistics.
 
 
-        The `precpu_stats` is the CPU statistic of last read, which is used for calculating the CPU usage percentage. It is not the same as the `cpu_stats` field.
+        The `precpu_stats` is the CPU statistic of last read, which is used
+        for calculating the CPU usage percentage. It is not the same as the
+        `cpu_stats` field.
       operationId: "ContainerStats"
       operationId: "ContainerStats"
-      produces:
-        - "application/json"
+      produces: ["application/json"]
       responses:
       responses:
         200:
         200:
           description: "no error"
           description: "no error"
@@ -4111,7 +4113,7 @@ paths:
     head:
     head:
       summary: "Get information about files in a container"
       summary: "Get information about files in a container"
       description: "A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path."
       description: "A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path."
-      operationId: "ContainerArchiveHead"
+      operationId: "ContainerArchiveInfo"
       responses:
       responses:
         200:
         200:
           description: "no error"
           description: "no error"
@@ -4156,9 +4158,8 @@ paths:
     get:
     get:
       summary: "Get an archive of a filesystem resource in a container"
       summary: "Get an archive of a filesystem resource in a container"
       description: "Get a tar archive of a resource in the filesystem of container id."
       description: "Get a tar archive of a resource in the filesystem of container id."
-      operationId: "ContainerGetArchive"
-      produces:
-        - "application/x-tar"
+      operationId: "ContainerArchive"
+      produces: ["application/x-tar"]
       responses:
       responses:
         200:
         200:
           description: "no error"
           description: "no error"
@@ -4199,10 +4200,8 @@ paths:
     put:
     put:
       summary: "Extract an archive of files or folders to a directory in a container"
       summary: "Extract an archive of files or folders to a directory in a container"
       description: "Upload a tar archive to be extracted to a path in the filesystem of container id."
       description: "Upload a tar archive to be extracted to a path in the filesystem of container id."
-      operationId: "ContainerPutArchive"
-      consumes:
-        - "application/x-tar"
-        - "application/octet-stream"
+      operationId: "PutContainerArchive"
+      consumes: ["application/x-tar", "application/octet-stream"]
       responses:
       responses:
         200:
         200:
           description: "The content was extracted successfully"
           description: "The content was extracted successfully"

+ 21 - 0
api/types/container/container_top.go

@@ -0,0 +1,21 @@
+package container
+
+// ----------------------------------------------------------------------------
+// DO NOT EDIT THIS FILE
+// This file was generated by `swagger generate operation`
+//
+// See hack/swagger-gen.sh
+// ----------------------------------------------------------------------------
+
+// ContainerTopOKBody container top o k body
+// swagger:model ContainerTopOKBody
+type ContainerTopOKBody struct {
+
+	// Each process running in the container, where each is process is an array of values corresponding to the titles
+	// Required: true
+	Processes [][]string `json:"Processes"`
+
+	// The ps column titles
+	// Required: true
+	Titles []string `json:"Titles"`
+}

+ 0 - 6
api/types/types.go

@@ -93,12 +93,6 @@ type ContainerStats struct {
 	OSType string        `json:"ostype"`
 	OSType string        `json:"ostype"`
 }
 }
 
 
-// ContainerProcessList contains response of Engine API:
-// GET "/containers/{name:.*}/top"
-type ContainerProcessList struct {
-	Processes [][]string
-	Titles    []string
-}
 
 
 // Ping contains response of Engine API:
 // Ping contains response of Engine API:
 // GET "/_ping"
 // GET "/_ping"

+ 3 - 3
client/container_top.go

@@ -5,13 +5,13 @@ import (
 	"net/url"
 	"net/url"
 	"strings"
 	"strings"
 
 
-	"github.com/docker/docker/api/types"
+	"github.com/docker/docker/api/types/container"
 	"golang.org/x/net/context"
 	"golang.org/x/net/context"
 )
 )
 
 
 // ContainerTop shows process information from within a container.
 // ContainerTop shows process information from within a container.
-func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (types.ContainerProcessList, error) {
-	var response types.ContainerProcessList
+func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (container.ContainerTopOKBody, error) {
+	var response container.ContainerTopOKBody
 	query := url.Values{}
 	query := url.Values{}
 	if len(arguments) > 0 {
 	if len(arguments) > 0 {
 		query.Set("ps_args", strings.Join(arguments, " "))
 		query.Set("ps_args", strings.Join(arguments, " "))

+ 2 - 2
client/container_top_test.go

@@ -10,7 +10,7 @@ import (
 	"strings"
 	"strings"
 	"testing"
 	"testing"
 
 
-	"github.com/docker/docker/api/types"
+	"github.com/docker/docker/api/types/container"
 	"golang.org/x/net/context"
 	"golang.org/x/net/context"
 )
 )
 
 
@@ -43,7 +43,7 @@ func TestContainerTop(t *testing.T) {
 				return nil, fmt.Errorf("args not set in URL query properly. Expected 'arg1 arg2', got %v", args)
 				return nil, fmt.Errorf("args not set in URL query properly. Expected 'arg1 arg2', got %v", args)
 			}
 			}
 
 
-			b, err := json.Marshal(types.ContainerProcessList{
+			b, err := json.Marshal(container.ContainerTopOKBody{
 				Processes: [][]string{
 				Processes: [][]string{
 					{"p1", "p2"},
 					{"p1", "p2"},
 					{"p3"},
 					{"p3"},

+ 1 - 1
client/interface.go

@@ -59,7 +59,7 @@ type ContainerAPIClient interface {
 	ContainerStats(ctx context.Context, container string, stream bool) (types.ContainerStats, error)
 	ContainerStats(ctx context.Context, container string, stream bool) (types.ContainerStats, error)
 	ContainerStart(ctx context.Context, container string, options types.ContainerStartOptions) error
 	ContainerStart(ctx context.Context, container string, options types.ContainerStartOptions) error
 	ContainerStop(ctx context.Context, container string, timeout *time.Duration) error
 	ContainerStop(ctx context.Context, container string, timeout *time.Duration) error
-	ContainerTop(ctx context.Context, container string, arguments []string) (types.ContainerProcessList, error)
+	ContainerTop(ctx context.Context, container string, arguments []string) (container.ContainerTopOKBody, 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) (int64, error)
 	ContainerWait(ctx context.Context, container string) (int64, error)

+ 4 - 4
daemon/top_unix.go

@@ -9,7 +9,7 @@ import (
 	"strconv"
 	"strconv"
 	"strings"
 	"strings"
 
 
-	"github.com/docker/docker/api/types"
+	"github.com/docker/docker/api/types/container"
 )
 )
 
 
 func validatePSArgs(psArgs string) error {
 func validatePSArgs(psArgs string) error {
@@ -41,8 +41,8 @@ func fieldsASCII(s string) []string {
 	return strings.FieldsFunc(s, fn)
 	return strings.FieldsFunc(s, fn)
 }
 }
 
 
-func parsePSOutput(output []byte, pids []int) (*types.ContainerProcessList, error) {
-	procList := &types.ContainerProcessList{}
+func parsePSOutput(output []byte, pids []int) (*container.ContainerTopOKBody, error) {
+	procList := &container.ContainerTopOKBody{}
 
 
 	lines := strings.Split(string(output), "\n")
 	lines := strings.Split(string(output), "\n")
 	procList.Titles = fieldsASCII(lines[0])
 	procList.Titles = fieldsASCII(lines[0])
@@ -86,7 +86,7 @@ func parsePSOutput(output []byte, pids []int) (*types.ContainerProcessList, erro
 // "-ef" if no args are given.  An error is returned if the container
 // "-ef" if no args are given.  An error is returned if the container
 // is not found, or is not running, or if there are any problems
 // is not found, or is not running, or if there are any problems
 // running ps, or parsing the output.
 // running ps, or parsing the output.
-func (daemon *Daemon) ContainerTop(name string, psArgs string) (*types.ContainerProcessList, error) {
+func (daemon *Daemon) ContainerTop(name string, psArgs string) (*container.ContainerTopOKBody, error) {
 	if psArgs == "" {
 	if psArgs == "" {
 		psArgs = "-ef"
 		psArgs = "-ef"
 	}
 	}

+ 3 - 3
daemon/top_windows.go

@@ -5,7 +5,7 @@ import (
 	"fmt"
 	"fmt"
 	"time"
 	"time"
 
 
-	"github.com/docker/docker/api/types"
+	containertypes "github.com/docker/docker/api/types/container"
 	"github.com/docker/go-units"
 	"github.com/docker/go-units"
 )
 )
 
 
@@ -23,7 +23,7 @@ import (
 //    task manager does and use the private working set as the memory counter.
 //    task manager does and use the private working set as the memory counter.
 //    We could return more info for those who really understand how memory
 //    We could return more info for those who really understand how memory
 //    management works in Windows if we introduced a "raw" stats (above).
 //    management works in Windows if we introduced a "raw" stats (above).
-func (daemon *Daemon) ContainerTop(name string, psArgs string) (*types.ContainerProcessList, error) {
+func (daemon *Daemon) ContainerTop(name string, psArgs string) (*containertypes.ContainerTopOKBody, error) {
 	// It's not at all an equivalent to linux 'ps' on Windows
 	// It's not at all an equivalent to linux 'ps' on Windows
 	if psArgs != "" {
 	if psArgs != "" {
 		return nil, errors.New("Windows does not support arguments to top")
 		return nil, errors.New("Windows does not support arguments to top")
@@ -38,7 +38,7 @@ func (daemon *Daemon) ContainerTop(name string, psArgs string) (*types.Container
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
-	procList := &types.ContainerProcessList{}
+	procList := &containertypes.ContainerTopOKBody{}
 	procList.Titles = []string{"Name", "PID", "CPU", "Private Working Set"}
 	procList.Titles = []string{"Name", "PID", "CPU", "Private Working Set"}
 
 
 	for _, j := range s {
 	for _, j := range s {

+ 1 - 0
hack/generate-swagger-api.sh

@@ -19,6 +19,7 @@ swagger generate operation -f api/swagger.yaml \
     -n Authenticate \
     -n Authenticate \
     -n ContainerChanges \
     -n ContainerChanges \
     -n ContainerCreate \
     -n ContainerCreate \
+    -n ContainerTop \
     -n ContainerUpdate \
     -n ContainerUpdate \
     -n ContainerWait \
     -n ContainerWait \
     -n ImageHistory \
     -n ImageHistory \