diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-03-18 21:26:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-18 21:26:52 +0100 |
commit | d66d54282022e5f26a5baa3eebf88d6300afff74 (patch) | |
tree | ad232e0f2c773c97007547f16bda521b3e6f810e /pkg/api/handlers/libpod/swagger.go | |
parent | c9c95a7e0b2ef87143c98766a20e04eb9fe896f1 (diff) | |
parent | 52c835053007c5991903e778b5dbf64a25aea0a4 (diff) | |
download | podman-d66d54282022e5f26a5baa3eebf88d6300afff74.tar.gz podman-d66d54282022e5f26a5baa3eebf88d6300afff74.tar.bz2 podman-d66d54282022e5f26a5baa3eebf88d6300afff74.zip |
Merge pull request #5544 from baude/apiv2serveswagger
serve swagger when present
Diffstat (limited to 'pkg/api/handlers/libpod/swagger.go')
-rw-r--r-- | pkg/api/handlers/libpod/swagger.go | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/pkg/api/handlers/libpod/swagger.go b/pkg/api/handlers/libpod/swagger.go index f6a26134b..149fa10dc 100644 --- a/pkg/api/handlers/libpod/swagger.go +++ b/pkg/api/handlers/libpod/swagger.go @@ -1,6 +1,16 @@ package libpod -import "github.com/containers/image/v5/manifest" +import ( + "net/http" + "os" + + "github.com/containers/image/v5/manifest" + "github.com/containers/libpod/pkg/api/handlers/utils" + "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 @@ -15,3 +25,20 @@ type swagInspectManifestResponse struct { // in:body Body manifest.List } + +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) +} |