summaryrefslogtreecommitdiff
path: root/pkg/api
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2021-01-23 11:05:09 +0100
committerGitHub <noreply@github.com>2021-01-23 11:05:09 +0100
commit1305f7c47a4c324c3afd873a244fe2315249a25d (patch)
tree765fe7f70fafbd075bd110ce399225d45fc04597 /pkg/api
parent474ba4c3acfc48fecb88814ba48f38e4da15ecae (diff)
parent6e6a38b4168ed7a528614f6499783243a8668395 (diff)
downloadpodman-1305f7c47a4c324c3afd873a244fe2315249a25d.tar.gz
podman-1305f7c47a4c324c3afd873a244fe2315249a25d.tar.bz2
podman-1305f7c47a4c324c3afd873a244fe2315249a25d.zip
Merge pull request #9067 from Luap99/podman-manifest-exists
podman manifest exists
Diffstat (limited to 'pkg/api')
-rw-r--r--pkg/api/handlers/libpod/manifests.go18
-rw-r--r--pkg/api/server/register_manifest.go20
2 files changed, 38 insertions, 0 deletions
diff --git a/pkg/api/handlers/libpod/manifests.go b/pkg/api/handlers/libpod/manifests.go
index dce861f6f..35221ecf1 100644
--- a/pkg/api/handlers/libpod/manifests.go
+++ b/pkg/api/handlers/libpod/manifests.go
@@ -48,6 +48,24 @@ func ManifestCreate(w http.ResponseWriter, r *http.Request) {
utils.WriteResponse(w, http.StatusOK, handlers.IDResponse{ID: manID})
}
+// ExistsManifest check if a manifest list exists
+func ExistsManifest(w http.ResponseWriter, r *http.Request) {
+ runtime := r.Context().Value("runtime").(*libpod.Runtime)
+ name := utils.GetName(r)
+
+ ic := abi.ImageEngine{Libpod: runtime}
+ report, err := ic.ManifestExists(r.Context(), name)
+ if err != nil {
+ utils.Error(w, "Something went wrong.", http.StatusInternalServerError, err)
+ return
+ }
+ if !report.Value {
+ utils.Error(w, "manifest not found", http.StatusNotFound, errors.New("manifest not found"))
+ return
+ }
+ utils.WriteResponse(w, http.StatusNoContent, "")
+}
+
func ManifestInspect(w http.ResponseWriter, r *http.Request) {
runtime := r.Context().Value("runtime").(*libpod.Runtime)
name := utils.GetName(r)
diff --git a/pkg/api/server/register_manifest.go b/pkg/api/server/register_manifest.go
index 5e7d94538..eefcc396e 100644
--- a/pkg/api/server/register_manifest.go
+++ b/pkg/api/server/register_manifest.go
@@ -38,6 +38,26 @@ func (s *APIServer) registerManifestHandlers(r *mux.Router) error {
// 500:
// $ref: "#/responses/InternalError"
r.Handle(VersionedPath("/libpod/manifests/create"), s.APIHandler(libpod.ManifestCreate)).Methods(http.MethodPost)
+ // swagger:operation GET /libpod/manifests/{name}/exists manifests Exists
+ // ---
+ // summary: Exists
+ // description: Check if manifest list exists
+ // parameters:
+ // - in: path
+ // name: name
+ // type: string
+ // required: true
+ // description: the name of the manifest list
+ // produces:
+ // - application/json
+ // responses:
+ // 204:
+ // description: manifest list exists
+ // 404:
+ // $ref: '#/responses/NoSuchManifest'
+ // 500:
+ // $ref: '#/responses/InternalError'
+ r.Handle(VersionedPath("/libpod/manifests/{name}/exists"), s.APIHandler(libpod.ExistsManifest)).Methods(http.MethodGet)
// swagger:operation GET /libpod/manifests/{name:.*}/json manifests Inspect
// ---
// summary: Inspect