mirror of
https://github.com/containers/podman
synced 2024-10-19 08:44:11 +00:00
Cleanup bindings for image pull
Remove bindings that are not handled over the API. Leaving this one to not use image pull, since this would break progress handling. We should revisit this in the future. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
parent
9d59daa7cc
commit
59076888d9
|
@ -2,7 +2,6 @@ package images
|
|||
|
||||
import (
|
||||
"github.com/containers/buildah/imagebuildah"
|
||||
"github.com/containers/common/pkg/config"
|
||||
)
|
||||
|
||||
//go:generate go run ../generator/generator.go RemoveOptions
|
||||
|
@ -161,32 +160,25 @@ type PullOptions struct {
|
|||
// AllTags can be specified to pull all tags of an image. Note
|
||||
// that this only works if the image does not include a tag.
|
||||
AllTags *bool
|
||||
// Arch will overwrite the local architecture for image pulls.
|
||||
Arch *string
|
||||
// Authfile is the path to the authentication file. Ignored for remote
|
||||
// calls.
|
||||
Authfile *string
|
||||
// CertDir is the path to certificate directories. Ignored for remote
|
||||
// calls.
|
||||
CertDir *string
|
||||
// Username for authenticating against the registry.
|
||||
Username *string
|
||||
// Password for authenticating against the registry.
|
||||
Password *string
|
||||
// Arch will overwrite the local architecture for image pulls.
|
||||
Arch *string
|
||||
// OS will overwrite the local operating system (OS) for image
|
||||
// pulls.
|
||||
OS *string
|
||||
// Variant will overwrite the local variant for image pulls.
|
||||
Variant *string
|
||||
// Password for authenticating against the registry.
|
||||
Password *string
|
||||
// Quiet can be specified to suppress pull progress when pulling. Ignored
|
||||
// for remote calls.
|
||||
Quiet *bool
|
||||
// SignaturePolicy to use when pulling. Ignored for remote calls.
|
||||
SignaturePolicy *string
|
||||
// SkipTLSVerify to skip HTTPS and certificate verification.
|
||||
SkipTLSVerify *bool
|
||||
// PullPolicy whether to pull new image
|
||||
PullPolicy *config.PullPolicy
|
||||
// Username for authenticating against the registry.
|
||||
Username *string
|
||||
// Variant will overwrite the local variant for image pulls.
|
||||
Variant *string
|
||||
}
|
||||
|
||||
//BuildOptions are optional options for building images
|
||||
|
|
|
@ -6,7 +6,6 @@ import (
|
|||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/containers/common/pkg/config"
|
||||
jsoniter "github.com/json-iterator/go"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
@ -104,70 +103,6 @@ func (o *PullOptions) GetAllTags() bool {
|
|||
return *o.AllTags
|
||||
}
|
||||
|
||||
// WithAuthfile
|
||||
func (o *PullOptions) WithAuthfile(value string) *PullOptions {
|
||||
v := &value
|
||||
o.Authfile = v
|
||||
return o
|
||||
}
|
||||
|
||||
// GetAuthfile
|
||||
func (o *PullOptions) GetAuthfile() string {
|
||||
var authfile string
|
||||
if o.Authfile == nil {
|
||||
return authfile
|
||||
}
|
||||
return *o.Authfile
|
||||
}
|
||||
|
||||
// WithCertDir
|
||||
func (o *PullOptions) WithCertDir(value string) *PullOptions {
|
||||
v := &value
|
||||
o.CertDir = v
|
||||
return o
|
||||
}
|
||||
|
||||
// GetCertDir
|
||||
func (o *PullOptions) GetCertDir() string {
|
||||
var certDir string
|
||||
if o.CertDir == nil {
|
||||
return certDir
|
||||
}
|
||||
return *o.CertDir
|
||||
}
|
||||
|
||||
// WithUsername
|
||||
func (o *PullOptions) WithUsername(value string) *PullOptions {
|
||||
v := &value
|
||||
o.Username = v
|
||||
return o
|
||||
}
|
||||
|
||||
// GetUsername
|
||||
func (o *PullOptions) GetUsername() string {
|
||||
var username string
|
||||
if o.Username == nil {
|
||||
return username
|
||||
}
|
||||
return *o.Username
|
||||
}
|
||||
|
||||
// WithPassword
|
||||
func (o *PullOptions) WithPassword(value string) *PullOptions {
|
||||
v := &value
|
||||
o.Password = v
|
||||
return o
|
||||
}
|
||||
|
||||
// GetPassword
|
||||
func (o *PullOptions) GetPassword() string {
|
||||
var password string
|
||||
if o.Password == nil {
|
||||
return password
|
||||
}
|
||||
return *o.Password
|
||||
}
|
||||
|
||||
// WithArch
|
||||
func (o *PullOptions) WithArch(value string) *PullOptions {
|
||||
v := &value
|
||||
|
@ -184,6 +119,22 @@ func (o *PullOptions) GetArch() string {
|
|||
return *o.Arch
|
||||
}
|
||||
|
||||
// WithAuthfile
|
||||
func (o *PullOptions) WithAuthfile(value string) *PullOptions {
|
||||
v := &value
|
||||
o.Authfile = v
|
||||
return o
|
||||
}
|
||||
|
||||
// GetAuthfile
|
||||
func (o *PullOptions) GetAuthfile() string {
|
||||
var authfile string
|
||||
if o.Authfile == nil {
|
||||
return authfile
|
||||
}
|
||||
return *o.Authfile
|
||||
}
|
||||
|
||||
// WithOS
|
||||
func (o *PullOptions) WithOS(value string) *PullOptions {
|
||||
v := &value
|
||||
|
@ -200,20 +151,20 @@ func (o *PullOptions) GetOS() string {
|
|||
return *o.OS
|
||||
}
|
||||
|
||||
// WithVariant
|
||||
func (o *PullOptions) WithVariant(value string) *PullOptions {
|
||||
// WithPassword
|
||||
func (o *PullOptions) WithPassword(value string) *PullOptions {
|
||||
v := &value
|
||||
o.Variant = v
|
||||
o.Password = v
|
||||
return o
|
||||
}
|
||||
|
||||
// GetVariant
|
||||
func (o *PullOptions) GetVariant() string {
|
||||
var variant string
|
||||
if o.Variant == nil {
|
||||
return variant
|
||||
// GetPassword
|
||||
func (o *PullOptions) GetPassword() string {
|
||||
var password string
|
||||
if o.Password == nil {
|
||||
return password
|
||||
}
|
||||
return *o.Variant
|
||||
return *o.Password
|
||||
}
|
||||
|
||||
// WithQuiet
|
||||
|
@ -232,22 +183,6 @@ func (o *PullOptions) GetQuiet() bool {
|
|||
return *o.Quiet
|
||||
}
|
||||
|
||||
// WithSignaturePolicy
|
||||
func (o *PullOptions) WithSignaturePolicy(value string) *PullOptions {
|
||||
v := &value
|
||||
o.SignaturePolicy = v
|
||||
return o
|
||||
}
|
||||
|
||||
// GetSignaturePolicy
|
||||
func (o *PullOptions) GetSignaturePolicy() string {
|
||||
var signaturePolicy string
|
||||
if o.SignaturePolicy == nil {
|
||||
return signaturePolicy
|
||||
}
|
||||
return *o.SignaturePolicy
|
||||
}
|
||||
|
||||
// WithSkipTLSVerify
|
||||
func (o *PullOptions) WithSkipTLSVerify(value bool) *PullOptions {
|
||||
v := &value
|
||||
|
@ -264,18 +199,34 @@ func (o *PullOptions) GetSkipTLSVerify() bool {
|
|||
return *o.SkipTLSVerify
|
||||
}
|
||||
|
||||
// WithPullPolicy
|
||||
func (o *PullOptions) WithPullPolicy(value config.PullPolicy) *PullOptions {
|
||||
// WithUsername
|
||||
func (o *PullOptions) WithUsername(value string) *PullOptions {
|
||||
v := &value
|
||||
o.PullPolicy = v
|
||||
o.Username = v
|
||||
return o
|
||||
}
|
||||
|
||||
// GetPullPolicy
|
||||
func (o *PullOptions) GetPullPolicy() config.PullPolicy {
|
||||
var pullPolicy config.PullPolicy
|
||||
if o.PullPolicy == nil {
|
||||
return pullPolicy
|
||||
// GetUsername
|
||||
func (o *PullOptions) GetUsername() string {
|
||||
var username string
|
||||
if o.Username == nil {
|
||||
return username
|
||||
}
|
||||
return *o.PullPolicy
|
||||
return *o.Username
|
||||
}
|
||||
|
||||
// WithVariant
|
||||
func (o *PullOptions) WithVariant(value string) *PullOptions {
|
||||
v := &value
|
||||
o.Variant = v
|
||||
return o
|
||||
}
|
||||
|
||||
// GetVariant
|
||||
func (o *PullOptions) GetVariant() string {
|
||||
var variant string
|
||||
if o.Variant == nil {
|
||||
return variant
|
||||
}
|
||||
return *o.Variant
|
||||
}
|
||||
|
|
|
@ -106,8 +106,9 @@ func (ir *ImageEngine) Prune(ctx context.Context, opts entities.ImagePruneOption
|
|||
|
||||
func (ir *ImageEngine) Pull(ctx context.Context, rawImage string, opts entities.ImagePullOptions) (*entities.ImagePullReport, error) {
|
||||
options := new(images.PullOptions)
|
||||
options.WithAllTags(opts.AllTags).WithAuthfile(opts.Authfile).WithCertDir(opts.CertDir).WithArch(opts.Arch).WithOS(opts.OS)
|
||||
options.WithVariant(opts.Variant).WithPassword(opts.Password).WithPullPolicy(opts.PullPolicy)
|
||||
options.WithAllTags(opts.AllTags).WithAuthfile(opts.Authfile).WithArch(opts.Arch).WithOS(opts.OS)
|
||||
options.WithVariant(opts.Variant).WithPassword(opts.Password)
|
||||
options.WithQuiet(opts.Quiet).WithUsername(opts.Username)
|
||||
if s := opts.SkipTLSVerify; s != types.OptionalBoolUndefined {
|
||||
if s == types.OptionalBoolTrue {
|
||||
options.WithSkipTLSVerify(true)
|
||||
|
@ -115,7 +116,6 @@ func (ir *ImageEngine) Pull(ctx context.Context, rawImage string, opts entities.
|
|||
options.WithSkipTLSVerify(false)
|
||||
}
|
||||
}
|
||||
options.WithQuiet(opts.Quiet).WithSignaturePolicy(opts.SignaturePolicy).WithUsername(opts.Username)
|
||||
pulledImages, err := images.Pull(ir.ClientCtx, rawImage, options)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -522,4 +522,31 @@ var _ = Describe("Podman pull", func() {
|
|||
Expect(data[0].Os).To(Equal(runtime.GOOS))
|
||||
Expect(data[0].Architecture).To(Equal("arm64"))
|
||||
})
|
||||
|
||||
It("podman pull --arch", func() {
|
||||
session := podmanTest.Podman([]string{"pull", "--arch=bogus", ALPINE})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(125))
|
||||
expectedError := "no image found in manifest list for architecture bogus"
|
||||
Expect(session.ErrorToString()).To(ContainSubstring(expectedError))
|
||||
|
||||
session = podmanTest.Podman([]string{"pull", "--arch=arm64", "--os", "windows", ALPINE})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(125))
|
||||
expectedError = "no image found in manifest list for architecture"
|
||||
Expect(session.ErrorToString()).To(ContainSubstring(expectedError))
|
||||
|
||||
session = podmanTest.Podman([]string{"pull", "-q", "--arch=arm64", ALPINE})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
setup := podmanTest.Podman([]string{"image", "inspect", session.OutputToString()})
|
||||
setup.WaitWithDefaultTimeout()
|
||||
Expect(setup.ExitCode()).To(Equal(0))
|
||||
|
||||
data := setup.InspectImageJSON() // returns []inspect.ImageData
|
||||
Expect(len(data)).To(Equal(1))
|
||||
Expect(data[0].Os).To(Equal(runtime.GOOS))
|
||||
Expect(data[0].Architecture).To(Equal("arm64"))
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue