Skip to content

Commit 23941cc

Browse files
authored
wrap deferred exit(err) in functor (#343)
Updates the generated code that defers a call to `exit(err)` for the resource logger to wrap the defer in a temporary functor that then calls `exit(err)`. See aws-controllers-k8s/runtime#93 for explanation. Signed-off-by: Jay Pipes <[email protected]> By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 53ebfac commit 23941cc

7 files changed

+25
-7
lines changed

templates/pkg/resource/references_read_referenced_resource.go.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@ Where field is of type 'Field' from aws-controllers-k8s/code-generator/pkg/model
5151
"{{ .FieldConfig.References.Path }}")
5252
}
5353
{{- end -}}
54-
{{- end -}}
54+
{{- end -}}

templates/pkg/resource/sdk.go.tpl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ func (rm *resourceManager) sdkCreate(
5454
) (created *resource, err error) {
5555
rlog := ackrtlog.FromContext(ctx)
5656
exit := rlog.Trace("rm.sdkCreate")
57-
defer exit(err)
57+
defer func() {
58+
exit(err)
59+
}()
5860

5961
{{- if $hookCode := Hook .CRD "sdk_create_pre_build_request" }}
6062
{{ $hookCode }}
@@ -133,7 +135,9 @@ func (rm *resourceManager) sdkDelete(
133135
) (latest *resource, err error) {
134136
rlog := ackrtlog.FromContext(ctx)
135137
exit := rlog.Trace("rm.sdkDelete")
136-
defer exit(err)
138+
defer func() {
139+
exit(err)
140+
}()
137141

138142
{{- if .CRD.Ops.Delete }}
139143
{{- if $hookCode := Hook .CRD "sdk_delete_pre_build_request" }}

templates/pkg/resource/sdk_find_get_attributes.go.tpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ func (rm *resourceManager) sdkFind(
55
) (latest *resource, err error) {
66
rlog := ackrtlog.FromContext(ctx)
77
exit := rlog.Trace("rm.sdkFind")
8-
defer exit(err)
8+
defer func() {
9+
exit(err)
10+
}()
911

1012
{{- if $hookCode := Hook .CRD "sdk_get_attributes_pre_build_request" }}
1113
{{ $hookCode }}

templates/pkg/resource/sdk_find_read_many.go.tpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ func (rm *resourceManager) sdkFind(
55
) (latest *resource, err error) {
66
rlog := ackrtlog.FromContext(ctx)
77
exit := rlog.Trace("rm.sdkFind")
8-
defer exit(err)
8+
defer func() {
9+
exit(err)
10+
}()
911

1012
{{- if $hookCode := Hook .CRD "sdk_read_many_pre_build_request" }}
1113
{{ $hookCode }}

templates/pkg/resource/sdk_find_read_one.go.tpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ func (rm *resourceManager) sdkFind(
55
) (latest *resource, err error) {
66
rlog := ackrtlog.FromContext(ctx)
77
exit := rlog.Trace("rm.sdkFind")
8-
defer exit(err)
8+
defer func() {
9+
exit(err)
10+
}()
911

1012
{{- if $hookCode := Hook .CRD "sdk_read_one_pre_build_request" }}
1113
{{ $hookCode }}

templates/pkg/resource/sdk_update.go.tpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ func (rm *resourceManager) sdkUpdate(
77
) (updated *resource, err error) {
88
rlog := ackrtlog.FromContext(ctx)
99
exit := rlog.Trace("rm.sdkUpdate")
10-
defer exit(err)
10+
defer func() {
11+
exit(err)
12+
}()
1113

1214
{{- if $hookCode := Hook .CRD "sdk_update_pre_build_request" }}
1315
{{ $hookCode }}

templates/pkg/resource/sdk_update_set_attributes.go.tpl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ func (rm *resourceManager) sdkUpdate(
55
latest *resource,
66
delta *ackcompare.Delta,
77
) (*resource, error) {
8+
rlog := ackrtlog.FromContext(ctx)
9+
exit := rlog.Trace("rm.sdkUpdate")
10+
defer func() {
11+
exit(err)
12+
}()
13+
814
// If any required fields in the input shape are missing, AWS resource is
915
// not created yet. And sdkUpdate should never be called if this is the
1016
// case, and it's an error in the generated code if it is...

0 commit comments

Comments
 (0)