Skip to content

Commit 0061ece

Browse files
committed
fix(e2e): fix installplan test cleanup
cleanup function was hanging, so explicitly clean up here
1 parent 15260dc commit 0061ece

File tree

3 files changed

+20
-24
lines changed

3 files changed

+20
-24
lines changed

pkg/controller/operators/catalog/operator.go

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -323,22 +323,6 @@ func (o *Operator) handleDeletion(obj interface{}) {
323323
return
324324
}
325325

326-
// Check the registry server
327-
checker := o.reconciler.ReconcilerForSource(catsrc)
328-
healthy, err := checker.CheckRegistryServer(catsrc)
329-
if err != nil {
330-
logger.WithError(err).Warn("error checking registry health")
331-
} else if !healthy {
332-
logger.Debug("registry server unhealthy, updating catalog source")
333-
catsrc.Status.RegistryServiceStatus = nil
334-
_, err = o.client.OperatorsV1alpha1().CatalogSources(catsrc.GetNamespace()).UpdateStatus(catsrc)
335-
if err == nil {
336-
logger.Debug("successfully updated catalogsource registry status")
337-
return
338-
}
339-
logger.WithError(err).Warn("error updating catalogsource registry status")
340-
}
341-
342326
// Requeue CatalogSource
343327
if err := o.catSrcQueueSet.Requeue(catsrc.GetName(), catsrc.GetNamespace()); err != nil {
344328
logger.WithError(err).Warn("error requeuing owner catalogsource")
@@ -429,13 +413,13 @@ func (o *Operator) syncCatalogSources(obj interface{}) (syncError error) {
429413
logger.Debug("catsrc configmap state good, checking registry pod")
430414
}
431415

432-
reconciler := o.reconciler.ReconcilerForSource(catsrc)
433-
if reconciler == nil {
416+
srcReconciler := o.reconciler.ReconcilerForSource(catsrc)
417+
if srcReconciler == nil {
434418
// TODO: Add failure status on catalogsource and remove from sources
435419
return fmt.Errorf("no reconciler for source type %s", catsrc.Spec.SourceType)
436420
}
437421

438-
healthy, err := reconciler.CheckRegistryServer(catsrc)
422+
healthy, err := srcReconciler.CheckRegistryServer(catsrc)
439423
if err != nil {
440424
return err
441425
}
@@ -444,7 +428,7 @@ func (o *Operator) syncCatalogSources(obj interface{}) (syncError error) {
444428
if !healthy || catsrc.Status.RegistryServiceStatus == nil || catsrc.Status.RegistryServiceStatus.CreatedAt.Before(&catsrc.Status.LastSync) {
445429
logger.Debug("ensuring registry server")
446430

447-
if err := reconciler.EnsureRegistryServer(out); err != nil {
431+
if err := srcReconciler.EnsureRegistryServer(out); err != nil {
448432
logger.WithError(err).Warn("couldn't ensure registry server")
449433
return err
450434
}
@@ -919,7 +903,7 @@ func (o *Operator) createInstallPlan(namespace string, subs []*v1alpha1.Subscrip
919903
func (o *Operator) requeueSubscription(name, namespace string) {
920904
// we can build the key directly, will need to change if queue uses different key scheme
921905
key := fmt.Sprintf("%s/%s", namespace, name)
922-
o.subQueue.AddRateLimited(key)
906+
o.subQueue.Add(key)
923907
return
924908
}
925909

test/e2e/installplan_e2e_test.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -333,14 +333,16 @@ EXPECTED:
333333
log("All expected resources resolved")
334334

335335
// Verify that the dependent subscription is in a good state
336-
dependentSubscription, err := fetchSubscription(t, crc, testNamespace, strings.Join([]string{dependentPackageStable, dependentCatalogName, testNamespace}, "-"), subscriptionHasInstallPlanChecker)
336+
dependentSubscription, err := fetchSubscription(t, crc, testNamespace, strings.Join([]string{dependentPackageStable, dependentCatalogName, testNamespace}, "-"), subscriptionStateAtLatestChecker)
337337
require.NoError(t, err)
338338
require.NotNil(t, dependentSubscription)
339339
require.NotNil(t, dependentSubscription.Status.InstallPlanRef)
340-
require.Equal(t, "AtLatestKnown", string(dependentSubscription.Status.State))
341340
require.Equal(t, dependentCSV.GetName(), dependentSubscription.Status.CurrentCSV)
342341

343-
// TODO: update dependent subscription in catalog and wait for csv to update
342+
fetchedCSV, err := awaitCSV(t, crc, testNamespace, dependentCSV.GetName(), csvAnyChecker)
343+
require.NoError(t, err)
344+
345+
// Update dependent subscription in catalog and wait for csv to update
344346
updatedDependentCSV := newCSV(dependentPackageStable+"v2", testNamespace, dependentPackageStable, semver.MustParse("0.1.1"), []apiextensions.CustomResourceDefinition{dependentCRD}, nil, dependentNamedStrategy)
345347
dependentManifests = []registry.PackageManifest{
346348
{
@@ -355,6 +357,12 @@ EXPECTED:
355357

356358
dependentSubscription, err = fetchSubscription(t, crc, testNamespace, strings.Join([]string{dependentPackageStable, dependentCatalogName, testNamespace}, "-"), subscriptionHasCurrentCSV(updatedDependentCSV.GetName()))
357359
require.NoError(t, err)
360+
361+
fetchedCSV, err = awaitCSV(t, crc, testNamespace, updatedDependentCSV.GetName(), csvAnyChecker)
362+
require.NoError(t, err)
363+
364+
err = crc.OperatorsV1alpha1().ClusterServiceVersions(testNamespace).Delete(fetchedCSV.GetName(), metav1.NewDeleteOptions(0))
365+
require.NoError(t, err)
358366
}
359367

360368
func TestCreateInstallPlanWithPreExistingCRDOwners(t *testing.T) {

test/e2e/util_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,24 +369,28 @@ func cleanupOLM(t *testing.T, namespace string) {
369369
var err error
370370
err = waitForEmptyList(func() (int, error) {
371371
res, err := crc.OperatorsV1alpha1().ClusterServiceVersions(namespace).List(metav1.ListOptions{FieldSelector: nonPersistentCSVFieldSelector})
372+
t.Logf("%d %s remaining", len(res.Items), "csvs")
372373
return len(res.Items), err
373374
})
374375
require.NoError(t, err)
375376

376377
err = waitForEmptyList(func() (int, error) {
377378
res, err := crc.OperatorsV1alpha1().InstallPlans(namespace).List(metav1.ListOptions{})
379+
t.Logf("%d %s remaining", len(res.Items), "installplans")
378380
return len(res.Items), err
379381
})
380382
require.NoError(t, err)
381383

382384
err = waitForEmptyList(func() (int, error) {
383385
res, err := crc.OperatorsV1alpha1().Subscriptions(namespace).List(metav1.ListOptions{})
386+
t.Logf("%d %s remaining", len(res.Items), "subs")
384387
return len(res.Items), err
385388
})
386389
require.NoError(t, err)
387390

388391
err = waitForEmptyList(func() (int, error) {
389392
res, err := crc.OperatorsV1alpha1().CatalogSources(namespace).List(metav1.ListOptions{FieldSelector: nonPersistentCatalogsFieldSelector})
393+
t.Logf("%d %s remaining", len(res.Items), "catalogs")
390394
return len(res.Items), err
391395
})
392396
require.NoError(t, err)

0 commit comments

Comments
 (0)