diff --git a/cmd/gen-manifests/main.go b/cmd/gen-manifests/main.go index a3aa752dd..d8e0bf3b7 100644 --- a/cmd/gen-manifests/main.go +++ b/cmd/gen-manifests/main.go @@ -248,7 +248,7 @@ func resolveContainers(containers []blueprint.Container, archName string) ([]con resolver := container.NewResolver(archName) for _, c := range containers { - resolver.Add(c.Source, c.Name, c.TLSVerify) + resolver.Add(container.SourceSpec(c)) } return resolver.Finish() diff --git a/cmd/osbuild-pipeline/main.go b/cmd/osbuild-pipeline/main.go index db7caee62..20ba526b8 100644 --- a/cmd/osbuild-pipeline/main.go +++ b/cmd/osbuild-pipeline/main.go @@ -72,7 +72,7 @@ func resolveContainers(bp blueprint.Blueprint, archName string) ([]container.Spe resolver := container.NewResolver(archName) for _, c := range bp.Containers { - resolver.Add(c.Source, c.Name, c.TLSVerify) + resolver.Add(container.SourceSpec(c)) } return resolver.Finish() diff --git a/cmd/osbuild-worker/jobimpl-container-resolve.go b/cmd/osbuild-worker/jobimpl-container-resolve.go index b92f5c893..318db0798 100644 --- a/cmd/osbuild-worker/jobimpl-container-resolve.go +++ b/cmd/osbuild-worker/jobimpl-container-resolve.go @@ -32,7 +32,7 @@ func (impl *ContainerResolveJobImpl) Run(job worker.Job) error { resolver.AuthFilePath = impl.AuthFilePath for _, s := range args.Specs { - resolver.Add(s.Source, s.Name, s.TLSVerify) + resolver.Add(container.SourceSpec{s.Source, s.Name, s.TLSVerify}) } specs, err := resolver.Finish() diff --git a/internal/container/resolver.go b/internal/container/resolver.go index 68c30ca33..083be98f7 100644 --- a/internal/container/resolver.go +++ b/internal/container/resolver.go @@ -21,6 +21,12 @@ type Resolver struct { AuthFilePath string } +type SourceSpec struct { + Source string + Name string + TLSVerify *bool +} + func NewResolver(arch string) Resolver { return Resolver{ ctx: context.Background(), @@ -29,8 +35,8 @@ func NewResolver(arch string) Resolver { } } -func (r *Resolver) Add(source, name string, TLSVerify *bool) { - client, err := NewClient(source) +func (r *Resolver) Add(spec SourceSpec) { + client, err := NewClient(spec.Source) r.jobs += 1 if err != nil { @@ -38,16 +44,16 @@ func (r *Resolver) Add(source, name string, TLSVerify *bool) { return } - client.SetTLSVerify(TLSVerify) + client.SetTLSVerify(spec.TLSVerify) client.SetArchitectureChoice(r.Arch) if r.AuthFilePath != "" { client.SetAuthFilePath(r.AuthFilePath) } go func() { - spec, err := client.Resolve(r.ctx, name) + spec, err := client.Resolve(r.ctx, spec.Name) if err != nil { - err = fmt.Errorf("'%s': %w", source, err) + err = fmt.Errorf("'%s': %w", spec.Source, err) } r.queue <- resolveResult{spec: spec, err: err} }() diff --git a/internal/container/resolver_test.go b/internal/container/resolver_test.go index 1efb6c02a..b6e40d37c 100644 --- a/internal/container/resolver_test.go +++ b/internal/container/resolver_test.go @@ -44,7 +44,7 @@ func TestResolver(t *testing.T) { resolver := container.NewResolver("amd64") for _, r := range refs { - resolver.Add(r, "", common.ToPtr(false)) + resolver.Add(container.SourceSpec{r, "", common.ToPtr(false)}) } have, err := resolver.Finish() @@ -69,7 +69,7 @@ func TestResolver(t *testing.T) { func TestResolverFail(t *testing.T) { resolver := container.NewResolver("amd64") - resolver.Add("invalid-reference@${IMAGE_DIGEST}", "", common.ToPtr(false)) + resolver.Add(container.SourceSpec{"invalid-reference@${IMAGE_DIGEST}", "", common.ToPtr(false)}) specs, err := resolver.Finish() assert.Error(t, err) @@ -78,7 +78,7 @@ func TestResolverFail(t *testing.T) { registry := NewTestRegistry() defer registry.Close() - resolver.Add(registry.GetRef("repo"), "", common.ToPtr(false)) + resolver.Add(container.SourceSpec{registry.GetRef("repo"), "", common.ToPtr(false)}) specs, err = resolver.Finish() assert.Error(t, err) assert.Len(t, specs, 0)