Skip to content

Commit

Permalink
Merge pull request #15491 from marshall-lee/bindings-schema-ignore
Browse files Browse the repository at this point in the history
Mark some of the option fields as ignored in pkg/bindings
  • Loading branch information
openshift-merge-robot authored Aug 31, 2022
2 parents ac7f4eb + cfdca82 commit 7503c55
Show file tree
Hide file tree
Showing 10 changed files with 90 additions and 22 deletions.
4 changes: 2 additions & 2 deletions pkg/bindings/images/images.go
Original file line number Diff line number Diff line change
Expand Up @@ -282,9 +282,9 @@ func Search(ctx context.Context, term string, options *SearchOptions) ([]entitie
}
params.Set("term", term)

// Note: we have to verify if skipped is false.
// SkipTLSVerify is special. It's not being serialized by ToParams()
// because we need to flip the boolean.
if options.SkipTLSVerify != nil {
params.Del("SkipTLSVerify")
params.Set("tlsVerify", strconv.FormatBool(!options.GetSkipTLSVerify()))
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/bindings/images/pull.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ func Pull(ctx context.Context, rawImage string, options *PullOptions) ([]string,
}
params.Set("reference", rawImage)

// SkipTLSVerify is special. It's not being serialized by ToParams()
// because we need to flip the boolean.
if options.SkipTLSVerify != nil {
params.Del("SkipTLSVerify")
// Note: we have to verify if skipped is false.
params.Set("tlsVerify", strconv.FormatBool(!options.GetSkipTLSVerify()))
}

Expand Down
5 changes: 2 additions & 3 deletions pkg/bindings/images/push.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,9 @@ func Push(ctx context.Context, source string, destination string, options *PushO
if err != nil {
return err
}
// SkipTLSVerify is special. We need to delete the param added by
// toparams and change the key and flip the bool
// SkipTLSVerify is special. It's not being serialized by ToParams()
// because we need to flip the boolean.
if options.SkipTLSVerify != nil {
params.Del("SkipTLSVerify")
params.Set("tlsVerify", strconv.FormatBool(!options.GetSkipTLSVerify()))
}
params.Set("destination", destination)
Expand Down
10 changes: 5 additions & 5 deletions pkg/bindings/images/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,9 @@ type PushOptions struct {
// ProgressWriter is a writer where push progress are sent.
// Since API handler for image push is quiet by default, WithQuiet(false) is necessary for
// the writer to receive progress messages.
ProgressWriter *io.Writer
ProgressWriter *io.Writer `schema:"-"`
// SkipTLSVerify to skip HTTPS and certificate verification.
SkipTLSVerify *bool
SkipTLSVerify *bool `schema:"-"`
// RemoveSignatures Discard any pre-existing signatures in the image.
RemoveSignatures *bool
// Username for authenticating against the registry.
Expand All @@ -158,7 +158,7 @@ type SearchOptions struct {
// Limit the number of results.
Limit *int
// SkipTLSVerify to skip HTTPS and certificate verification.
SkipTLSVerify *bool
SkipTLSVerify *bool `schema:"-"`
// ListTags search the available tags of the repository
ListTags *bool
}
Expand All @@ -183,12 +183,12 @@ type PullOptions struct {
// Password for authenticating against the registry.
Password *string
// ProgressWriter is a writer where pull progress are sent.
ProgressWriter *io.Writer
ProgressWriter *io.Writer `schema:"-"`
// Quiet can be specified to suppress pull progress when pulling. Ignored
// for remote calls.
Quiet *bool
// SkipTLSVerify to skip HTTPS and certificate verification.
SkipTLSVerify *bool
SkipTLSVerify *bool `schema:"-"`
// Username for authenticating against the registry.
Username *string
// Variant will overwrite the local variant for image pulls.
Expand Down
3 changes: 3 additions & 0 deletions pkg/bindings/internal/util/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ func ToParams(o interface{}) (url.Values, error) {
}
paramName := fieldName
if pn, ok := sType.Field(i).Tag.Lookup("schema"); ok {
if pn == "-" {
continue
}
paramName = pn
}
switch {
Expand Down
4 changes: 3 additions & 1 deletion pkg/bindings/kube/kube.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,10 @@ func PlayWithBody(ctx context.Context, body io.Reader, options *PlayOptions) (*e
if err != nil {
return nil, err
}
// SkipTLSVerify is special. It's not being serialized by ToParams()
// because we need to flip the boolean.
if options.SkipTLSVerify != nil {
params.Set("tlsVerify", strconv.FormatBool(options.GetSkipTLSVerify()))
params.Set("tlsVerify", strconv.FormatBool(!options.GetSkipTLSVerify()))
}
if options.Start != nil {
params.Set("start", strconv.FormatBool(options.GetStart()))
Expand Down
2 changes: 1 addition & 1 deletion pkg/bindings/kube/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ type PlayOptions struct {
SignaturePolicy *string
// SkipTLSVerify - skip https and certificate validation when
// contacting container registries.
SkipTLSVerify *bool
SkipTLSVerify *bool `schema:"-"`
// SeccompProfileRoot - path to a directory containing seccomp
// profiles.
SeccompProfileRoot *string
Expand Down
10 changes: 4 additions & 6 deletions pkg/bindings/manifests/manifests.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,10 +165,9 @@ func Push(ctx context.Context, name, destination string, options *images.PushOpt
if err != nil {
return "", err
}
// SkipTLSVerify is special. We need to delete the param added by
// ToParams() and change the key and flip the bool
// SkipTLSVerify is special. It's not being serialized by ToParams()
// because we need to flip the boolean.
if options.SkipTLSVerify != nil {
params.Del("SkipTLSVerify")
params.Set("tlsVerify", strconv.FormatBool(!options.GetSkipTLSVerify()))
}

Expand Down Expand Up @@ -246,10 +245,9 @@ func Modify(ctx context.Context, name string, images []string, options *ModifyOp
if err != nil {
return "", err
}
// SkipTLSVerify is special. We need to delete the param added by
// ToParams() and change the key and flip the bool
// SkipTLSVerify is special. It's not being serialized by ToParams()
// because we need to flip the boolean.
if options.SkipTLSVerify != nil {
params.Del("SkipTLSVerify")
params.Set("tlsVerify", strconv.FormatBool(!options.GetSkipTLSVerify()))
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/bindings/manifests/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ type AddOptions struct {
Authfile *string
Password *string
Username *string
SkipTLSVerify *bool
SkipTLSVerify *bool `schema:"-"`
}

//go:generate go run ../generator/generator.go RemoveOptions
Expand Down Expand Up @@ -60,5 +60,5 @@ type ModifyOptions struct {
Authfile *string
Password *string
Username *string
SkipTLSVerify *bool
SkipTLSVerify *bool `schema:"-"`
}
66 changes: 66 additions & 0 deletions pkg/bindings/test/types_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package bindings_test

import (
"bytes"

"github.com/containers/podman/v4/pkg/bindings/images"
"github.com/containers/podman/v4/pkg/bindings/kube"
"github.com/containers/podman/v4/pkg/bindings/manifests"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)

var _ = Describe("Binding types", func() {
It("serialize image pull options", func() {
var writer bytes.Buffer
opts := new(images.PullOptions).WithOS("foo").WithProgressWriter(&writer).WithSkipTLSVerify(true)
params, err := opts.ToParams()
Expect(err).ToNot(HaveOccurred())
Expect(params.Get("os")).To(Equal("foo"))
Expect(params.Has("progresswriter")).To(BeFalse())
Expect(params.Has("skiptlsverify")).To(BeFalse())
})

It("serialize image push options", func() {
var writer bytes.Buffer
opts := new(images.PushOptions).WithAll(true).WithProgressWriter(&writer).WithSkipTLSVerify(true)
params, err := opts.ToParams()
Expect(err).ToNot(HaveOccurred())
Expect(params.Get("all")).To(Equal("true"))
Expect(params.Has("progresswriter")).To(BeFalse())
Expect(params.Has("skiptlsverify")).To(BeFalse())
})

It("serialize image search options", func() {
opts := new(images.SearchOptions).WithLimit(123).WithSkipTLSVerify(true)
params, err := opts.ToParams()
Expect(err).ToNot(HaveOccurred())
Expect(params.Get("limit")).To(Equal("123"))
Expect(params.Has("skiptlsverify")).To(BeFalse())
})

It("serialize manifest modify options", func() {
opts := new(manifests.ModifyOptions).WithOS("foo").WithSkipTLSVerify(true)
params, err := opts.ToParams()
Expect(err).ToNot(HaveOccurred())
Expect(params.Get("os")).To(Equal("foo"))
Expect(params.Has("skiptlsverify")).To(BeFalse())
})

It("serialize manifest add options", func() {
opts := new(manifests.AddOptions).WithAll(true).WithOS("foo").WithSkipTLSVerify(true)
params, err := opts.ToParams()
Expect(err).ToNot(HaveOccurred())
Expect(params.Get("all")).To(Equal("true"))
Expect(params.Get("os")).To(Equal("foo"))
Expect(params.Has("skiptlsverify")).To(BeFalse())
})

It("serialize kube play options", func() {
opts := new(kube.PlayOptions).WithQuiet(true).WithSkipTLSVerify(true)
params, err := opts.ToParams()
Expect(err).ToNot(HaveOccurred())
Expect(params.Get("quiet")).To(Equal("true"))
Expect(params.Has("skiptlsverify")).To(BeFalse())
})
})

0 comments on commit 7503c55

Please sign in to comment.