@@ -335,7 +335,7 @@ func TestSolveOperators_CatsrcPrioritySorting(t *testing.T) {
335
335
},
336
336
operators : []* Operator {
337
337
genOperator ("packageA.v1" , "0.0.1" , "packageA.v1" , "packageA" , "alpha" , "community" , namespace , nil ,
338
- nil , opToAddVersionDeps , "" ,false ),
338
+ nil , opToAddVersionDeps , "" , false ),
339
339
},
340
340
},
341
341
registry.CatalogKey {
@@ -348,7 +348,7 @@ func TestSolveOperators_CatsrcPrioritySorting(t *testing.T) {
348
348
},
349
349
operators : []* Operator {
350
350
genOperator ("packageB.v1" , "0.0.1" , "" , "packageB" , "alpha" , "community-operator" ,
351
- namespace , nil , nil , nil , "" ,false ),
351
+ namespace , nil , nil , nil , "" , false ),
352
352
},
353
353
},
354
354
registry.CatalogKey {
@@ -362,7 +362,7 @@ func TestSolveOperators_CatsrcPrioritySorting(t *testing.T) {
362
362
priority : catalogSourcePriority (100 ),
363
363
operators : []* Operator {
364
364
genOperator ("packageB.v1" , "0.0.1" , "" , "packageB" , "alpha" , "high-priority-operator" ,
365
- namespace , nil , nil , nil , "" ,false ),
365
+ namespace , nil , nil , nil , "" , false ),
366
366
},
367
367
},
368
368
},
@@ -377,9 +377,9 @@ func TestSolveOperators_CatsrcPrioritySorting(t *testing.T) {
377
377
assert .NoError (t , err )
378
378
expected := OperatorSet {
379
379
"packageA.v1" : genOperator ("packageA.v1" , "0.0.1" , "packageA.v1" , "packageA" , "alpha" , "community" , "olm" ,
380
- nil , nil , opToAddVersionDeps , "" ,false ),
380
+ nil , nil , opToAddVersionDeps , "" , false ),
381
381
"packageB.v1" : genOperator ("packageB.v1" , "0.0.1" , "" , "packageB" , "alpha" , "high-priority-operator" , "olm" ,
382
- nil , nil , nil , "" ,false ),
382
+ nil , nil , nil , "" , false ),
383
383
}
384
384
assert .Equal (t , 2 , len (operators ))
385
385
for k , e := range expected {
@@ -398,7 +398,7 @@ func TestSolveOperators_CatsrcPrioritySorting(t *testing.T) {
398
398
priority : catalogSourcePriority (100 ),
399
399
operators : []* Operator {
400
400
genOperator ("packageB.v1" , "0.0.1" , "" , "packageB" , "alpha" , "community-operator" ,
401
- namespace , nil , nil , nil , "" ,false ),
401
+ namespace , nil , nil , nil , "" , false ),
402
402
},
403
403
}
404
404
@@ -410,9 +410,9 @@ func TestSolveOperators_CatsrcPrioritySorting(t *testing.T) {
410
410
assert .NoError (t , err )
411
411
expected = OperatorSet {
412
412
"packageA.v1" : genOperator ("packageA.v1" , "0.0.1" , "packageA.v1" , "packageA" , "alpha" , "community" , "olm" ,
413
- nil , nil , opToAddVersionDeps , "" ,false ),
413
+ nil , nil , opToAddVersionDeps , "" , false ),
414
414
"packageB.v1" : genOperator ("packageB.v1" , "0.0.1" , "" , "packageB" , "alpha" , "community-operator" , "olm" ,
415
- nil , nil , nil , "" ,false ),
415
+ nil , nil , nil , "" , false ),
416
416
}
417
417
assert .Equal (t , 2 , len (operators ))
418
418
for k , e := range expected {
@@ -430,9 +430,9 @@ func TestSolveOperators_CatsrcPrioritySorting(t *testing.T) {
430
430
},
431
431
operators : []* Operator {
432
432
genOperator ("packageA.v1" , "0.0.1" , "packageA.v1" , "packageA" , "alpha" , "community" , namespace , nil ,
433
- nil , opToAddVersionDeps , "" ,false ),
433
+ nil , opToAddVersionDeps , "" , false ),
434
434
genOperator ("packageB.v1" , "0.0.1" , "" , "packageB" , "alpha" , "community" ,
435
- namespace , nil , nil , nil , "" ,false ),
435
+ namespace , nil , nil , nil , "" , false ),
436
436
},
437
437
}
438
438
@@ -444,9 +444,9 @@ func TestSolveOperators_CatsrcPrioritySorting(t *testing.T) {
444
444
assert .NoError (t , err )
445
445
expected = OperatorSet {
446
446
"packageA.v1" : genOperator ("packageA.v1" , "0.0.1" , "packageA.v1" , "packageA" , "alpha" , "community" , "olm" ,
447
- nil , nil , opToAddVersionDeps , "" ,false ),
447
+ nil , nil , opToAddVersionDeps , "" , false ),
448
448
"packageB.v1" : genOperator ("packageB.v1" , "0.0.1" , "" , "packageB" , "alpha" , "community" , "olm" ,
449
- nil , nil , nil , "" ,false ),
449
+ nil , nil , nil , "" , false ),
450
450
}
451
451
assert .Equal (t , 2 , len (operators ))
452
452
for k , e := range expected {
@@ -1343,3 +1343,61 @@ func TestSolveOperators_WithoutDeprecated(t *testing.T) {
1343
1343
}
1344
1344
require .EqualValues (t , expected , operators )
1345
1345
}
1346
+
1347
+ func TestSolveOperators_WithSkips (t * testing.T ) {
1348
+ APISet := APISet {opregistry.APIKey {"g" , "v" , "k" , "ks" }: struct {}{}}
1349
+ Provides := APISet
1350
+
1351
+ namespace := "olm"
1352
+ catalog := registry.CatalogKey {"community" , namespace }
1353
+
1354
+ newSub := newSub (namespace , "packageB" , "alpha" , catalog )
1355
+ subs := []* v1alpha1.Subscription {newSub }
1356
+
1357
+ opToAddVersionDeps := []* api.Dependency {
1358
+ {
1359
+ Type : "olm.gvk" ,
1360
+ Value : `{"group":"g","kind":"k","version":"v"}` ,
1361
+ },
1362
+ }
1363
+
1364
+ opB := genOperator ("packageB.v1" , "1.0.0" , "" , "packageB" , "alpha" , "community" , "olm" , nil , nil , opToAddVersionDeps , "" , false )
1365
+ op1 := genOperator ("packageA.v1" , "1.0.0" , "" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false )
1366
+ op2 := genOperator ("packageA.v2" , "2.0.0" , "packageA.v1" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false )
1367
+ op3 := genOperator ("packageA.v3" , "3.0.0" , "packageA.v2" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false )
1368
+ op4 := genOperator ("packageA.v4" , "4.0.0" , "packageA.v2" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false )
1369
+ op4 .skips = []string {"packageA.v3" }
1370
+ op5 := genOperator ("packageA.v5" , "5.0.0" , "packageA.v1" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false )
1371
+ op5 .skips = []string {"packageA.v2" , "packageA.v3" , "packageA.v4" }
1372
+ op6 := genOperator ("packageA.v6" , "6.0.0" , "packageA.v5" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false )
1373
+
1374
+ fakeNamespacedOperatorCache := NamespacedOperatorCache {
1375
+ snapshots : map [registry.CatalogKey ]* CatalogSnapshot {
1376
+ registry.CatalogKey {
1377
+ Namespace : "olm" ,
1378
+ Name : "community" ,
1379
+ }: {
1380
+ key : registry.CatalogKey {
1381
+ Namespace : "olm" ,
1382
+ Name : "community" ,
1383
+ },
1384
+ operators : []* Operator {
1385
+ opB , op1 , op2 , op3 , op4 , op5 , op6 ,
1386
+ },
1387
+ },
1388
+ },
1389
+ }
1390
+ satResolver := SatResolver {
1391
+ cache : getFakeOperatorCache (fakeNamespacedOperatorCache ),
1392
+ log : logrus .New (),
1393
+ }
1394
+
1395
+ operators , err := satResolver .SolveOperators ([]string {"olm" }, nil , subs )
1396
+ assert .NoError (t , err )
1397
+
1398
+ expected := OperatorSet {
1399
+ "packageB.v1" : genOperator ("packageB.v1" , "1.0.0" , "" , "packageB" , "alpha" , "community" , "olm" , nil , nil , opToAddVersionDeps , "" , false ),
1400
+ "packageA.v6" : genOperator ("packageA.v6" , "6.0.0" , "packageA.v5" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false ),
1401
+ }
1402
+ require .EqualValues (t , expected , operators )
1403
+ }
0 commit comments