Skip to content

Commit 19bd853

Browse files
committed
Add interface for client mocking, fix bug with semver
Signed-off-by: dtfranz <[email protected]>
1 parent 0be1726 commit 19bd853

File tree

9 files changed

+19
-15
lines changed

9 files changed

+19
-15
lines changed

cmd/resolutioncli/variable_source.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"github.com/operator-framework/operator-controller/internal/resolution/variablesources"
2424
)
2525

26-
func newPackageVariableSource(catalog *catalogclient.Client, packageName, packageVersion, packageChannel string) func(inputVariableSource input.VariableSource) (input.VariableSource, error) {
26+
func newPackageVariableSource(catalog catalogclient.CatalogClient, packageName, packageVersion, packageChannel string) func(inputVariableSource input.VariableSource) (input.VariableSource, error) {
2727
return func(inputVariableSource input.VariableSource) (input.VariableSource, error) {
2828
pkgSource, err := variablesources.NewRequiredPackageVariableSource(
2929
catalog,

internal/catalogmetadata/client/client.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ import (
1212
"github.com/operator-framework/operator-controller/internal/catalogmetadata"
1313
)
1414

15+
type CatalogClient interface {
16+
Bundles(ctx context.Context) ([]*catalogmetadata.Bundle, error)
17+
}
18+
1519
func NewClient(cl client.Client) *Client {
1620
return &Client{cl: cl}
1721
}

internal/catalogmetadata/types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ func (b *Bundle) loadRequiredPackages() error {
9898
if err != nil {
9999
return fmt.Errorf("error determining bundle required packages for bundle %q: %s", b.Name, err)
100100
}
101-
for _, requiredPackage := range requiredPackages {
101+
for index, requiredPackage := range requiredPackages {
102102
semverRange, err := bsemver.ParseRange(requiredPackage.VersionRange)
103103
if err != nil {
104104
return fmt.Errorf(
@@ -108,7 +108,7 @@ func (b *Bundle) loadRequiredPackages() error {
108108
err,
109109
)
110110
}
111-
requiredPackage.SemverRange = &semverRange
111+
requiredPackages[index].SemverRange = &semverRange
112112
}
113113
b.requiredPackages = requiredPackages
114114
}

internal/controllers/variable_source.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
"github.com/operator-framework/operator-controller/internal/resolution/variablesources"
2626
)
2727

28-
func NewVariableSource(cl client.Client, catalog *catalogclient.Client) variablesources.NestedVariableSource {
28+
func NewVariableSource(cl client.Client, catalog catalogclient.CatalogClient) variablesources.NestedVariableSource {
2929
return variablesources.NestedVariableSource{
3030
func(inputVariableSource input.VariableSource) (input.VariableSource, error) {
3131
return variablesources.NewOperatorVariableSource(cl, catalog, inputVariableSource), nil

internal/resolution/variablesources/bundle_deployment.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ var _ input.VariableSource = &BundleDeploymentVariableSource{}
1515

1616
type BundleDeploymentVariableSource struct {
1717
client client.Client
18-
catalog *catalogclient.Client
18+
catalog catalogclient.CatalogClient
1919
inputVariableSource input.VariableSource
2020
}
2121

22-
func NewBundleDeploymentVariableSource(cl client.Client, catalog *catalogclient.Client, inputVariableSource input.VariableSource) *BundleDeploymentVariableSource {
22+
func NewBundleDeploymentVariableSource(cl client.Client, catalog catalogclient.CatalogClient, inputVariableSource input.VariableSource) *BundleDeploymentVariableSource {
2323
return &BundleDeploymentVariableSource{
2424
client: cl,
2525
catalog: catalog,

internal/resolution/variablesources/bundles_and_dependencies.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ import (
1818
var _ input.VariableSource = &BundlesAndDepsVariableSource{}
1919

2020
type BundlesAndDepsVariableSource struct {
21-
catalog *catalogclient.Client
21+
catalog catalogclient.CatalogClient
2222
variableSources []input.VariableSource
2323
}
2424

25-
func NewBundlesAndDepsVariableSource(catalog *catalogclient.Client, inputVariableSources ...input.VariableSource) *BundlesAndDepsVariableSource {
25+
func NewBundlesAndDepsVariableSource(catalog catalogclient.CatalogClient, inputVariableSources ...input.VariableSource) *BundlesAndDepsVariableSource {
2626
return &BundlesAndDepsVariableSource{
2727
catalog: catalog,
2828
variableSources: inputVariableSources,
@@ -98,7 +98,7 @@ func (b *BundlesAndDepsVariableSource) filterBundleDependencies(allBundles []*ca
9898
for _, requiredPackage := range requiredPackages {
9999
packageDependencyBundles := catalogfilter.Filter(allBundles, catalogfilter.And(catalogfilter.WithPackageName(requiredPackage.PackageName), catalogfilter.InBlangSemverRange(*requiredPackage.SemverRange)))
100100
if len(packageDependencyBundles) == 0 {
101-
return nil, fmt.Errorf("could not find package dependencies for bundle %q", bundle.Name)
101+
return nil, fmt.Errorf("could not find package dependencies for bundle '%s'", bundle.Name)
102102
}
103103
for i := 0; i < len(packageDependencyBundles); i++ {
104104
bundle := packageDependencyBundles[i]

internal/resolution/variablesources/installed_package.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
var _ input.VariableSource = &InstalledPackageVariableSource{}
1818

1919
type InstalledPackageVariableSource struct {
20-
catalog *catalogclient.Client
20+
catalog catalogclient.CatalogClient
2121
bundleImage string
2222
}
2323

@@ -60,7 +60,7 @@ func (r *InstalledPackageVariableSource) notFoundError() error {
6060
return fmt.Errorf("bundleImage %q not found", r.bundleImage)
6161
}
6262

63-
func NewInstalledPackageVariableSource(catalog *catalogclient.Client, bundleImage string) (*InstalledPackageVariableSource, error) {
63+
func NewInstalledPackageVariableSource(catalog catalogclient.CatalogClient, bundleImage string) (*InstalledPackageVariableSource, error) {
6464
return &InstalledPackageVariableSource{
6565
catalog: catalog,
6666
bundleImage: bundleImage,

internal/resolution/variablesources/operator.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ var _ input.VariableSource = &OperatorVariableSource{}
1515

1616
type OperatorVariableSource struct {
1717
client client.Client
18-
catalog *catalogclient.Client
18+
catalog catalogclient.CatalogClient
1919
inputVariableSource input.VariableSource
2020
}
2121

22-
func NewOperatorVariableSource(cl client.Client, catalog *catalogclient.Client, inputVariableSource input.VariableSource) *OperatorVariableSource {
22+
func NewOperatorVariableSource(cl client.Client, catalog catalogclient.CatalogClient, inputVariableSource input.VariableSource) *OperatorVariableSource {
2323
return &OperatorVariableSource{
2424
client: cl,
2525
catalog: catalog,

internal/resolution/variablesources/required_package.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ func InChannel(channelName string) RequiredPackageVariableSourceOption {
4747
}
4848

4949
type RequiredPackageVariableSource struct {
50-
catalog *catalogclient.Client
50+
catalog catalogclient.CatalogClient
5151

5252
packageName string
5353
versionRange string
5454
channelName string
5555
predicates []catalogfilter.Predicate[catalogmetadata.Bundle]
5656
}
5757

58-
func NewRequiredPackageVariableSource(catalog *catalogclient.Client, packageName string, options ...RequiredPackageVariableSourceOption) (*RequiredPackageVariableSource, error) {
58+
func NewRequiredPackageVariableSource(catalog catalogclient.CatalogClient, packageName string, options ...RequiredPackageVariableSourceOption) (*RequiredPackageVariableSource, error) {
5959
if packageName == "" {
6060
return nil, fmt.Errorf("package name must not be empty")
6161
}

0 commit comments

Comments
 (0)