@@ -49,6 +49,8 @@ import (
49
49
"github.com/operator-framework/api/pkg/operators/v1alpha1"
50
50
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/fake"
51
51
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions"
52
+ "github.com/operator-framework/operator-lifecycle-manager/pkg/controller/bundle"
53
+ "github.com/operator-framework/operator-lifecycle-manager/pkg/controller/bundle/bundlefakes"
52
54
olmerrors "github.com/operator-framework/operator-lifecycle-manager/pkg/controller/errors"
53
55
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry"
54
56
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/grpc"
@@ -1127,6 +1129,12 @@ func TestSyncResolvingNamespace(t *testing.T) {
1127
1129
clockFake := utilclocktesting .NewFakeClock (time .Date (2018 , time .January , 26 , 20 , 40 , 0 , 0 , time .UTC ))
1128
1130
now := metav1 .NewTime (clockFake .Now ())
1129
1131
testNamespace := "testNamespace"
1132
+ og := & operatorsv1.OperatorGroup {
1133
+ ObjectMeta : metav1.ObjectMeta {
1134
+ Name : "og" ,
1135
+ Namespace : testNamespace ,
1136
+ },
1137
+ }
1130
1138
1131
1139
type fields struct {
1132
1140
clientOptions []clientfake.Option
@@ -1181,6 +1189,13 @@ func TestSyncResolvingNamespace(t *testing.T) {
1181
1189
Status : v1alpha1.SubscriptionStatus {
1182
1190
CurrentCSV : "" ,
1183
1191
State : "" ,
1192
+ Conditions : []v1alpha1.SubscriptionCondition {
1193
+ {
1194
+ Type : v1alpha1 .SubscriptionBundleUnpacking ,
1195
+ Status : corev1 .ConditionFalse ,
1196
+ },
1197
+ },
1198
+ LastUpdated : now ,
1184
1199
},
1185
1200
},
1186
1201
},
@@ -1319,7 +1334,7 @@ func TestSyncResolvingNamespace(t *testing.T) {
1319
1334
ctx , cancel := context .WithCancel (context .TODO ())
1320
1335
defer cancel ()
1321
1336
1322
- o , err := NewFakeOperator (ctx , testNamespace , []string {testNamespace }, withClock (clockFake ), withClientObjs (tt .fields .existingOLMObjs ... ), withFakeClientOptions (tt .fields .clientOptions ... ))
1337
+ o , err := NewFakeOperator (ctx , testNamespace , []string {testNamespace }, withClock (clockFake ), withClientObjs (append ( tt .fields .existingOLMObjs , og ) ... ), withFakeClientOptions (tt .fields .clientOptions ... ))
1323
1338
require .NoError (t , err )
1324
1339
1325
1340
o .reconciler = & fakes.FakeRegistryReconcilerFactory {
@@ -1560,17 +1575,18 @@ func fakeConfigMapData() map[string]string {
1560
1575
1561
1576
// fakeOperatorConfig is the configuration for a fake operator.
1562
1577
type fakeOperatorConfig struct {
1563
- clock utilclock.Clock
1564
- clientObjs []runtime.Object
1565
- k8sObjs []runtime.Object
1566
- extObjs []runtime.Object
1567
- regObjs []runtime.Object
1568
- clientOptions []clientfake.Option
1569
- logger * logrus.Logger
1570
- resolver resolver.StepResolver
1571
- recorder record.EventRecorder
1572
- reconciler reconciler.RegistryReconcilerFactory
1573
- sources []sourceAddress
1578
+ clock utilclock.Clock
1579
+ clientObjs []runtime.Object
1580
+ k8sObjs []runtime.Object
1581
+ extObjs []runtime.Object
1582
+ regObjs []runtime.Object
1583
+ clientOptions []clientfake.Option
1584
+ logger * logrus.Logger
1585
+ resolver resolver.StepResolver
1586
+ recorder record.EventRecorder
1587
+ reconciler reconciler.RegistryReconcilerFactory
1588
+ bundleUnpacker bundle.Unpacker
1589
+ sources []sourceAddress
1574
1590
}
1575
1591
1576
1592
// fakeOperatorOption applies an option to the given fake operator configuration.
@@ -1582,6 +1598,12 @@ func withResolver(res resolver.StepResolver) fakeOperatorOption {
1582
1598
}
1583
1599
}
1584
1600
1601
+ func withBundleUnpacker (bundleUnpacker bundle.Unpacker ) fakeOperatorOption {
1602
+ return func (config * fakeOperatorConfig ) {
1603
+ config .bundleUnpacker = bundleUnpacker
1604
+ }
1605
+ }
1606
+
1585
1607
func withSources (sources ... sourceAddress ) fakeOperatorOption {
1586
1608
return func (config * fakeOperatorConfig ) {
1587
1609
config .sources = sources
@@ -1627,10 +1649,11 @@ type sourceAddress struct {
1627
1649
func NewFakeOperator (ctx context.Context , namespace string , namespaces []string , fakeOptions ... fakeOperatorOption ) (* Operator , error ) {
1628
1650
// Apply options to default config
1629
1651
config := & fakeOperatorConfig {
1630
- logger : logrus .StandardLogger (),
1631
- clock : utilclock.RealClock {},
1632
- resolver : & fakes.FakeStepResolver {},
1633
- recorder : & record.FakeRecorder {},
1652
+ logger : logrus .StandardLogger (),
1653
+ clock : utilclock.RealClock {},
1654
+ resolver : & fakes.FakeStepResolver {},
1655
+ recorder : & record.FakeRecorder {},
1656
+ bundleUnpacker : & bundlefakes.FakeUnpacker {},
1634
1657
}
1635
1658
for _ , option := range fakeOptions {
1636
1659
option (config )
@@ -1669,12 +1692,14 @@ func NewFakeOperator(ctx context.Context, namespace string, namespaces []string,
1669
1692
subInformer := operatorsFactory .Operators ().V1alpha1 ().Subscriptions ()
1670
1693
ipInformer := operatorsFactory .Operators ().V1alpha1 ().InstallPlans ()
1671
1694
csvInformer := operatorsFactory .Operators ().V1alpha1 ().ClusterServiceVersions ()
1672
- sharedInformers = append (sharedInformers , catsrcInformer .Informer (), subInformer .Informer (), ipInformer .Informer (), csvInformer .Informer ())
1695
+ ogInformer := operatorsFactory .Operators ().V1 ().OperatorGroups ()
1696
+ sharedInformers = append (sharedInformers , catsrcInformer .Informer (), subInformer .Informer (), ipInformer .Informer (), csvInformer .Informer (), ogInformer .Informer ())
1673
1697
1674
1698
lister .OperatorsV1alpha1 ().RegisterCatalogSourceLister (metav1 .NamespaceAll , catsrcInformer .Lister ())
1675
1699
lister .OperatorsV1alpha1 ().RegisterSubscriptionLister (metav1 .NamespaceAll , subInformer .Lister ())
1676
1700
lister .OperatorsV1alpha1 ().RegisterInstallPlanLister (metav1 .NamespaceAll , ipInformer .Lister ())
1677
1701
lister .OperatorsV1alpha1 ().RegisterClusterServiceVersionLister (metav1 .NamespaceAll , csvInformer .Lister ())
1702
+ lister .OperatorsV1 ().RegisterOperatorGroupLister (metav1 .NamespaceAll , ogInformer .Lister ())
1678
1703
1679
1704
factory := informers .NewSharedInformerFactoryWithOptions (opClientFake .KubernetesInterface (), wakeupInterval , informers .WithNamespace (metav1 .NamespaceAll ))
1680
1705
roleInformer := factory .Rbac ().V1 ().Roles ()
@@ -1722,6 +1747,7 @@ func NewFakeOperator(ctx context.Context, namespace string, namespaces []string,
1722
1747
recorder : config .recorder ,
1723
1748
clientAttenuator : scoped .NewClientAttenuator (logger , & rest.Config {}, opClientFake ),
1724
1749
serviceAccountQuerier : scoped .NewUserDefinedServiceAccountQuerier (logger , clientFake ),
1750
+ bundleUnpacker : config .bundleUnpacker ,
1725
1751
catsrcQueueSet : queueinformer .NewEmptyResourceQueueSet (),
1726
1752
clientFactory : & stubClientFactory {
1727
1753
operatorClient : opClientFake ,
0 commit comments