Merge pull request #9829 from rhatdan/rmi

[NO TESTS NEEDED] Use same function podman-remote rmi as podman
This commit is contained in:
OpenShift Merge Robot
2021-03-28 17:07:45 +00:00
committed by GitHub

View File

@ -4,7 +4,10 @@ import (
"net/http"
"github.com/containers/podman/v3/libpod"
"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/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
@ -30,28 +33,32 @@ func RemoveImage(w http.ResponseWriter, r *http.Request) {
}
}
name := utils.GetName(r)
newImage, err := runtime.ImageRuntime().NewFromLocal(name)
if err != nil {
imageEngine := abi.ImageEngine{Libpod: runtime}
options := entities.ImageRemoveOptions{
Force: query.Force,
}
report, rmerrors := imageEngine.Remove(r.Context(), []string{name}, options)
if len(rmerrors) > 0 && rmerrors[0] != nil {
err := rmerrors[0]
if errors.Cause(err) == define.ErrNoSuchImage {
utils.ImageNotFound(w, name, errors.Wrapf(err, "failed to find image %s", name))
return
}
results, err := runtime.RemoveImage(r.Context(), newImage, query.Force)
if err != nil {
utils.Error(w, "Something went wrong.", http.StatusInternalServerError, err)
return
}
response := make([]map[string]string, 0, len(results.Untagged)+1)
response := make([]map[string]string, 0, len(report.Untagged)+1)
for _, d := range report.Deleted {
deleted := make(map[string]string, 1)
deleted["Deleted"] = results.Deleted
deleted["Deleted"] = d
response = append(response, deleted)
for _, u := range results.Untagged {
}
for _, u := range report.Untagged {
untagged := make(map[string]string, 1)
untagged["Untagged"] = u
response = append(response, untagged)
}
utils.WriteResponse(w, http.StatusOK, response)
}