Skip to content

Commit 6dfca97

Browse files
committed
crossplane: fix controller no-op functions to return the existing results and add ignore return value to preDelete
Signed-off-by: Muvaffak Onus <[email protected]>
1 parent 35b614d commit 6dfca97

File tree

2 files changed

+28
-18
lines changed

2 files changed

+28
-18
lines changed

templates/crossplane/apis/doc.go.tpl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
{{ template "boilerplate" }}
2+
3+
// Code generated by ack-generate. DO NOT EDIT.
4+
15
// +kubebuilder:object:generate=true
26
// Package {{ .APIVersion }} is the {{ .APIVersion }} version of the {{ .APIGroup }} API.
37
// +groupName={{ .APIGroup }}

templates/crossplane/pkg/controller.go.tpl

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,14 @@ func (e *external) Delete(ctx context.Context, mg cpresource.Managed) error {
160160
cr.Status.SetConditions(xpv1.Deleting())
161161
{{- if .CRD.Ops.Delete }}
162162
input := Generate{{ .CRD.Ops.Delete.InputRef.Shape.ShapeName }}(cr)
163-
if err := e.preDelete(ctx, cr, input); err != nil {
163+
ignore, err := e.preDelete(ctx, cr, input)
164+
if err != nil {
164165
return errors.Wrap(err, "pre-delete failed")
165166
}
166-
_, err := e.client.{{ .CRD.Ops.Delete.Name }}WithContext(ctx, input)
167+
if ignore {
168+
return nil
169+
}
170+
_, err = e.client.{{ .CRD.Ops.Delete.Name }}WithContext(ctx, input)
167171
return awsclient.Wrap(cpresource.Ignore(IsNotFound, err), errDelete)
168172
{{- else }}
169173
return e.delete(ctx, mg)
@@ -224,29 +228,30 @@ type external struct {
224228
lateInitialize func(*svcapitypes.{{ .CRD.Names.Camel }}Parameters, *svcsdk.{{ .CRD.Ops.ReadMany.OutputRef.Shape.ShapeName }}) error
225229
isUpToDate func(*svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.ReadMany.OutputRef.Shape.ShapeName }}) (bool, error)
226230
{{- else }}
227-
observe func(ctx context.Context, mg cpresource.Managed) (managed.ExternalObservation, error)
231+
observe func(context.Context, cpresource.Managed) (managed.ExternalObservation, error)
228232
{{- end }}
229233
preCreate func(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Create.InputRef.Shape.ShapeName }}) error
230234
postCreate func(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Create.OutputRef.Shape.ShapeName }}, managed.ExternalCreation, error) (managed.ExternalCreation, error)
231235
{{- if .CRD.Ops.Delete }}
232-
preDelete func(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Delete.InputRef.Shape.ShapeName }}) error
236+
preDelete func(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Delete.InputRef.Shape.ShapeName }}) (bool, error)
233237
{{- else }}
234-
delete func(ctx context.Context, mg cpresource.Managed) error
238+
delete func(context.Context, cpresource.Managed) error
235239
{{- end }}
236240
{{- if .CRD.Ops.Update }}
237241
preUpdate func(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Update.InputRef.Shape.ShapeName }}) error
238242
postUpdate func(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Update.OutputRef.Shape.ShapeName }}, managed.ExternalUpdate, error) (managed.ExternalUpdate, error)
239243
{{- else }}
240-
update func(ctx context.Context, mg cpresource.Managed) (managed.ExternalUpdate, error)
244+
update func(context.Context, cpresource.Managed) (managed.ExternalUpdate, error)
241245
{{ end }}
242246
}
243247

