mirror of
https://github.com/containers/podman.git
synced 2025-06-03 20:33:20 +08:00
binding tests for volumes
add binding tests for volumes: inspect(get), create, remove, prune, and list implement filters ability for volumes Signed-off-by: Brent Baude <bbaude@redhat.com>
This commit is contained in:
@ -11,15 +11,42 @@ func (s *APIServer) registerVolumeHandlers(r *mux.Router) error {
|
||||
// swagger:operation POST /libpod/volumes/create volumes createVolume
|
||||
// ---
|
||||
// summary: Create a volume
|
||||
// parameters:
|
||||
// - in: body
|
||||
// name: create
|
||||
// description: attributes for creating a container
|
||||
// schema:
|
||||
// $ref: "#/definitions/VolumeCreate"
|
||||
// produces:
|
||||
// - application/json
|
||||
// responses:
|
||||
// '200':
|
||||
// description: tbd
|
||||
// '201':
|
||||
// $ref: "#/responses/VolumeCreateResponse"
|
||||
// '500':
|
||||
// "$ref": "#/responses/InternalError"
|
||||
r.Handle("/libpod/volumes/create", s.APIHandler(libpod.CreateVolume)).Methods(http.MethodPost)
|
||||
r.Handle("/libpod/volumes/json", s.APIHandler(libpod.ListVolumes)).Methods(http.MethodGet)
|
||||
r.Handle(VersionedPath("/libpod/volumes/create"), s.APIHandler(libpod.CreateVolume)).Methods(http.MethodPost)
|
||||
// swagger:operation POST /libpod/volumes/json volumes listVolumes
|
||||
// ---
|
||||
// summary: List volumes
|
||||
// description: Returns a list of networks
|
||||
// produces:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - in: query
|
||||
// name: filters
|
||||
// type: string
|
||||
// description: |
|
||||
// JSON encoded value of the filters (a map[string][]string) to process on the networks list. Available filters:
|
||||
// - driver=<volume-driver-name> Matches volumes based on their driver.
|
||||
// - label=<key> or label=<key>:<value> Matches volumes based on the presence of a label alone or a label and a value.
|
||||
// - name=<volume-name> Matches all of volume name.
|
||||
// - opt=<driver-option> Matches a storage driver options
|
||||
// responses:
|
||||
// '200':
|
||||
// "$ref": "#/responses/VolumeList"
|
||||
// '500':
|
||||
// "$ref": "#/responses/InternalError"
|
||||
r.Handle(VersionedPath("/libpod/volumes/json"), s.APIHandler(libpod.ListVolumes)).Methods(http.MethodGet)
|
||||
// swagger:operation POST /libpod/volumes/prune volumes pruneVolumes
|
||||
// ---
|
||||
// summary: Prune volumes
|
||||
@ -30,7 +57,7 @@ func (s *APIServer) registerVolumeHandlers(r *mux.Router) error {
|
||||
// description: no error
|
||||
// '500':
|
||||
// "$ref": "#/responses/InternalError"
|
||||
r.Handle("/libpod/volumes/prune", s.APIHandler(libpod.PruneVolumes)).Methods(http.MethodPost)
|
||||
r.Handle(VersionedPath("/libpod/volumes/prune"), s.APIHandler(libpod.PruneVolumes)).Methods(http.MethodPost)
|
||||
// swagger:operation GET /libpod/volumes/{name}/json volumes inspectVolume
|
||||
// ---
|
||||
// summary: Inspect volume
|
||||
@ -49,7 +76,7 @@ func (s *APIServer) registerVolumeHandlers(r *mux.Router) error {
|
||||
// "$ref": "#/responses/NoSuchVolume"
|
||||
// '500':
|
||||
// "$ref": "#/responses/InternalError"
|
||||
r.Handle("/libpod/volumes/{name}/json", s.APIHandler(libpod.InspectVolume)).Methods(http.MethodGet)
|
||||
r.Handle(VersionedPath("/libpod/volumes/{name}/json"), s.APIHandler(libpod.InspectVolume)).Methods(http.MethodGet)
|
||||
// swagger:operation DELETE /libpod/volumes/{name} volumes removeVolume
|
||||
// ---
|
||||
// summary: Remove volume
|
||||
@ -68,12 +95,12 @@ func (s *APIServer) registerVolumeHandlers(r *mux.Router) error {
|
||||
// responses:
|
||||
// 204:
|
||||
// description: no error
|
||||
// 400:
|
||||
// $ref: "#/responses/BadParamError"
|
||||
// 404:
|
||||
// $ref: "#/responses/NoSuchVolume"
|
||||
// 409:
|
||||
// description: Volume is in use and cannot be removed
|
||||
// 500:
|
||||
// $ref: "#/responses/InternalError"
|
||||
r.Handle("/libpod/volumes/{name}", s.APIHandler(libpod.RemoveVolume)).Methods(http.MethodDelete)
|
||||
r.Handle(VersionedPath("/libpod/volumes/{name}"), s.APIHandler(libpod.RemoveVolume)).Methods(http.MethodDelete)
|
||||
return nil
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"github.com/containers/libpod/libpod"
|
||||
"github.com/containers/libpod/pkg/api/handlers"
|
||||
"github.com/containers/libpod/pkg/api/handlers/utils"
|
||||
)
|
||||
@ -139,3 +140,19 @@ type ok struct {
|
||||
ok string
|
||||
}
|
||||
}
|
||||
|
||||
// Volume create response
|
||||
// swagger:response VolumeCreateResponse
|
||||
type swagVolumeCreateResponse struct {
|
||||
// in:body
|
||||
Body struct {
|
||||
libpod.VolumeConfig
|
||||
}
|
||||
}
|
||||
|
||||
// Volume list
|
||||
// swagger:response VolumeList
|
||||
type swagVolumeListResponse struct {
|
||||
// in:body
|
||||
Body []libpod.Volume
|
||||
}
|
||||
|
Reference in New Issue
Block a user