Skip to content

Commit 5df47e3

Browse files
committed
use acktypes.AWSResource in method signature instead of concerete 'resource' for lateInitialization.
1 parent 145fd53 commit 5df47e3

File tree

4 files changed

+20
-22
lines changed

4 files changed

+20
-22
lines changed

pkg/generate/ack/controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,8 @@ var (
121121
"GoCodeFindLateInitializedFieldNames": func(r *ackmodel.CRD, resVarName string, indentLevel int) string {
122122
return code.FindLateInitializedFieldNames(r.Config(), r, resVarName, indentLevel)
123123
},
124-
"GoCodeLateInitializeFromReadOne": func(r *ackmodel.CRD, koSourceVarName string, koTargetVarName string, indentLevel int) string {
125-
return code.LateInitializeFromReadOne(r.Config(), r, koSourceVarName, koTargetVarName, indentLevel)
124+
"GoCodeLateInitializeFromReadOne": func(r *ackmodel.CRD, sourceResVarName string, targetResVarName string, indentLevel int) string {
125+
return code.LateInitializeFromReadOne(r.Config(), r, sourceResVarName, targetResVarName, indentLevel)
126126
},
127127
"GoCodeIncompleteLateInitialization": func(r *ackmodel.CRD, resVarName string, indentLevel int) string {
128128
return code.IncompleteLateInitialization(r.Config(), r, resVarName, indentLevel)

pkg/generate/code/late_initialize.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ func getSortedLateInitFieldsAndConfig(
9898
// min_backoff_seconds: 20
9999
//
100100
// Sample output:
101-
// observedKo := observed.ko
102-
// latestKo := latest.ko
101+
// observedKo := rm.concreteResource(observed).ko
102+
// latestKo := rm.concreteResource(latest).ko
103103
// if observedKo.Spec.ImageScanningConfiguration != nil && latestKo.Spec.ImageScanningConfiguration != nil {
104104
// if observedKo.Spec.ImageScanningConfiguration.ScanOnPush != nil && latestKo.Spec.ImageScanningConfiguration.ScanOnPush == nil {
105105
// latestKo.Spec.ImageScanningConfiguration.ScanOnPush = observedKo.Spec.ImageScanningConfiguration.ScanOnPush
@@ -151,8 +151,8 @@ func LateInitializeFromReadOne(
151151
if len(lateInitializedFieldNames) == 0 {
152152
return fmt.Sprintf("%sreturn %s", indent, targetResVarName)
153153
}
154-
out += fmt.Sprintf("%sobservedKo := %s.ko\n", indent, sourceResVarName)
155-
out += fmt.Sprintf("%slatestKo := %s.ko\n", indent, targetResVarName)
154+
out += fmt.Sprintf("%sobservedKo := rm.concreteResource(%s).ko\n", indent, sourceResVarName)
155+
out += fmt.Sprintf("%slatestKo := rm.concreteResource(%s).ko\n", indent, targetResVarName)
156156
// TODO(vijat@): Add validation for correct field path in lateInitializedFieldNames
157157
for _, fName := range lateInitializedFieldNames {
158158
// split the field name by period
@@ -235,7 +235,7 @@ func LateInitializeFromReadOne(
235235
//
236236
//
237237
// Sample Output:
238-
// ko := latestWithDefaults.ko
238+
// ko := rm.concreteResource(latest).ko
239239
// if ko.Spec.ImageScanningConfiguration != nil {
240240
// if ko.Spec.ImageScanningConfiguration.ScanOnPush == nil {
241241
// return true
@@ -288,7 +288,7 @@ func IncompleteLateInitialization(
288288
out += fmt.Sprintf("%sreturn false", indent)
289289
return out
290290
}
291-
out += fmt.Sprintf("%sko := %s.ko\n", indent, resVarName)
291+
out += fmt.Sprintf("%sko := rm.concreteResource(%s).ko\n", indent, resVarName)
292292
for _, fName := range sortedLateInitFieldNames {
293293
// split the field name by period
294294
// each substring represents a field.

pkg/generate/code/late_initialize_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ func Test_LateInitializeFromReadOne_NonNestedPath(t *testing.T) {
100100
assert.NotNil(crd.Config().ResourceFields(crd.Names.Original)["Name"].LateInitialize)
101101
assert.NotNil(crd.Config().ResourceFields(crd.Names.Original)["ImageTagMutability"].LateInitialize)
102102
expected :=
103-
` observedKo := observed.ko
104-
latestKo := latest.ko
103+
` observedKo := rm.concreteResource(observed).ko
104+
latestKo := rm.concreteResource(latest).ko
105105
if observedKo.Spec.ImageTagMutability != nil && latestKo.Spec.ImageTagMutability == nil {
106106
latestKo.Spec.ImageTagMutability = observedKo.Spec.ImageTagMutability
107107
}
@@ -125,8 +125,8 @@ func Test_LateInitializeFromReadOne_NestedPath(t *testing.T) {
125125
assert.NotNil(crd.Config().ResourceFields(crd.Names.Original)["Name"].LateInitialize)
126126
assert.NotNil(crd.Config().ResourceFields(crd.Names.Original)["ImageScanningConfiguration.ScanOnPush"].LateInitialize)
127127
expected :=
128-
` observedKo := observed.ko
129-
latestKo := latest.ko
128+
` observedKo := rm.concreteResource(observed).ko
129+
latestKo := rm.concreteResource(latest).ko
130130
if observedKo.Spec.ImageScanningConfiguration != nil && latestKo.Spec.ImageScanningConfiguration != nil {
131131
if observedKo.Spec.ImageScanningConfiguration.ScanOnPush != nil && latestKo.Spec.ImageScanningConfiguration.ScanOnPush == nil {
132132
latestKo.Spec.ImageScanningConfiguration.ScanOnPush = observedKo.Spec.ImageScanningConfiguration.ScanOnPush
@@ -193,7 +193,7 @@ func Test_IncompleteLateInitialization(t *testing.T) {
193193
assert.NotNil(crd.Config().ResourceFields(crd.Names.Original)["Name"].LateInitialize)
194194
assert.NotNil(crd.Config().ResourceFields(crd.Names.Original)["ImageScanningConfiguration.ScanOnPush"].LateInitialize)
195195
expected :=
196-
` ko := latestWithDefaults.ko
196+
` ko := rm.concreteResource(latest).ko
197197
if ko.Spec.ImageScanningConfiguration != nil {
198198
if ko.Spec.ImageScanningConfiguration.ScanOnPush == nil {
199199
return true
@@ -231,5 +231,5 @@ func Test_IncompleteLateInitialization(t *testing.T) {
231231
}
232232
}
233233
return false`
234-
assert.Equal(expected, code.IncompleteLateInitialization(crd.Config(), crd, "latestWithDefaults", 1))
234+
assert.Equal(expected, code.IncompleteLateInitialization(crd.Config(), crd, "latest", 1))
235235
}

templates/pkg/resource/manager.go.tpl

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,9 @@ func (rm *resourceManager) ARNFromName(name string) string {
169169
// object passed in the parameter.
170170
func (rm *resourceManager) LateInitialize(
171171
ctx context.Context,
172-
resLatest acktypes.AWSResource,
172+
latest acktypes.AWSResource,
173173
) (acktypes.AWSResource, error) {
174174
rlog := ackrtlog.FromContext(ctx)
175-
latest := rm.concreteResource(resLatest)
176175
// If there are no fields to late initialize, do nothing
177176
if len(lateInitializeFieldNames) == 0 {
178177
rlog.Debug("no late initialization required.")
@@ -183,7 +182,7 @@ func (rm *resourceManager) LateInitialize(
183182
{{- if $hookCode := Hook .CRD "late_initialize_pre_read_one" }}
184183
{{ $hookCode }}
185184
{{- end }}
186-
observedRes, err := rm.ReadOne(ctx, latest)
185+
observed, err := rm.ReadOne(ctx, latest)
187186
if err != nil {
188187
lateInitConditionMessage = "Unable to complete Read operation required for late initialization"
189188
lateInitConditionReason = "Late Initialization Failure"
@@ -193,7 +192,6 @@ func (rm *resourceManager) LateInitialize(
193192
{{- if $hookCode := Hook .CRD "late_initialize_post_read_one" }}
194193
{{ $hookCode }}
195194
{{- end }}
196-
observed := rm.concreteResource(observedRes)
197195
latest = rm.lateInitializeFromReadOneOutput(observed, latest)
198196
incompleteInitialization := rm.incompleteLateInitialization(latest)
199197
if incompleteInitialization {
@@ -213,17 +211,17 @@ func (rm *resourceManager) LateInitialize(
213211
// incompleteLateInitialization return true if there are fields which were supposed to be
214212
// late initialized but are not. If all the fields are late initialized, false is returned
215213
func (rm *resourceManager) incompleteLateInitialization(
216-
latest *resource,
214+
latest acktypes.AWSResource,
217215
) bool {
218216
{{ GoCodeIncompleteLateInitialization .CRD "latest" 1 }}
219217
}
220218
221219
// lateInitializeFromReadOneOutput late initializes the 'latest' resource from the 'observed'
222220
// resource and returns 'latest' resource
223221
func (rm *resourceManager) lateInitializeFromReadOneOutput(
224-
observed *resource,
225-
latest *resource,
226-
) *resource {
222+
observed acktypes.AWSResource,
223+
latest acktypes.AWSResource,
224+
) acktypes.AWSResource {
227225
{{ GoCodeLateInitializeFromReadOne .CRD "observed" "latest" 1 }}
228226
}
229227

0 commit comments

Comments
 (0)