Skip to content

Commit 2fbc8ef

Browse files
committed
Merge branch 'honor_finalizers' of https://github.com/nokia/crossplane-runtime into honor_finalizers
2 parents aea16bc + 8516dce commit 2fbc8ef

File tree

2 files changed

+40
-15
lines changed

2 files changed

+40
-15
lines changed

pkg/reconciler/managed/reconciler_legacy_test.go

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -208,27 +208,17 @@ func TestReconciler(t *testing.T) {
208208
m: &fake.Manager{
209209
Client: &test.MockClient{
210210
MockGet: test.NewMockGetFn(nil, func(obj client.Object) error {
211-
mg :=
212-
asManaged(obj, 42)
211+
mg := asLegacyManaged(obj, 42)
213212
mg.SetDeletionTimestamp(&now)
214213
mg.SetDeletionPolicy(xpv1.DeletionDelete)
215214
mg.SetFinalizers([]string{FinalizerName, "finalizer2"})
216215
return nil
217216
}),
218-
MockStatusUpdate: test.MockSubResourceUpdateFn(func(_ context.Context, _ client.Object,
219-
_ ...client.SubResourceUpdateOption) error {
220-
want :=
221-
newManaged(42)
222-
want.SetDeletionTimestamp(&now)
223-
want.SetDeletionPolicy(xpv1.DeletionDelete)
224-
want.SetFinalizers([]string{FinalizerName, "finalizer2"})
225-
want.SetConditions(xpv1.Deleting().WithObservedGeneration(42))
226-
return nil
227-
}),
217+
MockUpdate: test.NewMockUpdateFn(nil),
228218
},
229-
Scheme: fake.SchemeWith(&fake.Managed{}),
219+
Scheme: fake.SchemeWith(&fake.LegacyManaged{}),
230220
},
231-
mg: resource.ManagedKind(fake.GVK(&fake.Managed{})),
221+
mg: resource.ManagedKind(fake.GVK(&fake.LegacyManaged{})),
232222
o: []ReconcilerOption{
233223
WithInitializers(),
234224
WithReferenceResolver(ReferenceResolverFn(func(_ context.Context, _ resource.Managed) error { return nil })),
@@ -246,7 +236,8 @@ func TestReconciler(t *testing.T) {
246236
},
247237
},
248238
want: want{result: reconcile.Result{Requeue: true}},
249-
}, "ExternalCreatePending": {
239+
},
240+
"ExternalCreatePending": {
250241
reason: "We should return early if the managed resource appears to be pending creation. We might have leaked a resource and don't want to create another.",
251242
args: args{
252243
m: &fake.Manager{

pkg/reconciler/managed/reconciler_modern_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,40 @@ func TestModernReconciler(t *testing.T) {
207207
},
208208
want: want{result: reconcile.Result{Requeue: true}},
209209
},
210+
"ExtraFinalizersDelayDelete": {
211+
reason: "The existence of multiple finalizers should trigger a requeue after a short wait.",
212+
args: args{
213+
m: &fake.Manager{
214+
Client: &test.MockClient{
215+
MockGet: test.NewMockGetFn(nil, func(obj client.Object) error {
216+
mg := asModernManaged(obj, 42)
217+
mg.SetDeletionTimestamp(&now)
218+
mg.SetFinalizers([]string{FinalizerName, "finalizer2"})
219+
return nil
220+
}),
221+
MockUpdate: test.NewMockUpdateFn(nil),
222+
},
223+
Scheme: fake.SchemeWith(&fake.ModernManaged{}),
224+
},
225+
mg: resource.ManagedKind(fake.GVK(&fake.ModernManaged{})),
226+
o: []ReconcilerOption{
227+
WithInitializers(),
228+
WithReferenceResolver(ReferenceResolverFn(func(_ context.Context, _ resource.Managed) error { return nil })),
229+
WithExternalConnector(ExternalConnectorFn(func(_ context.Context, _ resource.Managed) (ExternalClient, error) {
230+
c := &ExternalClientFns{
231+
ObserveFn: func(_ context.Context, _ resource.Managed) (ExternalObservation, error) {
232+
return ExternalObservation{ResourceExists: true}, nil
233+
},
234+
DisconnectFn: func(_ context.Context) error {
235+
return nil
236+
},
237+
}
238+
return c, nil
239+
})),
240+
},
241+
},
242+
want: want{result: reconcile.Result{Requeue: true}},
243+
},
210244
"ExternalCreatePending": {
211245
reason: "We should return early if the managed resource appears to be pending creation. We might have leaked a resource and don't want to create another.",
212246
args: args{

0 commit comments

Comments
 (0)