mirror of
https://github.com/containers/podman.git
synced 2025-10-18 19:53:58 +08:00

Prior to this commit `artifact remove --all` was not supported on remote clients. This patch adds a new artifact API endpoint `artifact/remove` which can either take a list of artifacts to remove or remove all artifacts by setting all=true. This patch removes the temporary warning message in the tunnel interface implementation of ArtifactRm if `--all` was passed on the command line and uses the new `artifact/remove` endpoint. This patch also updates the `artifact remove` command both remote and local to accept a list of artifacts to remove rather than limiting to just one. Signed-off-by: Lewis Roy <lewis@redhat.com>
41 lines
954 B
Go
41 lines
954 B
Go
package artifacts
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"github.com/containers/podman/v5/pkg/bindings"
|
|
"github.com/containers/podman/v5/pkg/domain/entities"
|
|
)
|
|
|
|
// Remove removes an artifact from local storage.
|
|
// TODO (6.0): nameOrID parameter should be removed
|
|
func Remove(ctx context.Context, nameOrID string, options *RemoveOptions) (*entities.ArtifactRemoveReport, error) {
|
|
conn, err := bindings.GetClient(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if nameOrID != "" {
|
|
options.Artifacts = append(options.Artifacts, nameOrID)
|
|
}
|
|
|
|
params, err := options.ToParams()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response, err := conn.DoRequest(ctx, nil, http.MethodDelete, "/artifacts/remove", params, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer response.Body.Close()
|
|
|
|
var artifactRemoveReport entities.ArtifactRemoveReport
|
|
if err := response.Process(&artifactRemoveReport); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &artifactRemoveReport, nil
|
|
}
|