mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	Merge pull request #28409 from dnephin/swagger-gen-more
Generate more types from the swagger spec
This commit is contained in:
		
						commit
						a69c4129e0
					
				
					 25 changed files with 265 additions and 139 deletions
				
			
		| 
						 | 
					@ -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)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,7 @@ import (
 | 
				
			||||||
	"github.com/docker/docker/api/types"
 | 
						"github.com/docker/docker/api/types"
 | 
				
			||||||
	"github.com/docker/docker/api/types/backend"
 | 
						"github.com/docker/docker/api/types/backend"
 | 
				
			||||||
	"github.com/docker/docker/api/types/filters"
 | 
						"github.com/docker/docker/api/types/filters"
 | 
				
			||||||
 | 
						"github.com/docker/docker/api/types/image"
 | 
				
			||||||
	"github.com/docker/docker/api/types/registry"
 | 
						"github.com/docker/docker/api/types/registry"
 | 
				
			||||||
	"golang.org/x/net/context"
 | 
						"golang.org/x/net/context"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
| 
						 | 
					@ -24,8 +25,8 @@ type containerBackend interface {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type imageBackend interface {
 | 
					type imageBackend interface {
 | 
				
			||||||
	ImageDelete(imageRef string, force, prune bool) ([]types.ImageDelete, error)
 | 
						ImageDelete(imageRef string, force, prune bool) ([]types.ImageDeleteResponseItem, error)
 | 
				
			||||||
	ImageHistory(imageName string) ([]*types.ImageHistory, error)
 | 
						ImageHistory(imageName string) ([]*image.HistoryResponseItem, error)
 | 
				
			||||||
	Images(imageFilters filters.Args, all bool, withExtraAttrs bool) ([]*types.ImageSummary, error)
 | 
						Images(imageFilters filters.Args, all bool, withExtraAttrs bool) ([]*types.ImageSummary, error)
 | 
				
			||||||
	LookupImage(name string) (*types.ImageInspect, error)
 | 
						LookupImage(name string) (*types.ImageInspect, error)
 | 
				
			||||||
	TagImage(imageName, repository, tag string) error
 | 
						TagImage(imageName, repository, tag string) error
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										126
									
								
								api/swagger.yaml
									
										
									
									
									
								
							
							
						
						
									
										126
									
								
								api/swagger.yaml
									
										
									
									
									
								
							| 
						 | 
					@ -829,22 +829,40 @@ definitions:
 | 
				
			||||||
        items:
 | 
					        items:
 | 
				
			||||||
          $ref: "#/definitions/Port"
 | 
					          $ref: "#/definitions/Port"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  GraphDriver:
 | 
					  GraphDriverData:
 | 
				
			||||||
    description: "Information about this container's graph driver."
 | 
					    description: "Information about a container's graph driver."
 | 
				
			||||||
    type: "object"
 | 
					    type: "object"
 | 
				
			||||||
 | 
					    required: [Name, Data]
 | 
				
			||||||
    properties:
 | 
					    properties:
 | 
				
			||||||
      Name:
 | 
					      Name:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      Data:
 | 
					      Data:
 | 
				
			||||||
        type: "object"
 | 
					        type: "object"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
        additionalProperties:
 | 
					        additionalProperties:
 | 
				
			||||||
          type: "string"
 | 
					          type: "string"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Image:
 | 
					  Image:
 | 
				
			||||||
    type: "object"
 | 
					    type: "object"
 | 
				
			||||||
 | 
					    required:
 | 
				
			||||||
 | 
					      - Id
 | 
				
			||||||
 | 
					      - Parent
 | 
				
			||||||
 | 
					      - Comment
 | 
				
			||||||
 | 
					      - Created
 | 
				
			||||||
 | 
					      - Container
 | 
				
			||||||
 | 
					      - DockerVersion
 | 
				
			||||||
 | 
					      - Author
 | 
				
			||||||
 | 
					      - Architecture
 | 
				
			||||||
 | 
					      - Os
 | 
				
			||||||
 | 
					      - Size
 | 
				
			||||||
 | 
					      - VirtualSize
 | 
				
			||||||
 | 
					      - GraphDriver
 | 
				
			||||||
 | 
					      - RootFS
 | 
				
			||||||
    properties:
 | 
					    properties:
 | 
				
			||||||
      Id:
 | 
					      Id:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      RepoTags:
 | 
					      RepoTags:
 | 
				
			||||||
        type: "array"
 | 
					        type: "array"
 | 
				
			||||||
        items:
 | 
					        items:
 | 
				
			||||||
| 
						 | 
					@ -855,37 +873,51 @@ definitions:
 | 
				
			||||||
          type: "string"
 | 
					          type: "string"
 | 
				
			||||||
      Parent:
 | 
					      Parent:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      Comment:
 | 
					      Comment:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      Created:
 | 
					      Created:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      Container:
 | 
					      Container:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      ContainerConfig:
 | 
					      ContainerConfig:
 | 
				
			||||||
        $ref: "#/definitions/Config"
 | 
					        $ref: "#/definitions/Config"
 | 
				
			||||||
      DockerVersion:
 | 
					      DockerVersion:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      Author:
 | 
					      Author:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      Config:
 | 
					      Config:
 | 
				
			||||||
        $ref: "#/definitions/Config"
 | 
					        $ref: "#/definitions/Config"
 | 
				
			||||||
      Architecture:
 | 
					      Architecture:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      Os:
 | 
					      Os:
 | 
				
			||||||
        type: "string"
 | 
					        type: "string"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
 | 
					      OsVersion:
 | 
				
			||||||
 | 
					        type: "string"
 | 
				
			||||||
      Size:
 | 
					      Size:
 | 
				
			||||||
        type: "integer"
 | 
					        type: "integer"
 | 
				
			||||||
        format: "int64"
 | 
					        format: "int64"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      VirtualSize:
 | 
					      VirtualSize:
 | 
				
			||||||
        type: "integer"
 | 
					        type: "integer"
 | 
				
			||||||
        format: "int64"
 | 
					        format: "int64"
 | 
				
			||||||
 | 
					        x-nullable: false
 | 
				
			||||||
      GraphDriver:
 | 
					      GraphDriver:
 | 
				
			||||||
        $ref: "#/definitions/GraphDriver"
 | 
					        $ref: "#/definitions/GraphDriverData"
 | 
				
			||||||
      RootFS:
 | 
					      RootFS:
 | 
				
			||||||
        type: "object"
 | 
					        type: "object"
 | 
				
			||||||
 | 
					        required: [Type]
 | 
				
			||||||
        properties:
 | 
					        properties:
 | 
				
			||||||
          Type:
 | 
					          Type:
 | 
				
			||||||
            type: "string"
 | 
					            type: "string"
 | 
				
			||||||
 | 
					            x-nullable: false
 | 
				
			||||||
          Layers:
 | 
					          Layers:
 | 
				
			||||||
            type: "array"
 | 
					            type: "array"
 | 
				
			||||||
            items:
 | 
					            items:
 | 
				
			||||||
| 
						 | 
					@ -2302,7 +2334,7 @@ definitions:
 | 
				
			||||||
          -
 | 
					          -
 | 
				
			||||||
            NetworkID: "4qvuz4ko70xaltuqbt8956gd1"
 | 
					            NetworkID: "4qvuz4ko70xaltuqbt8956gd1"
 | 
				
			||||||
            Addr: "10.255.0.3/16"
 | 
					            Addr: "10.255.0.3/16"
 | 
				
			||||||
  ImageDeleteResponse:
 | 
					  ImageDeleteResponseItem:
 | 
				
			||||||
    type: "object"
 | 
					    type: "object"
 | 
				
			||||||
    properties:
 | 
					    properties:
 | 
				
			||||||
      Untagged:
 | 
					      Untagged:
 | 
				
			||||||
| 
						 | 
					@ -2899,7 +2931,7 @@ paths:
 | 
				
			||||||
              HostConfig:
 | 
					              HostConfig:
 | 
				
			||||||
                $ref: "#/definitions/HostConfig"
 | 
					                $ref: "#/definitions/HostConfig"
 | 
				
			||||||
              GraphDriver:
 | 
					              GraphDriver:
 | 
				
			||||||
                $ref: "#/definitions/GraphDriver"
 | 
					                $ref: "#/definitions/GraphDriverData"
 | 
				
			||||||
              SizeRw:
 | 
					              SizeRw:
 | 
				
			||||||
                description: "The size of files that have been created or changed by this container."
 | 
					                description: "The size of files that have been created or changed by this container."
 | 
				
			||||||
                type: "integer"
 | 
					                type: "integer"
 | 
				
			||||||
| 
						 | 
					@ -3231,32 +3263,34 @@ paths:
 | 
				
			||||||
    get:
 | 
					    get:
 | 
				
			||||||
      summary: "Get changes on a container’s filesystem"
 | 
					      summary: "Get changes on a container’s filesystem"
 | 
				
			||||||
      description: |
 | 
					      description: |
 | 
				
			||||||
        Returns which files in a container's filesystem have been added, deleted, or modified. The `Kind` of modification can be one of:
 | 
					        Returns which files in a container's filesystem have been added, deleted,
 | 
				
			||||||
 | 
					        or modified. The `Kind` of modification can be one of:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        - `0`: Modified
 | 
					        - `0`: Modified
 | 
				
			||||||
        - `1`: Added
 | 
					        - `1`: Added
 | 
				
			||||||
        - `2`: Deleted
 | 
					        - `2`: Deleted
 | 
				
			||||||
      operationId: "ContainerChanges"
 | 
					      operationId: "ContainerChanges"
 | 
				
			||||||
      produces:
 | 
					      produces: ["application/json"]
 | 
				
			||||||
        - "application/json"
 | 
					 | 
				
			||||||
      responses:
 | 
					      responses:
 | 
				
			||||||
        200:
 | 
					        200:
 | 
				
			||||||
          description: "no error"
 | 
					          description: "The list of changes"
 | 
				
			||||||
          schema:
 | 
					          schema:
 | 
				
			||||||
            type: "array"
 | 
					            type: "array"
 | 
				
			||||||
            items:
 | 
					            items:
 | 
				
			||||||
              type: "object"
 | 
					              type: "object"
 | 
				
			||||||
 | 
					              x-go-name: "ContainerChangeResponseItem"
 | 
				
			||||||
 | 
					              required: [Path, Kind]
 | 
				
			||||||
              properties:
 | 
					              properties:
 | 
				
			||||||
                Path:
 | 
					                Path:
 | 
				
			||||||
                  description: "Path to file that has changed"
 | 
					                  description: "Path to file that has changed"
 | 
				
			||||||
                  type: "string"
 | 
					                  type: "string"
 | 
				
			||||||
 | 
					                  x-nullable: false
 | 
				
			||||||
                Kind:
 | 
					                Kind:
 | 
				
			||||||
                  description: "Kind of change"
 | 
					                  description: "Kind of change"
 | 
				
			||||||
                  type: "integer"
 | 
					                  type: "integer"
 | 
				
			||||||
                  enum:
 | 
					                  format: "uint8"
 | 
				
			||||||
                    - 0
 | 
					                  enum: [0, 1, 2]
 | 
				
			||||||
                    - 1
 | 
					                  x-nullable: false
 | 
				
			||||||
                    - 2
 | 
					 | 
				
			||||||
          examples:
 | 
					          examples:
 | 
				
			||||||
            application/json:
 | 
					            application/json:
 | 
				
			||||||
              - Path: "/dev"
 | 
					              - Path: "/dev"
 | 
				
			||||||
| 
						 | 
					@ -3315,12 +3349,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:
 | 
					      produces: ["application/json"]
 | 
				
			||||||
        - "application/json"
 | 
					 | 
				
			||||||
      responses:
 | 
					      responses:
 | 
				
			||||||
        200:
 | 
					        200:
 | 
				
			||||||
          description: "no error"
 | 
					          description: "no error"
 | 
				
			||||||
| 
						 | 
					@ -4042,7 +4078,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"
 | 
				
			||||||
| 
						 | 
					@ -4087,9 +4123,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"
 | 
					      operationId: "ContainerArchive"
 | 
				
			||||||
      produces:
 | 
					      produces: ["application/x-tar"]
 | 
				
			||||||
        - "application/x-tar"
 | 
					 | 
				
			||||||
      responses:
 | 
					      responses:
 | 
				
			||||||
        200:
 | 
					        200:
 | 
				
			||||||
          description: "no error"
 | 
					          description: "no error"
 | 
				
			||||||
| 
						 | 
					@ -4130,10 +4165,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"
 | 
					      operationId: "PutContainerArchive"
 | 
				
			||||||
      consumes:
 | 
					      consumes: ["application/x-tar", "application/octet-stream"]
 | 
				
			||||||
        - "application/x-tar"
 | 
					 | 
				
			||||||
        - "application/octet-stream"
 | 
					 | 
				
			||||||
      responses:
 | 
					      responses:
 | 
				
			||||||
        200:
 | 
					        200:
 | 
				
			||||||
          description: "The content was extracted successfully"
 | 
					          description: "The content was extracted successfully"
 | 
				
			||||||
| 
						 | 
					@ -4533,6 +4566,7 @@ paths:
 | 
				
			||||||
              Created: "2015-09-10T08:30:53.26995814Z"
 | 
					              Created: "2015-09-10T08:30:53.26995814Z"
 | 
				
			||||||
              GraphDriver:
 | 
					              GraphDriver:
 | 
				
			||||||
                Name: "aufs"
 | 
					                Name: "aufs"
 | 
				
			||||||
 | 
					                Data: {}
 | 
				
			||||||
              RepoDigests:
 | 
					              RepoDigests:
 | 
				
			||||||
                - "localhost:5000/test/busybox/example@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf"
 | 
					                - "localhost:5000/test/busybox/example@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf"
 | 
				
			||||||
              RepoTags:
 | 
					              RepoTags:
 | 
				
			||||||
| 
						 | 
					@ -4591,23 +4625,27 @@ paths:
 | 
				
			||||||
      summary: "Get the history of an image"
 | 
					      summary: "Get the history of an image"
 | 
				
			||||||
      description: "Return parent layers of an image."
 | 
					      description: "Return parent layers of an image."
 | 
				
			||||||
      operationId: "ImageHistory"
 | 
					      operationId: "ImageHistory"
 | 
				
			||||||
      produces:
 | 
					      produces: ["application/json"]
 | 
				
			||||||
        - "application/json"
 | 
					 | 
				
			||||||
      responses:
 | 
					      responses:
 | 
				
			||||||
        200:
 | 
					        200:
 | 
				
			||||||
          description: "No error"
 | 
					          description: "List of image layers"
 | 
				
			||||||
          schema:
 | 
					          schema:
 | 
				
			||||||
            type: "array"
 | 
					            type: "array"
 | 
				
			||||||
            items:
 | 
					            items:
 | 
				
			||||||
              type: "object"
 | 
					              type: "object"
 | 
				
			||||||
 | 
					              x-go-name: HistoryResponseItem
 | 
				
			||||||
 | 
					              required: [Id, Created, CreatedBy, Tags, Size, Comment]
 | 
				
			||||||
              properties:
 | 
					              properties:
 | 
				
			||||||
                Id:
 | 
					                Id:
 | 
				
			||||||
                  type: "string"
 | 
					                  type: "string"
 | 
				
			||||||
 | 
					                  x-nullable: false
 | 
				
			||||||
                Created:
 | 
					                Created:
 | 
				
			||||||
                  type: "integer"
 | 
					                  type: "integer"
 | 
				
			||||||
                  format: "int64"
 | 
					                  format: "int64"
 | 
				
			||||||
 | 
					                  x-nullable: false
 | 
				
			||||||
                CreatedBy:
 | 
					                CreatedBy:
 | 
				
			||||||
                  type: "string"
 | 
					                  type: "string"
 | 
				
			||||||
 | 
					                  x-nullable: false
 | 
				
			||||||
                Tags:
 | 
					                Tags:
 | 
				
			||||||
                  type: "array"
 | 
					                  type: "array"
 | 
				
			||||||
                  items:
 | 
					                  items:
 | 
				
			||||||
| 
						 | 
					@ -4615,8 +4653,10 @@ paths:
 | 
				
			||||||
                Size:
 | 
					                Size:
 | 
				
			||||||
                  type: "integer"
 | 
					                  type: "integer"
 | 
				
			||||||
                  format: "int64"
 | 
					                  format: "int64"
 | 
				
			||||||
 | 
					                  x-nullable: false
 | 
				
			||||||
                Comment:
 | 
					                Comment:
 | 
				
			||||||
                  type: "string"
 | 
					                  type: "string"
 | 
				
			||||||
 | 
					                  x-nullable: false
 | 
				
			||||||
          examples:
 | 
					          examples:
 | 
				
			||||||
            application/json:
 | 
					            application/json:
 | 
				
			||||||
              - Id: "3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710"
 | 
					              - Id: "3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710"
 | 
				
			||||||
| 
						 | 
					@ -4738,19 +4778,20 @@ paths:
 | 
				
			||||||
    delete:
 | 
					    delete:
 | 
				
			||||||
      summary: "Remove an image"
 | 
					      summary: "Remove an image"
 | 
				
			||||||
      description: |
 | 
					      description: |
 | 
				
			||||||
        Remove an image, along with any untagged parent images that were referenced by that image.
 | 
					        Remove an image, along with any untagged parent images that were
 | 
				
			||||||
 | 
					        referenced by that image.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Images can't be removed if they have descendant images, are being used by a running container or are being used by a build.
 | 
					        Images can't be removed if they have descendant images, are being
 | 
				
			||||||
 | 
					        used by a running container or are being used by a build.
 | 
				
			||||||
      operationId: "ImageDelete"
 | 
					      operationId: "ImageDelete"
 | 
				
			||||||
      produces:
 | 
					      produces: ["application/json"]
 | 
				
			||||||
        - "application/json"
 | 
					 | 
				
			||||||
      responses:
 | 
					      responses:
 | 
				
			||||||
        200:
 | 
					        200:
 | 
				
			||||||
          description: "No error"
 | 
					          description: "The image was deleted successfully"
 | 
				
			||||||
          schema:
 | 
					          schema:
 | 
				
			||||||
            type: "array"
 | 
					            type: "array"
 | 
				
			||||||
            items:
 | 
					            items:
 | 
				
			||||||
              $ref: "#/definitions/ImageDeleteResponse"
 | 
					              $ref: "#/definitions/ImageDeleteResponseItem"
 | 
				
			||||||
          examples:
 | 
					          examples:
 | 
				
			||||||
            application/json:
 | 
					            application/json:
 | 
				
			||||||
              - Untagged: "3e2f21a89f"
 | 
					              - Untagged: "3e2f21a89f"
 | 
				
			||||||
| 
						 | 
					@ -4879,7 +4920,7 @@ paths:
 | 
				
			||||||
                description: "Images that were deleted"
 | 
					                description: "Images that were deleted"
 | 
				
			||||||
                type: "array"
 | 
					                type: "array"
 | 
				
			||||||
                items:
 | 
					                items:
 | 
				
			||||||
                  $ref: "#/definitions/ImageDeleteResponse"
 | 
					                  $ref: "#/definitions/ImageDeleteResponseItem"
 | 
				
			||||||
              SpaceReclaimed:
 | 
					              SpaceReclaimed:
 | 
				
			||||||
                description: "Disk space reclaimed in bytes"
 | 
					                description: "Disk space reclaimed in bytes"
 | 
				
			||||||
                type: "integer"
 | 
					                type: "integer"
 | 
				
			||||||
| 
						 | 
					@ -5145,8 +5186,7 @@ paths:
 | 
				
			||||||
      summary: "Get version"
 | 
					      summary: "Get version"
 | 
				
			||||||
      description: "Returns the version of Docker that is running and various information about the system that Docker is running on."
 | 
					      description: "Returns the version of Docker that is running and various information about the system that Docker is running on."
 | 
				
			||||||
      operationId: "SystemVersion"
 | 
					      operationId: "SystemVersion"
 | 
				
			||||||
      produces:
 | 
					      produces: ["application/json"]
 | 
				
			||||||
        - "application/json"
 | 
					 | 
				
			||||||
      responses:
 | 
					      responses:
 | 
				
			||||||
        200:
 | 
					        200:
 | 
				
			||||||
          description: "no error"
 | 
					          description: "no error"
 | 
				
			||||||
| 
						 | 
					@ -5195,14 +5235,20 @@ paths:
 | 
				
			||||||
      summary: "Ping"
 | 
					      summary: "Ping"
 | 
				
			||||||
      description: "This is a dummy endpoint you can use to test if the server is accessible."
 | 
					      description: "This is a dummy endpoint you can use to test if the server is accessible."
 | 
				
			||||||
      operationId: "SystemPing"
 | 
					      operationId: "SystemPing"
 | 
				
			||||||
      produces:
 | 
					      produces: ["text/plain"]
 | 
				
			||||||
        - "text/plain"
 | 
					 | 
				
			||||||
      responses:
 | 
					      responses:
 | 
				
			||||||
        200:
 | 
					        200:
 | 
				
			||||||
          description: "no error"
 | 
					          description: "no error"
 | 
				
			||||||
          schema:
 | 
					          schema:
 | 
				
			||||||
            type: "string"
 | 
					            type: "string"
 | 
				
			||||||
            example: "OK"
 | 
					            example: "OK"
 | 
				
			||||||
 | 
					          headers:
 | 
				
			||||||
 | 
					            API-Version:
 | 
				
			||||||
 | 
					              type: "string"
 | 
				
			||||||
 | 
					              description: "Max API Version the server supports"
 | 
				
			||||||
 | 
					            Docker-Experimental:
 | 
				
			||||||
 | 
					              type: "boolean"
 | 
				
			||||||
 | 
					              description: "If the server is running with experimental mode enabled"
 | 
				
			||||||
        500:
 | 
					        500:
 | 
				
			||||||
          description: "server error"
 | 
					          description: "server error"
 | 
				
			||||||
          schema:
 | 
					          schema:
 | 
				
			||||||
| 
						 | 
					@ -7293,7 +7339,7 @@ paths:
 | 
				
			||||||
        200:
 | 
					        200:
 | 
				
			||||||
          description: "no error"
 | 
					          description: "no error"
 | 
				
			||||||
          schema:
 | 
					          schema:
 | 
				
			||||||
            $ref: "#/definitions/ImageDeleteResponse"
 | 
					            $ref: "#/definitions/ServiceUpdateResponse"
 | 
				
			||||||
        400:
 | 
					        400:
 | 
				
			||||||
          description: "bad parameter"
 | 
					          description: "bad parameter"
 | 
				
			||||||
          schema:
 | 
					          schema:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										21
									
								
								api/types/container/container_changes.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								api/types/container/container_changes.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					package container
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					// DO NOT EDIT THIS FILE
 | 
				
			||||||
 | 
					// This file was generated by `swagger generate operation`
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// See hack/generate-swagger-api.sh
 | 
				
			||||||
 | 
					// ----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ContainerChangeResponseItem container change response item
 | 
				
			||||||
 | 
					// swagger:model ContainerChangeResponseItem
 | 
				
			||||||
 | 
					type ContainerChangeResponseItem struct {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Kind of change
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						Kind uint8 `json:"Kind"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Path to file that has changed
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						Path string `json:"Path"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										21
									
								
								api/types/container/container_top.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								api/types/container/container_top.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					package container
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					// DO NOT EDIT THIS FILE
 | 
				
			||||||
 | 
					// This file was generated by `swagger generate operation`
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// See hack/generate-swagger-api.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"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										17
									
								
								api/types/graph_driver_data.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								api/types/graph_driver_data.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					package types
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This file was generated by the swagger tool.
 | 
				
			||||||
 | 
					// Editing this file might prove futile when you re-run the swagger generate command
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GraphDriverData Information about a container's graph driver.
 | 
				
			||||||
 | 
					// swagger:model GraphDriverData
 | 
				
			||||||
 | 
					type GraphDriverData struct {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// data
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						Data map[string]string `json:"Data"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// name
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						Name string `json:"Name"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										37
									
								
								api/types/image/image_history.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								api/types/image/image_history.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					package image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					// DO NOT EDIT THIS FILE
 | 
				
			||||||
 | 
					// This file was generated by `swagger generate operation`
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// See hack/generate-swagger-api.sh
 | 
				
			||||||
 | 
					// ----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// HistoryResponseItem history response item
 | 
				
			||||||
 | 
					// swagger:model HistoryResponseItem
 | 
				
			||||||
 | 
					type HistoryResponseItem struct {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// comment
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						Comment string `json:"Comment"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// created
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						Created int64 `json:"Created"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// created by
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						CreatedBy string `json:"CreatedBy"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Id
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						ID string `json:"Id"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// size
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						Size int64 `json:"Size"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// tags
 | 
				
			||||||
 | 
						// Required: true
 | 
				
			||||||
 | 
						Tags []string `json:"Tags"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								api/types/image_delete_response_item.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								api/types/image_delete_response_item.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					package types
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This file was generated by the swagger tool.
 | 
				
			||||||
 | 
					// Editing this file might prove futile when you re-run the swagger generate command
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ImageDeleteResponseItem image delete response item
 | 
				
			||||||
 | 
					// swagger:model ImageDeleteResponseItem
 | 
				
			||||||
 | 
					type ImageDeleteResponseItem struct {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// The image ID of an image that was deleted
 | 
				
			||||||
 | 
						Deleted string `json:"Deleted,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// The image ID of an image that was untagged
 | 
				
			||||||
 | 
						Untagged string `json:"Untagged,omitempty"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -17,38 +17,6 @@ import (
 | 
				
			||||||
	"github.com/docker/go-connections/nat"
 | 
						"github.com/docker/go-connections/nat"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ContainerChange contains response of Engine API:
 | 
					 | 
				
			||||||
// GET "/containers/{name:.*}/changes"
 | 
					 | 
				
			||||||
type ContainerChange struct {
 | 
					 | 
				
			||||||
	Kind int
 | 
					 | 
				
			||||||
	Path string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ImageHistory contains response of Engine API:
 | 
					 | 
				
			||||||
// GET "/images/{name:.*}/history"
 | 
					 | 
				
			||||||
type ImageHistory struct {
 | 
					 | 
				
			||||||
	ID        string `json:"Id"`
 | 
					 | 
				
			||||||
	Created   int64
 | 
					 | 
				
			||||||
	CreatedBy string
 | 
					 | 
				
			||||||
	Tags      []string
 | 
					 | 
				
			||||||
	Size      int64
 | 
					 | 
				
			||||||
	Comment   string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ImageDelete contains response of Engine API:
 | 
					 | 
				
			||||||
// DELETE "/images/{name:.*}"
 | 
					 | 
				
			||||||
type ImageDelete struct {
 | 
					 | 
				
			||||||
	Untagged string `json:",omitempty"`
 | 
					 | 
				
			||||||
	Deleted  string `json:",omitempty"`
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// GraphDriverData returns Image's graph driver config info
 | 
					 | 
				
			||||||
// when calling inspect command
 | 
					 | 
				
			||||||
type GraphDriverData struct {
 | 
					 | 
				
			||||||
	Name string
 | 
					 | 
				
			||||||
	Data map[string]string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// RootFS returns Image's RootFS description including the layer IDs.
 | 
					// RootFS returns Image's RootFS description including the layer IDs.
 | 
				
			||||||
type RootFS struct {
 | 
					type RootFS struct {
 | 
				
			||||||
	Type      string
 | 
						Type      string
 | 
				
			||||||
| 
						 | 
					@ -125,13 +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"
 | 
				
			||||||
type Ping struct {
 | 
					type Ping struct {
 | 
				
			||||||
| 
						 | 
					@ -526,7 +487,7 @@ type VolumesPruneReport struct {
 | 
				
			||||||
// ImagesPruneReport contains the response for Engine API:
 | 
					// ImagesPruneReport contains the response for Engine API:
 | 
				
			||||||
// POST "/images/prune"
 | 
					// POST "/images/prune"
 | 
				
			||||||
type ImagesPruneReport struct {
 | 
					type ImagesPruneReport struct {
 | 
				
			||||||
	ImagesDeleted  []ImageDelete
 | 
						ImagesDeleted  []ImageDeleteResponseItem
 | 
				
			||||||
	SpaceReclaimed uint64
 | 
						SpaceReclaimed uint64
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,13 +4,13 @@ import (
 | 
				
			||||||
	"encoding/json"
 | 
						"encoding/json"
 | 
				
			||||||
	"net/url"
 | 
						"net/url"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/docker/docker/api/types"
 | 
						"github.com/docker/docker/api/types/container"
 | 
				
			||||||
	"golang.org/x/net/context"
 | 
						"golang.org/x/net/context"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ContainerDiff shows differences in a container filesystem since it was started.
 | 
					// ContainerDiff shows differences in a container filesystem since it was started.
 | 
				
			||||||
func (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]types.ContainerChange, error) {
 | 
					func (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]container.ContainerChangeResponseItem, error) {
 | 
				
			||||||
	var changes []types.ContainerChange
 | 
						var changes []container.ContainerChangeResponseItem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	serverResp, err := cli.get(ctx, "/containers/"+containerID+"/changes", url.Values{}, nil)
 | 
						serverResp, err := cli.get(ctx, "/containers/"+containerID+"/changes", url.Values{}, nil)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,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"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,7 +31,7 @@ func TestContainerDiff(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.ContainerChange{
 | 
								b, err := json.Marshal([]container.ContainerChangeResponseItem{
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					Kind: 0,
 | 
										Kind: 0,
 | 
				
			||||||
					Path: "/path/1",
 | 
										Path: "/path/1",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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) {
 | 
					func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (container.ContainerTopOKBody, error) {
 | 
				
			||||||
	var response types.ContainerProcessList
 | 
						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, " "))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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"},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,13 +4,13 @@ import (
 | 
				
			||||||
	"encoding/json"
 | 
						"encoding/json"
 | 
				
			||||||
	"net/url"
 | 
						"net/url"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/docker/docker/api/types"
 | 
						"github.com/docker/docker/api/types/image"
 | 
				
			||||||
	"golang.org/x/net/context"
 | 
						"golang.org/x/net/context"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ImageHistory returns the changes in an image in history format.
 | 
					// ImageHistory returns the changes in an image in history format.
 | 
				
			||||||
func (cli *Client) ImageHistory(ctx context.Context, imageID string) ([]types.ImageHistory, error) {
 | 
					func (cli *Client) ImageHistory(ctx context.Context, imageID string) ([]image.HistoryResponseItem, error) {
 | 
				
			||||||
	var history []types.ImageHistory
 | 
						var history []image.HistoryResponseItem
 | 
				
			||||||
	serverResp, err := cli.get(ctx, "/images/"+imageID+"/history", url.Values{}, nil)
 | 
						serverResp, err := cli.get(ctx, "/images/"+imageID+"/history", url.Values{}, nil)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return history, err
 | 
							return history, err
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@ import (
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/docker/docker/api/types"
 | 
						"github.com/docker/docker/api/types/image"
 | 
				
			||||||
	"golang.org/x/net/context"
 | 
						"golang.org/x/net/context"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@ func TestImageHistory(t *testing.T) {
 | 
				
			||||||
			if !strings.HasPrefix(r.URL.Path, expectedURL) {
 | 
								if !strings.HasPrefix(r.URL.Path, expectedURL) {
 | 
				
			||||||
				return nil, fmt.Errorf("Expected URL '%s', got '%s'", expectedURL, r.URL)
 | 
									return nil, fmt.Errorf("Expected URL '%s', got '%s'", expectedURL, r.URL)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			b, err := json.Marshal([]types.ImageHistory{
 | 
								b, err := json.Marshal([]image.HistoryResponseItem{
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					ID:   "image_id1",
 | 
										ID:   "image_id1",
 | 
				
			||||||
					Tags: []string{"tag1", "tag2"},
 | 
										Tags: []string{"tag1", "tag2"},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@ import (
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ImageRemove removes an image from the docker host.
 | 
					// ImageRemove removes an image from the docker host.
 | 
				
			||||||
func (cli *Client) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDelete, error) {
 | 
					func (cli *Client) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) {
 | 
				
			||||||
	query := url.Values{}
 | 
						query := url.Values{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if options.Force {
 | 
						if options.Force {
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@ func (cli *Client) ImageRemove(ctx context.Context, imageID string, options type
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var dels []types.ImageDelete
 | 
						var dels []types.ImageDeleteResponseItem
 | 
				
			||||||
	err = json.NewDecoder(resp.body).Decode(&dels)
 | 
						err = json.NewDecoder(resp.body).Decode(&dels)
 | 
				
			||||||
	ensureReaderClosed(resp)
 | 
						ensureReaderClosed(resp)
 | 
				
			||||||
	return dels, err
 | 
						return dels, err
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -63,7 +63,7 @@ func TestImageRemove(t *testing.T) {
 | 
				
			||||||
						return nil, fmt.Errorf("%s not set in URL query properly. Expected '%s', got %s", key, expected, actual)
 | 
											return nil, fmt.Errorf("%s not set in URL query properly. Expected '%s', got %s", key, expected, actual)
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				b, err := json.Marshal([]types.ImageDelete{
 | 
									b, err := json.Marshal([]types.ImageDeleteResponseItem{
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						Untagged: "image_id1",
 | 
											Untagged: "image_id1",
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,7 @@ import (
 | 
				
			||||||
	"github.com/docker/docker/api/types/container"
 | 
						"github.com/docker/docker/api/types/container"
 | 
				
			||||||
	"github.com/docker/docker/api/types/events"
 | 
						"github.com/docker/docker/api/types/events"
 | 
				
			||||||
	"github.com/docker/docker/api/types/filters"
 | 
						"github.com/docker/docker/api/types/filters"
 | 
				
			||||||
 | 
						"github.com/docker/docker/api/types/image"
 | 
				
			||||||
	"github.com/docker/docker/api/types/network"
 | 
						"github.com/docker/docker/api/types/network"
 | 
				
			||||||
	"github.com/docker/docker/api/types/registry"
 | 
						"github.com/docker/docker/api/types/registry"
 | 
				
			||||||
	"github.com/docker/docker/api/types/swarm"
 | 
						"github.com/docker/docker/api/types/swarm"
 | 
				
			||||||
| 
						 | 
					@ -37,7 +38,7 @@ type ContainerAPIClient interface {
 | 
				
			||||||
	ContainerAttach(ctx context.Context, container string, options types.ContainerAttachOptions) (types.HijackedResponse, error)
 | 
						ContainerAttach(ctx context.Context, container string, options types.ContainerAttachOptions) (types.HijackedResponse, error)
 | 
				
			||||||
	ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error)
 | 
						ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error)
 | 
				
			||||||
	ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (container.ContainerCreateCreatedBody, error)
 | 
						ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (container.ContainerCreateCreatedBody, error)
 | 
				
			||||||
	ContainerDiff(ctx context.Context, container string) ([]types.ContainerChange, error)
 | 
						ContainerDiff(ctx context.Context, container string) ([]container.ContainerChangeResponseItem, error)
 | 
				
			||||||
	ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error)
 | 
						ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error)
 | 
				
			||||||
	ContainerExecCreate(ctx context.Context, container string, config types.ExecConfig) (types.IDResponse, error)
 | 
						ContainerExecCreate(ctx context.Context, container string, config types.ExecConfig) (types.IDResponse, error)
 | 
				
			||||||
	ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error)
 | 
						ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error)
 | 
				
			||||||
| 
						 | 
					@ -58,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)
 | 
				
			||||||
| 
						 | 
					@ -71,14 +72,14 @@ type ContainerAPIClient interface {
 | 
				
			||||||
type ImageAPIClient interface {
 | 
					type ImageAPIClient interface {
 | 
				
			||||||
	ImageBuild(ctx context.Context, context io.Reader, options types.ImageBuildOptions) (types.ImageBuildResponse, error)
 | 
						ImageBuild(ctx context.Context, context io.Reader, options types.ImageBuildOptions) (types.ImageBuildResponse, error)
 | 
				
			||||||
	ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error)
 | 
						ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error)
 | 
				
			||||||
	ImageHistory(ctx context.Context, image string) ([]types.ImageHistory, error)
 | 
						ImageHistory(ctx context.Context, image string) ([]image.HistoryResponseItem, error)
 | 
				
			||||||
	ImageImport(ctx context.Context, source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error)
 | 
						ImageImport(ctx context.Context, source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error)
 | 
				
			||||||
	ImageInspectWithRaw(ctx context.Context, image string) (types.ImageInspect, []byte, error)
 | 
						ImageInspectWithRaw(ctx context.Context, image string) (types.ImageInspect, []byte, error)
 | 
				
			||||||
	ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error)
 | 
						ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error)
 | 
				
			||||||
	ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error)
 | 
						ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error)
 | 
				
			||||||
	ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error)
 | 
						ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error)
 | 
				
			||||||
	ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error)
 | 
						ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error)
 | 
				
			||||||
	ImageRemove(ctx context.Context, image string, options types.ImageRemoveOptions) ([]types.ImageDelete, error)
 | 
						ImageRemove(ctx context.Context, image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error)
 | 
				
			||||||
	ImageSearch(ctx context.Context, term string, options types.ImageSearchOptions) ([]registry.SearchResult, error)
 | 
						ImageSearch(ctx context.Context, term string, options types.ImageSearchOptions) ([]registry.SearchResult, error)
 | 
				
			||||||
	ImageSave(ctx context.Context, images []string) (io.ReadCloser, error)
 | 
						ImageSave(ctx context.Context, images []string) (io.ReadCloser, error)
 | 
				
			||||||
	ImageTag(ctx context.Context, image, ref string) error
 | 
						ImageTag(ctx context.Context, image, ref string) error
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,9 +61,9 @@ const (
 | 
				
			||||||
// FIXME: remove ImageDelete's dependency on Daemon, then move to the graph
 | 
					// FIXME: remove ImageDelete's dependency on Daemon, then move to the graph
 | 
				
			||||||
// package. This would require that we no longer need the daemon to determine
 | 
					// package. This would require that we no longer need the daemon to determine
 | 
				
			||||||
// whether images are being used by a stopped or running container.
 | 
					// whether images are being used by a stopped or running container.
 | 
				
			||||||
func (daemon *Daemon) ImageDelete(imageRef string, force, prune bool) ([]types.ImageDelete, error) {
 | 
					func (daemon *Daemon) ImageDelete(imageRef string, force, prune bool) ([]types.ImageDeleteResponseItem, error) {
 | 
				
			||||||
	start := time.Now()
 | 
						start := time.Now()
 | 
				
			||||||
	records := []types.ImageDelete{}
 | 
						records := []types.ImageDeleteResponseItem{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	imgID, err := daemon.GetImageID(imageRef)
 | 
						imgID, err := daemon.GetImageID(imageRef)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
| 
						 | 
					@ -99,7 +99,7 @@ func (daemon *Daemon) ImageDelete(imageRef string, force, prune bool) ([]types.I
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		untaggedRecord := types.ImageDelete{Untagged: parsedRef.String()}
 | 
							untaggedRecord := types.ImageDeleteResponseItem{Untagged: parsedRef.String()}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		daemon.LogImageEvent(imgID.String(), imgID.String(), "untag")
 | 
							daemon.LogImageEvent(imgID.String(), imgID.String(), "untag")
 | 
				
			||||||
		records = append(records, untaggedRecord)
 | 
							records = append(records, untaggedRecord)
 | 
				
			||||||
| 
						 | 
					@ -126,7 +126,7 @@ func (daemon *Daemon) ImageDelete(imageRef string, force, prune bool) ([]types.I
 | 
				
			||||||
							return records, err
 | 
												return records, err
 | 
				
			||||||
						}
 | 
											}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						untaggedRecord := types.ImageDelete{Untagged: repoRef.String()}
 | 
											untaggedRecord := types.ImageDeleteResponseItem{Untagged: repoRef.String()}
 | 
				
			||||||
						records = append(records, untaggedRecord)
 | 
											records = append(records, untaggedRecord)
 | 
				
			||||||
					} else {
 | 
										} else {
 | 
				
			||||||
						remainingRefs = append(remainingRefs, repoRef)
 | 
											remainingRefs = append(remainingRefs, repoRef)
 | 
				
			||||||
| 
						 | 
					@ -162,7 +162,7 @@ func (daemon *Daemon) ImageDelete(imageRef string, force, prune bool) ([]types.I
 | 
				
			||||||
					return nil, err
 | 
										return nil, err
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				untaggedRecord := types.ImageDelete{Untagged: parsedRef.String()}
 | 
									untaggedRecord := types.ImageDeleteResponseItem{Untagged: parsedRef.String()}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				daemon.LogImageEvent(imgID.String(), imgID.String(), "untag")
 | 
									daemon.LogImageEvent(imgID.String(), imgID.String(), "untag")
 | 
				
			||||||
				records = append(records, untaggedRecord)
 | 
									records = append(records, untaggedRecord)
 | 
				
			||||||
| 
						 | 
					@ -244,9 +244,9 @@ func (daemon *Daemon) removeImageRef(ref reference.Named) (reference.Named, erro
 | 
				
			||||||
// removeAllReferencesToImageID attempts to remove every reference to the given
 | 
					// removeAllReferencesToImageID attempts to remove every reference to the given
 | 
				
			||||||
// imgID from this daemon's store of repository tag/digest references. Returns
 | 
					// imgID from this daemon's store of repository tag/digest references. Returns
 | 
				
			||||||
// on the first encountered error. Removed references are logged to this
 | 
					// on the first encountered error. Removed references are logged to this
 | 
				
			||||||
// daemon's event service. An "Untagged" types.ImageDelete is added to the
 | 
					// daemon's event service. An "Untagged" types.ImageDeleteResponseItem is added to the
 | 
				
			||||||
// given list of records.
 | 
					// given list of records.
 | 
				
			||||||
func (daemon *Daemon) removeAllReferencesToImageID(imgID image.ID, records *[]types.ImageDelete) error {
 | 
					func (daemon *Daemon) removeAllReferencesToImageID(imgID image.ID, records *[]types.ImageDeleteResponseItem) error {
 | 
				
			||||||
	imageRefs := daemon.referenceStore.References(imgID.Digest())
 | 
						imageRefs := daemon.referenceStore.References(imgID.Digest())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, imageRef := range imageRefs {
 | 
						for _, imageRef := range imageRefs {
 | 
				
			||||||
| 
						 | 
					@ -255,7 +255,7 @@ func (daemon *Daemon) removeAllReferencesToImageID(imgID image.ID, records *[]ty
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		untaggedRecord := types.ImageDelete{Untagged: parsedRef.String()}
 | 
							untaggedRecord := types.ImageDeleteResponseItem{Untagged: parsedRef.String()}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		daemon.LogImageEvent(imgID.String(), imgID.String(), "untag")
 | 
							daemon.LogImageEvent(imgID.String(), imgID.String(), "untag")
 | 
				
			||||||
		*records = append(*records, untaggedRecord)
 | 
							*records = append(*records, untaggedRecord)
 | 
				
			||||||
| 
						 | 
					@ -295,7 +295,7 @@ func (idc *imageDeleteConflict) Error() string {
 | 
				
			||||||
// conflict is encountered, it will be returned immediately without deleting
 | 
					// conflict is encountered, it will be returned immediately without deleting
 | 
				
			||||||
// the image. If quiet is true, any encountered conflicts will be ignored and
 | 
					// the image. If quiet is true, any encountered conflicts will be ignored and
 | 
				
			||||||
// the function will return nil immediately without deleting the image.
 | 
					// the function will return nil immediately without deleting the image.
 | 
				
			||||||
func (daemon *Daemon) imageDeleteHelper(imgID image.ID, records *[]types.ImageDelete, force, prune, quiet bool) error {
 | 
					func (daemon *Daemon) imageDeleteHelper(imgID image.ID, records *[]types.ImageDeleteResponseItem, force, prune, quiet bool) error {
 | 
				
			||||||
	// First, determine if this image has any conflicts. Ignore soft conflicts
 | 
						// First, determine if this image has any conflicts. Ignore soft conflicts
 | 
				
			||||||
	// if force is true.
 | 
						// if force is true.
 | 
				
			||||||
	c := conflictHard
 | 
						c := conflictHard
 | 
				
			||||||
| 
						 | 
					@ -331,9 +331,9 @@ func (daemon *Daemon) imageDeleteHelper(imgID image.ID, records *[]types.ImageDe
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	daemon.LogImageEvent(imgID.String(), imgID.String(), "delete")
 | 
						daemon.LogImageEvent(imgID.String(), imgID.String(), "delete")
 | 
				
			||||||
	*records = append(*records, types.ImageDelete{Deleted: imgID.String()})
 | 
						*records = append(*records, types.ImageDeleteResponseItem{Deleted: imgID.String()})
 | 
				
			||||||
	for _, removedLayer := range removedLayers {
 | 
						for _, removedLayer := range removedLayers {
 | 
				
			||||||
		*records = append(*records, types.ImageDelete{Deleted: removedLayer.ChainID.String()})
 | 
							*records = append(*records, types.ImageDeleteResponseItem{Deleted: removedLayer.ChainID.String()})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if !prune || parent == "" {
 | 
						if !prune || parent == "" {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,21 +4,21 @@ import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/docker/docker/api/types"
 | 
						"github.com/docker/docker/api/types/image"
 | 
				
			||||||
	"github.com/docker/docker/layer"
 | 
						"github.com/docker/docker/layer"
 | 
				
			||||||
	"github.com/docker/docker/reference"
 | 
						"github.com/docker/docker/reference"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ImageHistory returns a slice of ImageHistory structures for the specified image
 | 
					// ImageHistory returns a slice of ImageHistory structures for the specified image
 | 
				
			||||||
// name by walking the image lineage.
 | 
					// name by walking the image lineage.
 | 
				
			||||||
func (daemon *Daemon) ImageHistory(name string) ([]*types.ImageHistory, error) {
 | 
					func (daemon *Daemon) ImageHistory(name string) ([]*image.HistoryResponseItem, error) {
 | 
				
			||||||
	start := time.Now()
 | 
						start := time.Now()
 | 
				
			||||||
	img, err := daemon.GetImage(name)
 | 
						img, err := daemon.GetImage(name)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	history := []*types.ImageHistory{}
 | 
						history := []*image.HistoryResponseItem{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	layerCounter := 0
 | 
						layerCounter := 0
 | 
				
			||||||
	rootFS := *img.RootFS
 | 
						rootFS := *img.RootFS
 | 
				
			||||||
| 
						 | 
					@ -46,7 +46,7 @@ func (daemon *Daemon) ImageHistory(name string) ([]*types.ImageHistory, error) {
 | 
				
			||||||
			layerCounter++
 | 
								layerCounter++
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		history = append([]*types.ImageHistory{{
 | 
							history = append([]*image.HistoryResponseItem{{
 | 
				
			||||||
			ID:        "<missing>",
 | 
								ID:        "<missing>",
 | 
				
			||||||
			Created:   h.Created.Unix(),
 | 
								Created:   h.Created.Unix(),
 | 
				
			||||||
			CreatedBy: h.CreatedBy,
 | 
								CreatedBy: h.CreatedBy,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -132,7 +132,7 @@ func (daemon *Daemon) ImagesPrune(pruneFilters filters.Args) (*types.ImagesPrune
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		deletedImages := []types.ImageDelete{}
 | 
							deletedImages := []types.ImageDeleteResponseItem{}
 | 
				
			||||||
		refs := daemon.referenceStore.References(dgst)
 | 
							refs := daemon.referenceStore.References(dgst)
 | 
				
			||||||
		if len(refs) > 0 {
 | 
							if len(refs) > 0 {
 | 
				
			||||||
			shouldDelete := !danglingOnly
 | 
								shouldDelete := !danglingOnly
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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) {
 | 
					func parsePSOutput(output []byte, pids []int) (*container.ContainerTopOKBody, error) {
 | 
				
			||||||
	procList := &types.ContainerProcessList{}
 | 
						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"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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 {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,20 +3,25 @@ set -eu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
swagger generate model -f api/swagger.yaml \
 | 
					swagger generate model -f api/swagger.yaml \
 | 
				
			||||||
    -t api -m types --skip-validator -C api/swagger-gen.yaml \
 | 
					    -t api -m types --skip-validator -C api/swagger-gen.yaml \
 | 
				
			||||||
    -n Volume \
 | 
					    -n ErrorResponse \
 | 
				
			||||||
    -n Port \
 | 
					    -n GraphDriverData \
 | 
				
			||||||
 | 
					    -n IdResponse \
 | 
				
			||||||
 | 
					    -n ImageDeleteResponseItem \
 | 
				
			||||||
    -n ImageSummary \
 | 
					    -n ImageSummary \
 | 
				
			||||||
    -n Plugin -n PluginDevice -n PluginMount -n PluginEnv -n PluginInterfaceType \
 | 
					    -n Plugin -n PluginDevice -n PluginMount -n PluginEnv -n PluginInterfaceType \
 | 
				
			||||||
    -n ErrorResponse \
 | 
					    -n Port \
 | 
				
			||||||
    -n IdResponse \
 | 
					    -n ServiceUpdateResponse \
 | 
				
			||||||
    -n ServiceUpdateResponse
 | 
					    -n Volume
 | 
				
			||||||
 | 
					
 | 
				
			||||||
swagger generate operation -f api/swagger.yaml \
 | 
					swagger generate operation -f api/swagger.yaml \
 | 
				
			||||||
    -t api -a types -m types -C api/swagger-gen.yaml \
 | 
					    -t api -a types -m types -C api/swagger-gen.yaml \
 | 
				
			||||||
    -T api/templates --skip-responses --skip-parameters --skip-validator \
 | 
					    -T api/templates --skip-responses --skip-parameters --skip-validator \
 | 
				
			||||||
    -n VolumesList \
 | 
					 | 
				
			||||||
    -n VolumesCreate \
 | 
					 | 
				
			||||||
    -n ContainerCreate \
 | 
					 | 
				
			||||||
    -n ContainerUpdate \
 | 
					 | 
				
			||||||
    -n Authenticate \
 | 
					    -n Authenticate \
 | 
				
			||||||
    -n ContainerWait
 | 
					    -n ContainerChanges \
 | 
				
			||||||
 | 
					    -n ContainerCreate \
 | 
				
			||||||
 | 
					    -n ContainerTop \
 | 
				
			||||||
 | 
					    -n ContainerUpdate \
 | 
				
			||||||
 | 
					    -n ContainerWait \
 | 
				
			||||||
 | 
					    -n ImageHistory \
 | 
				
			||||||
 | 
					    -n VolumesCreate \
 | 
				
			||||||
 | 
					    -n VolumesList
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@ import (
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/docker/docker/api/types"
 | 
						"github.com/docker/docker/api/types"
 | 
				
			||||||
 | 
						"github.com/docker/docker/api/types/image"
 | 
				
			||||||
	"github.com/docker/docker/integration-cli/checker"
 | 
						"github.com/docker/docker/integration-cli/checker"
 | 
				
			||||||
	"github.com/docker/docker/integration-cli/request"
 | 
						"github.com/docker/docker/integration-cli/request"
 | 
				
			||||||
	"github.com/go-check/check"
 | 
						"github.com/go-check/check"
 | 
				
			||||||
| 
						 | 
					@ -106,7 +107,7 @@ func (s *DockerSuite) TestAPIImagesHistory(c *check.C) {
 | 
				
			||||||
	c.Assert(err, checker.IsNil)
 | 
						c.Assert(err, checker.IsNil)
 | 
				
			||||||
	c.Assert(status, checker.Equals, http.StatusOK)
 | 
						c.Assert(status, checker.Equals, http.StatusOK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var historydata []types.ImageHistory
 | 
						var historydata []image.HistoryResponseItem
 | 
				
			||||||
	err = json.Unmarshal(body, &historydata)
 | 
						err = json.Unmarshal(body, &historydata)
 | 
				
			||||||
	c.Assert(err, checker.IsNil, check.Commentf("Error on unmarshal"))
 | 
						c.Assert(err, checker.IsNil, check.Commentf("Error on unmarshal"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue