Skip to content

Commit ccbe7e9

Browse files
Merge pull request #9829 from rhatdan/rmi
[NO TESTS NEEDED] Use same function podman-remote rmi as podman
2 parents 7e4b13b + eb82c48 commit ccbe7e9

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

pkg/api/handlers/compat/images_remove.go

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ import (
44
"net/http"
55

66
"github.com/containers/podman/v3/libpod"
7+
"github.com/containers/podman/v3/libpod/define"
78
"github.com/containers/podman/v3/pkg/api/handlers/utils"
9+
"github.com/containers/podman/v3/pkg/domain/entities"
10+
"github.com/containers/podman/v3/pkg/domain/infra/abi"
811
"github.com/gorilla/schema"
912
"github.com/pkg/errors"
1013
)
@@ -30,28 +33,32 @@ func RemoveImage(w http.ResponseWriter, r *http.Request) {
3033
}
3134
}
3235
name := utils.GetName(r)
33-
newImage, err := runtime.ImageRuntime().NewFromLocal(name)
34-
if err != nil {
35-
utils.ImageNotFound(w, name, errors.Wrapf(err, "failed to find image %s", name))
36-
return
36+
imageEngine := abi.ImageEngine{Libpod: runtime}
37+
38+
options := entities.ImageRemoveOptions{
39+
Force: query.Force,
3740
}
41+
report, rmerrors := imageEngine.Remove(r.Context(), []string{name}, options)
42+
if len(rmerrors) > 0 && rmerrors[0] != nil {
43+
err := rmerrors[0]
44+
if errors.Cause(err) == define.ErrNoSuchImage {
45+
utils.ImageNotFound(w, name, errors.Wrapf(err, "failed to find image %s", name))
46+
return
47+
}
3848

39-
results, err := runtime.RemoveImage(r.Context(), newImage, query.Force)
40-
if err != nil {
4149
utils.Error(w, "Something went wrong.", http.StatusInternalServerError, err)
4250
return
4351
}
44-
45-
response := make([]map[string]string, 0, len(results.Untagged)+1)
46-
deleted := make(map[string]string, 1)
47-
deleted["Deleted"] = results.Deleted
48-
response = append(response, deleted)
49-
50-
for _, u := range results.Untagged {
52+
response := make([]map[string]string, 0, len(report.Untagged)+1)
53+
for _, d := range report.Deleted {
54+
deleted := make(map[string]string, 1)
55+
deleted["Deleted"] = d
56+
response = append(response, deleted)
57+
}
58+
for _, u := range report.Untagged {
5159
untagged := make(map[string]string, 1)
5260
untagged["Untagged"] = u
5361
response = append(response, untagged)
5462
}
55-
5663
utils.WriteResponse(w, http.StatusOK, response)
5764
}

0 commit comments

Comments
 (0)