mirror of
https://github.com/containers/podman.git
synced 2025-09-10 12:32:21 +08:00

The api doc used wrong response examples for both the compat and libpod network prune endpoints. Change the doc so that it matches the actual return values. Also fix the endpoints to return an empty array instead of null when no networks are removed. [NO TESTS NEEDED] Fixes: #10564 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
145 lines
2.9 KiB
Go
145 lines
2.9 KiB
Go
package libpod
|
|
|
|
import (
|
|
"net/http"
|
|
"os"
|
|
|
|
"github.com/containers/image/v5/manifest"
|
|
"github.com/containers/podman/v3/libpod/define"
|
|
"github.com/containers/podman/v3/pkg/api/handlers/utils"
|
|
"github.com/containers/podman/v3/pkg/domain/entities"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
// DefaultPodmanSwaggerSpec provides the default path to the podman swagger spec file
|
|
const DefaultPodmanSwaggerSpec = "/usr/share/containers/podman/swagger.yaml"
|
|
|
|
// List Containers
|
|
// swagger:response ListContainers
|
|
type swagInspectPodResponse struct {
|
|
// in:body
|
|
Body []entities.ListContainer
|
|
}
|
|
|
|
// Inspect Manifest
|
|
// swagger:response InspectManifest
|
|
type swagInspectManifestResponse struct {
|
|
// in:body
|
|
Body manifest.Schema2List
|
|
}
|
|
|
|
// Kill Pod
|
|
// swagger:response PodKillReport
|
|
type swagKillPodResponse struct {
|
|
// in:body
|
|
Body entities.PodKillReport
|
|
}
|
|
|
|
// Pause pod
|
|
// swagger:response PodPauseReport
|
|
type swagPausePodResponse struct {
|
|
// in:body
|
|
Body entities.PodPauseReport
|
|
}
|
|
|
|
// Unpause pod
|
|
// swagger:response PodUnpauseReport
|
|
type swagUnpausePodResponse struct {
|
|
// in:body
|
|
Body entities.PodUnpauseReport
|
|
}
|
|
|
|
// Stop pod
|
|
// swagger:response PodStopReport
|
|
type swagStopPodResponse struct {
|
|
// in:body
|
|
Body entities.PodStopReport
|
|
}
|
|
|
|
// Restart pod
|
|
// swagger:response PodRestartReport
|
|
type swagRestartPodResponse struct {
|
|
// in:body
|
|
Body entities.PodRestartReport
|
|
}
|
|
|
|
// Start pod
|
|
// swagger:response PodStartReport
|
|
type swagStartPodResponse struct {
|
|
// in:body
|
|
Body entities.PodStartReport
|
|
}
|
|
|
|
// Prune pod
|
|
// swagger:response PodPruneReport
|
|
type swagPrunePodResponse struct {
|
|
// in:body
|
|
Body entities.PodPruneReport
|
|
}
|
|
|
|
// Rm pod
|
|
// swagger:response PodRmReport
|
|
type swagRmPodResponse struct {
|
|
// in:body
|
|
Body entities.PodRmReport
|
|
}
|
|
|
|
// Info
|
|
// swagger:response InfoResponse
|
|
type swagInfoResponse struct {
|
|
// in:body
|
|
Body define.Info
|
|
}
|
|
|
|
// Network rm
|
|
// swagger:response NetworkRmReport
|
|
type swagNetworkRmReport struct {
|
|
// in:body
|
|
Body []entities.NetworkRmReport
|
|
}
|
|
|
|
// Network inspect
|
|
// swagger:response NetworkInspectReport
|
|
type swagNetworkInspectReport struct {
|
|
// in:body
|
|
Body entities.NetworkInspectReport
|
|
}
|
|
|
|
// Network list
|
|
// swagger:response NetworkListReport
|
|
type swagNetworkListReport struct {
|
|
// in:body
|
|
Body []entities.NetworkListReport
|
|
}
|
|
|
|
// Network create
|
|
// swagger:response NetworkCreateReport
|
|
type swagNetworkCreateReport struct {
|
|
// in:body
|
|
Body entities.NetworkCreateReport
|
|
}
|
|
|
|
// Network prune
|
|
// swagger:response NetworkPruneResponse
|
|
type swagNetworkPruneResponse struct {
|
|
// in:body
|
|
Body []entities.NetworkPruneReport
|
|
}
|
|
|
|
func ServeSwagger(w http.ResponseWriter, r *http.Request) {
|
|
path := DefaultPodmanSwaggerSpec
|
|
if p, found := os.LookupEnv("PODMAN_SWAGGER_SPEC"); found {
|
|
path = p
|
|
}
|
|
if _, err := os.Stat(path); err != nil {
|
|
if os.IsNotExist(err) {
|
|
utils.InternalServerError(w, errors.Errorf("file %q does not exist", path))
|
|
return
|
|
}
|
|
utils.InternalServerError(w, err)
|
|
return
|
|
}
|
|
w.Header().Set("Content-Type", "text/yaml")
|
|
http.ServeFile(w, r, path)
|
|
}
|