summaryrefslogtreecommitdiff
path: root/pkg/api/handlers/libpod/swagger_spec.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2022-05-20 07:16:35 -0400
committerGitHub <noreply@github.com>2022-05-20 07:16:35 -0400
commit916d8231c52eb89fae9982c63a956388fca648c2 (patch)
tree335652b32332e57e092a1bbf80914517190f136e /pkg/api/handlers/libpod/swagger_spec.go
parent1916fe22a932183e0847e9f7b087f6ece4d7c48c (diff)
parent5b79cf15a0226dc3dad5053615ee652823376cd3 (diff)
downloadpodman-916d8231c52eb89fae9982c63a956388fca648c2.tar.gz
podman-916d8231c52eb89fae9982c63a956388fca648c2.tar.bz2
podman-916d8231c52eb89fae9982c63a956388fca648c2.zip
Merge pull request #14297 from jwhonce/wip/swagger
Swagger refactor/cleanup
Diffstat (limited to 'pkg/api/handlers/libpod/swagger_spec.go')
-rw-r--r--pkg/api/handlers/libpod/swagger_spec.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/pkg/api/handlers/libpod/swagger_spec.go b/pkg/api/handlers/libpod/swagger_spec.go
new file mode 100644
index 000000000..8eeb041d2
--- /dev/null
+++ b/pkg/api/handlers/libpod/swagger_spec.go
@@ -0,0 +1,29 @@
+package libpod
+
+import (
+ "net/http"
+ "os"
+
+ "github.com/containers/podman/v4/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"
+
+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 errors.Is(err, os.ErrNotExist) {
+ utils.InternalServerError(w, errors.Errorf("swagger spec %q does not exist", path))
+ return
+ }
+ utils.InternalServerError(w, err)
+ return
+ }
+ w.Header().Set("Content-Type", "text/yaml")
+ http.ServeFile(w, r, path)
+}