mirror of https://github.com/containers/podman.git
compat: accept tag in /images/create?fromSrc
Accept a tag in the compat api endpoint. For the fromImage param we already parse it but for fromSrc we did not. Fixes #18597 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
parent
a1201843fd
commit
ad8d0e57d7
|
@ -181,7 +181,8 @@ func CreateImageFromSrc(w http.ResponseWriter, r *http.Request) {
|
||||||
FromSrc string `schema:"fromSrc"`
|
FromSrc string `schema:"fromSrc"`
|
||||||
Message string `schema:"message"`
|
Message string `schema:"message"`
|
||||||
Platform string `schema:"platform"`
|
Platform string `schema:"platform"`
|
||||||
Repo string `shchema:"repo"`
|
Repo string `schema:"repo"`
|
||||||
|
Tag string `schema:"tag"`
|
||||||
}{
|
}{
|
||||||
// This is where you can override the golang default value for one of fields
|
// This is where you can override the golang default value for one of fields
|
||||||
}
|
}
|
||||||
|
@ -208,7 +209,7 @@ func CreateImageFromSrc(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
reference := query.Repo
|
reference := query.Repo
|
||||||
if query.Repo != "" {
|
if query.Repo != "" {
|
||||||
possiblyNormalizedName, err := utils.NormalizeToDockerHub(r, reference)
|
possiblyNormalizedName, err := utils.NormalizeToDockerHub(r, mergeNameAndTagOrDigest(reference, query.Tag))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
utils.Error(w, http.StatusInternalServerError, fmt.Errorf("normalizing image: %w", err))
|
utils.Error(w, http.StatusInternalServerError, fmt.Errorf("normalizing image: %w", err))
|
||||||
return
|
return
|
||||||
|
|
|
@ -66,6 +66,13 @@ podman untag docker.io/library/alpine:latest
|
||||||
|
|
||||||
t POST "images/create?fromImage=quay.io/libpod/alpine&tag=sha256:fa93b01658e3a5a1686dc3ae55f170d8de487006fb53a28efcd12ab0710a2e5f" 200
|
t POST "images/create?fromImage=quay.io/libpod/alpine&tag=sha256:fa93b01658e3a5a1686dc3ae55f170d8de487006fb53a28efcd12ab0710a2e5f" 200
|
||||||
|
|
||||||
|
# create image from source with tag
|
||||||
|
# Note the "-" is used to use an empty body and not "{}" which is the default.
|
||||||
|
t POST "images/create?fromSrc=-&repo=myimage&tag=mytag" - 200
|
||||||
|
t GET "images/myimage:mytag/json" 200 \
|
||||||
|
.Id~'^sha256:[0-9a-f]\{64\}$' \
|
||||||
|
.RepoTags[0]="docker.io/library/myimage:mytag"
|
||||||
|
|
||||||
# Display the image history
|
# Display the image history
|
||||||
t GET libpod/images/nonesuch/history 404
|
t GET libpod/images/nonesuch/history 404
|
||||||
|
|
||||||
|
|
|
@ -255,6 +255,10 @@ function t() {
|
||||||
|
|
||||||
for arg; do
|
for arg; do
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
|
# This is just some hack to avoid adding `-d {}` to curl for endpoints where we really need an empty body.
|
||||||
|
# --disable makes curl not lookup the curlrc file, it't should't effect the tests in any way.
|
||||||
|
-) curl_args+=(--disable);
|
||||||
|
shift;;
|
||||||
*=*) post_args+=("$arg");
|
*=*) post_args+=("$arg");
|
||||||
shift;;
|
shift;;
|
||||||
*.json) _add_curl_args $arg;
|
*.json) _add_curl_args $arg;
|
||||||
|
|
Loading…
Reference in New Issue