Skip to content

Commit eb8cfb7

Browse files
committed
Use constraints library from api with simplified CEL library
Signed-off-by: Vu Dinh <[email protected]>
1 parent 4e82ce0 commit eb8cfb7

File tree

6 files changed

+16
-153
lines changed

6 files changed

+16
-153
lines changed

go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ require (
1414
github.com/go-bindata/go-bindata/v3 v3.1.3
1515
github.com/go-logr/logr v0.4.0
1616
github.com/golang/mock v1.5.0
17-
github.com/google/cel-go v0.9.0
1817
github.com/google/go-cmp v0.5.6
1918
github.com/googleapis/gnostic v0.5.5
2019
github.com/itchyny/gojq v0.11.0
@@ -39,7 +38,6 @@ require (
3938
github.com/stretchr/testify v1.7.0
4039
golang.org/x/net v0.0.0-20210825183410-e898025ed96a
4140
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac
42-
google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2
4341
google.golang.org/grpc v1.40.0
4442
gopkg.in/yaml.v2 v2.4.0
4543
helm.sh/helm/v3 v3.6.1

pkg/controller/registry/resolver/cache/predicates.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
"github.com/blang/semver/v4"
99

10-
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/resolver/constraints"
10+
"github.com/operator-framework/api/pkg/constraints"
1111
opregistry "github.com/operator-framework/operator-registry/pkg/registry"
1212
)
1313

@@ -357,13 +357,13 @@ func CountingPredicate(p Predicate, n *int) Predicate {
357357
return countingPredicate{p: p, n: n}
358358
}
359359

360-
type evaluatorPredicate struct {
361-
evaluator constraints.Evaluator
362-
rule string
363-
message string
360+
type celPredicate struct {
361+
program constraints.CelProgram
362+
rule string
363+
message string
364364
}
365365

366-
func (ep *evaluatorPredicate) Test(entry *Entry) bool {
366+
func (cp *celPredicate) Test(entry *Entry) bool {
367367
props := make([]map[string]interface{}, len(entry.Properties))
368368
for i, p := range entry.Properties {
369369
var v interface{}
@@ -376,21 +376,21 @@ func (ep *evaluatorPredicate) Test(entry *Entry) bool {
376376
}
377377
}
378378

379-
ok, err := ep.evaluator.Evaluate(map[string]interface{}{"properties": props})
379+
ok, err := cp.program.Evaluate(map[string]interface{}{"properties": props})
380380
if err != nil {
381381
return false
382382
}
383383
return ok
384384
}
385385

386-
func EvaluatorPredicate(provider constraints.EvaluatorProvider, rule string, message string) (Predicate, error) {
387-
eval, err := provider.Evaluator(rule)
386+
func CreateCelPredicate(env *constraints.CelEnvironment, rule string, message string) (Predicate, error) {
387+
prog, err := env.Validate(rule)
388388
if err != nil {
389389
return nil, err
390390
}
391-
return &evaluatorPredicate{evaluator: eval, rule: rule, message: message}, nil
391+
return &celPredicate{program: prog, rule: rule, message: message}, nil
392392
}
393393

394-
func (ep *evaluatorPredicate) String() string {
395-
return fmt.Sprintf("with constraint: %q and message: %q", ep.rule, ep.message)
394+
func (cp *celPredicate) String() string {
395+
return fmt.Sprintf("with constraint: %q and message: %q", cp.rule, cp.message)
396396
}

pkg/controller/registry/resolver/constraints/cel.go

Lines changed: 0 additions & 127 deletions
This file was deleted.

pkg/controller/registry/resolver/resolver.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
"github.com/operator-framework/api/pkg/operators/v1alpha1"
1616
v1alpha1listers "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
1717
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/resolver/cache"
18-
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/resolver/constraints"
1918
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/resolver/projection"
2019
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/resolver/solver"
2120
"github.com/operator-framework/operator-registry/pkg/api"
@@ -352,17 +351,13 @@ func (r *SatResolver) getBundleInstallables(preferredNamespace string, bundleSta
352351
continue
353352
}
354353

355-
var val struct {
356-
Message string `json:"message"`
357-
Cel *constraints.Cel `json:"cel"`
358-
}
359-
354+
var val constraints.Constraint
360355
if err := json.Unmarshal([]byte(prop.Value), &val); err != nil {
361356
errs = append(errs, err)
362357
continue
363358
}
364359

365-
pred, err := cache.EvaluatorPredicate(r.evaluatorProvider, val.Cel.Rule, val.Message)
360+
pred, err := cache.CreateCelPredicate(r.celEnv, val.Cel.Rule, val.Message)
366361
if err != nil {
367362
errs = append(errs, err)
368363
continue

pkg/controller/registry/resolver/resolver_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"github.com/operator-framework/api/pkg/operators/v1alpha1"
2222
listersv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
2323
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/resolver/cache"
24-
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/resolver/constraints"
2524
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/resolver/solver"
2625
"github.com/operator-framework/operator-registry/pkg/api"
2726
opregistry "github.com/operator-framework/operator-registry/pkg/registry"
@@ -2483,8 +2482,8 @@ func TestSolveOperators_GenericConstraint(t *testing.T) {
24832482
cache: cache.New(cache.StaticSourceProvider{
24842483
catalog: tt.catalog,
24852484
}),
2486-
log: logrus.New(),
2487-
evaluatorProvider: constraints.NewCelEvaluatorProvider(),
2485+
log: logrus.New(),
2486+
celEnv: constraints.NewCelEnvironment(),
24882487
}
24892488

24902489
operators, err = satResolver.SolveOperators([]string{namespace}, nil, tt.subs)

vendor/modules.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,6 @@ github.com/golang/protobuf/ptypes/wrappers
290290
# github.com/google/btree v1.0.1
291291
github.com/google/btree
292292
# github.com/google/cel-go v0.9.0
293-
## explicit
294293
github.com/google/cel-go/cel
295294
github.com/google/cel-go/checker
296295
github.com/google/cel-go/checker/decls
@@ -857,7 +856,6 @@ google.golang.org/appengine/internal/remote_api
857856
google.golang.org/appengine/internal/urlfetch
858857
google.golang.org/appengine/urlfetch
859858
# google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2
860-
## explicit
861859
google.golang.org/genproto/googleapis/api/annotations
862860
google.golang.org/genproto/googleapis/api/expr/v1alpha1
863861
google.golang.org/genproto/googleapis/api/httpbody

0 commit comments

Comments
 (0)