From cb61a2d858d7874c66bafcf6d17c17bb9d7849e8 Mon Sep 17 00:00:00 2001 From: maybe-sybr <58414429+maybe-sybr@users.noreply.github.com> Date: Wed, 24 Jun 2020 11:16:59 +1000 Subject: APIv2: Add docker compatible volume endpoints This change implements docker compatibile endpoint for interacting with volumes. The code is mostly lifted from the `libpod` API handlers but decodes and constructs data using types defined in the docker API package. Some notable support caveats with the current implementation: * we don't return the nullable `Status` or `UsageData` keys when returning volume information for inspect and create endpoints * we don't support filters when pruning * we return a fixed `0` for the `SpaceReclaimed` key when pruning since we have no insight into how much space was freed from runtime Signed-off-by: Matt Brindley <58414429+maybe-sybr@users.noreply.github.com> --- pkg/domain/entities/volumes.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'pkg/domain') diff --git a/pkg/domain/entities/volumes.go b/pkg/domain/entities/volumes.go index c99b39f2d..2311d1f25 100644 --- a/pkg/domain/entities/volumes.go +++ b/pkg/domain/entities/volumes.go @@ -2,6 +2,9 @@ package entities import ( "time" + + docker_api_types "github.com/docker/docker/api/types" + docker_api_types_volume "github.com/docker/docker/api/types/volume" ) // swagger:model VolumeCreate @@ -90,3 +93,35 @@ type VolumeListOptions struct { type VolumeListReport struct { VolumeConfigResponse } + +/* + * Docker API compatibility types + */ +// swagger:response DockerVolumeList +type SwagDockerVolumeListResponse struct { + // in:body + Body struct { + docker_api_types_volume.VolumeListOKBody + } +} + +// swagger:model DockerVolumeCreate +type DockerVolumeCreate docker_api_types_volume.VolumeCreateBody + +// This response definition is used for both the create and inspect endpoints +// swagger:response DockerVolumeInfoResponse +type SwagDockerVolumeInfoResponse struct { + // in:body + Body struct { + docker_api_types.Volume + } +} + +// Volume prune response +// swagger:response DockerVolumePruneResponse +type SwagDockerVolumePruneResponse struct { + // in:body + Body struct { + docker_api_types.VolumesPruneReport + } +} -- cgit v1.2.3-54-g00ecf