240 lines
7.0 KiB
Go
240 lines
7.0 KiB
Go
package server
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/containers/libpod/pkg/api/handlers/libpod"
|
|
"github.com/gorilla/mux"
|
|
)
|
|
|
|
func (s *APIServer) registerPodsHandlers(r *mux.Router) error {
|
|
// swagger:operation GET /libpod/pods/json pods ListPods
|
|
// ---
|
|
// summary: List pods
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: query
|
|
// name: filters
|
|
// descriptions: needs description and plumbing for filters
|
|
// responses:
|
|
// '200':
|
|
// properties:
|
|
// items:
|
|
// $ref: "#/responses/ListPodsResponse"
|
|
// type: array
|
|
// '400':
|
|
// $ref: "#/responses/BadParamError"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/json"), APIHandler(s.Context, libpod.Pods)).Methods(http.MethodGet)
|
|
r.Handle(VersionedPath("/libpod/pods/create"), APIHandler(s.Context, libpod.PodCreate)).Methods(http.MethodPost)
|
|
// swagger:operation POST /libpod/pods/prune pods PrunePods
|
|
// ---
|
|
// summary: Prune unused pods
|
|
// parameters:
|
|
// - in: query
|
|
// name: force
|
|
// description: force delete
|
|
// type: bool
|
|
// default: false
|
|
// produces:
|
|
// - application/json
|
|
// responses:
|
|
// '204':
|
|
// description: no error
|
|
// '400':
|
|
// $ref: "#/responses/BadParamError"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/prune"), APIHandler(s.Context, libpod.PodPrune)).Methods(http.MethodPost)
|
|
// swagger:operation DELETE /libpod/pods/{nameOrID} pods removePod
|
|
// ---
|
|
// summary: Remove pod
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: path
|
|
// name: nameOrID
|
|
// required: true
|
|
// description: the name or ID of the pod
|
|
// - in: query
|
|
// name: force
|
|
// type: bool
|
|
// description: force delete
|
|
// responses:
|
|
// '204':
|
|
// description: no error
|
|
// '400':
|
|
// $ref: "#/responses/BadParamError"
|
|
// '404':
|
|
// $ref: "#/responses/NoSuchPod"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/{name:..*}"), APIHandler(s.Context, libpod.PodDelete)).Methods(http.MethodDelete)
|
|
// swagger:operation GET /libpod/pods/{nameOrID}/json pods inspectPod
|
|
// ---
|
|
// summary: Inspect pod
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: path
|
|
// name: nameOrID
|
|
// required: true
|
|
// description: the name or ID of the pod
|
|
// responses:
|
|
// '200':
|
|
// $ref: "#/responses/InspectPodResponse"
|
|
// '404':
|
|
// $ref: "#/responses/NoSuchPod"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/{name:..*}/json"), APIHandler(s.Context, libpod.PodInspect)).Methods(http.MethodGet)
|
|
// swagger:operation GET /libpod/pods/{nameOrID}/exists pods podExists
|
|
// ---
|
|
// summary: Pod exists
|
|
// description: Check if a pod exists by name or ID
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: path
|
|
// name: nameOrID
|
|
// required: true
|
|
// description: the name or ID of the pod
|
|
// responses:
|
|
// '204':
|
|
// description: pod exists
|
|
// '404':
|
|
// $ref: "#/responses/NoSuchPod"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/{name:..*}/exists"), APIHandler(s.Context, libpod.PodExists)).Methods(http.MethodGet)
|
|
// swagger:operation POST /libpod/pods/{nameOrID}/kill pods killPod
|
|
// ---
|
|
// summary: Kill a pod
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: path
|
|
// name: nameOrID
|
|
// required: true
|
|
// description: the name or ID of the pod
|
|
// - in: query
|
|
// name: signal
|
|
// type: int
|
|
// description: signal to be sent to pod
|
|
// responses:
|
|
// '204':
|
|
// description: no error
|
|
// '400':
|
|
// $ref: "#/responses/BadParamError"
|
|
// '404':
|
|
// $ref: "#/responses/NoSuchPod"
|
|
// '409':
|
|
// $ref: "#/responses/ConflictError"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/{name:..*}/kill"), APIHandler(s.Context, libpod.PodKill)).Methods(http.MethodPost)
|
|
// swagger:operation POST /libpod/pods/{nameOrID}/pause pods pausePod
|
|
// ---
|
|
// summary: Pause a pod
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: path
|
|
// name: nameOrID
|
|
// required: true
|
|
// description: the name or ID of the pod
|
|
// responses:
|
|
// '204':
|
|
// description: no error
|
|
// '404':
|
|
// $ref: "#/responses/NoSuchPod"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/{name:..*}/pause"), APIHandler(s.Context, libpod.PodPause)).Methods(http.MethodPost)
|
|
// swagger:operation POST /libpod/pods/{nameOrID}/restart pods restartPod
|
|
// ---
|
|
// summary: Restart a pod
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: path
|
|
// name: nameOrID
|
|
// required: true
|
|
// description: the name or ID of the pod
|
|
// responses:
|
|
// '204':
|
|
// description: no error
|
|
// '404':
|
|
// $ref: "#/responses/NoSuchPod"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/{name:..*}/restart"), APIHandler(s.Context, libpod.PodRestart)).Methods(http.MethodPost)
|
|
// swagger:operation POST /libpod/pods/{nameOrID}/start pods startPod
|
|
// ---
|
|
// summary: Start a pod
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: path
|
|
// name: nameOrID
|
|
// required: true
|
|
// description: the name or ID of the pod
|
|
// responses:
|
|
// '204':
|
|
// description: no error
|
|
// '304':
|
|
// $ref: "#/responses/PodAlreadyStartedError"
|
|
// '404':
|
|
// $ref: "#/responses/NoSuchPod"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/{name:..*}/start"), APIHandler(s.Context, libpod.PodStart)).Methods(http.MethodPost)
|
|
// swagger:operation POST /libpod/pods/{nameOrID}/stop pods stopPod
|
|
// ---
|
|
// summary: Stop a pod
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: path
|
|
// name: nameOrID
|
|
// required: true
|
|
// description: the name or ID of the pod
|
|
// - in: query
|
|
// name: t
|
|
// type: int
|
|
// description: timeout
|
|
// responses:
|
|
// '204':
|
|
// description: no error
|
|
// '304':
|
|
// $ref: "#/responses/PodAlreadyStoppedError"
|
|
// '400':
|
|
// $ref: "#/responses/BadParamError"
|
|
// '404':
|
|
// $ref: "#/responses/NoSuchPod"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/{name:..*}/stop"), APIHandler(s.Context, libpod.PodStop)).Methods(http.MethodPost)
|
|
// swagger:operation POST /libpod/pods/{nameOrID}/unpause pods unpausePod
|
|
// ---
|
|
// summary: Unpause a pod
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - in: path
|
|
// name: nameOrID
|
|
// required: true
|
|
// description: the name or ID of the pod
|
|
// responses:
|
|
// '204':
|
|
// description: no error
|
|
// '404':
|
|
// $ref: "#/responses/NoSuchPod"
|
|
// '500':
|
|
// $ref: "#/responses/InternalError"
|
|
r.Handle(VersionedPath("/libpod/pods/{name:..*}/unpause"), APIHandler(s.Context, libpod.PodUnpause)).Methods(http.MethodPost)
|
|
return nil
|
|
}
|