244248
{{- if .CRD.Ops.ReadOne }}
245249
func nopPreObserve(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.ReadOne.InputRef.Shape.ShapeName }}) error {
246250
return nil
247251
}
248-
func nopPostObserve(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.ReadOne.OutputRef.Shape.ShapeName }}, managed.ExternalObservation, error) (managed.ExternalObservation, error) {
249-
return managed.ExternalObservation{}, nil
252+
253+
func nopPostObserve(_ context.Context, _ *svcapitypes.{{ .CRD.Names.Camel }}, _ *svcsdk.{{ .CRD.Ops.ReadOne.OutputRef.Shape.ShapeName }}, obs managed.ExternalObservation, err error) (managed.ExternalObservation, error) {
254+
return obs, err
250255
}
251256
func nopLateInitialize(*svcapitypes.{{ .CRD.Names.Camel }}Parameters, *svcsdk.{{ .CRD.Ops.ReadOne.OutputRef.Shape.ShapeName }}) error {
252257
return nil
@@ -258,8 +263,9 @@ func alwaysUpToDate(*svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Rea
258263
func nopPreObserve(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.GetAttributes.InputRef.Shape.ShapeName }}) error {
259264
return nil
260265
}
261-
func nopPostObserve(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.GetAttributes.OutputRef.Shape.ShapeName }}, managed.ExternalObservation, error) (managed.ExternalObservation, error) {
262-
return managed.ExternalObservation{}, nil
266+
267+
func nopPostObserve(_ context.Context, _ *svcapitypes.{{ .CRD.Names.Camel }}, _ *svcsdk.{{ .CRD.Ops.GetAttributes.OutputRef.Shape.ShapeName }}, obs managed.ExternalObservation, err error) (managed.ExternalObservation, error) {
268+
return obs, err
263269
}
264270
func nopLateInitialize(*svcapitypes.{{ .CRD.Names.Camel }}Parameters, *svcsdk.{{ .CRD.Ops.GetAttributes.OutputRef.Shape.ShapeName }}) error {
265271
return nil
@@ -271,8 +277,8 @@ func alwaysUpToDate(*svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Get
271277
func nopPreObserve(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.ReadMany.InputRef.Shape.ShapeName }}) error {
272278
return nil
273279
}
274-
func nopPostObserve(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.ReadMany.OutputRef.Shape.ShapeName }}, managed.ExternalObservation, error) (managed.ExternalObservation, error) {
275-
return managed.ExternalObservation{}, nil
280+
func nopPostObserve(_ context.Context, _ *svcapitypes.{{ .CRD.Names.Camel }}, _ *svcsdk.{{ .CRD.Ops.ReadMany.OutputRef.Shape.ShapeName }}, obs managed.ExternalObservation, err error) (managed.ExternalObservation, error) {
281+
return obs, err
276282
}
277283
func nopFilterList(_ *svcapitypes.{{ .CRD.Names.Camel }}, list *svcsdk.{{ .CRD.Ops.ReadMany.OutputRef.Shape.ShapeName }}) *svcsdk.{{ .CRD.Ops.ReadMany.OutputRef.Shape.ShapeName }} {
278284
return list
@@ -293,12 +299,12 @@ func nopObserve(context.Context, cpresource.Managed) (managed.ExternalObservatio
293299
func nopPreCreate(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Create.InputRef.Shape.ShapeName }}) error {
294300
return nil
295301
}
296-
func nopPostCreate(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Create.OutputRef.Shape.ShapeName }}, managed.ExternalCreation, error) (managed.ExternalCreation, error) {
297-
return managed.ExternalCreation{}, nil
302+
func nopPostCreate(_ context.Context, _ *svcapitypes.{{ .CRD.Names.Camel }}, _ *svcsdk.{{ .CRD.Ops.Create.OutputRef.Shape.ShapeName }}, cre managed.ExternalCreation, err error) (managed.ExternalCreation, error) {
303+
return cre, err
298304
}
299305
{{- if .CRD.Ops.Delete }}
300-
func nopPreDelete(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Delete.InputRef.Shape.ShapeName }}) error {
301-
return nil
306+
func nopPreDelete(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Delete.InputRef.Shape.ShapeName }}) (bool, error) {
307+
return false, nil
302308
}
303309
{{- else }}
304310
func nopDelete(context.Context, cpresource.Managed) error {
@@ -309,8 +315,8 @@ func nopDelete(context.Context, cpresource.Managed) error {
309315
func nopPreUpdate(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Update.InputRef.Shape.ShapeName }}) error {
310316
return nil
311317
}
312-
func nopPostUpdate(context.Context, *svcapitypes.{{ .CRD.Names.Camel }}, *svcsdk.{{ .CRD.Ops.Update.OutputRef.Shape.ShapeName }}, managed.ExternalUpdate, error) (managed.ExternalUpdate, error) {
313-
return managed.ExternalUpdate{}, nil
318+
func nopPostUpdate(_ context.Context, _ *svcapitypes.{{ .CRD.Names.Camel }}, _ *svcsdk.{{ .CRD.Ops.Update.OutputRef.Shape.ShapeName }}, upd managed.ExternalUpdate, err error) (managed.ExternalUpdate, error) {
319+
return upd, err
314320
}
315321
{{- else }}
316322
func nopUpdate(context.Context, cpresource.Managed) (managed.ExternalUpdate, error) {

0 commit comments

Comments
 (0)