Skip to content

Commit 145fd53

Browse files
committed
refactor rm.sdkFind -> rm.ReadOne inside rm.LateInitialize() method.
1 parent 02435d4 commit 145fd53

File tree

1 file changed

+21
-27
lines changed

1 file changed

+21
-27
lines changed

templates/pkg/resource/manager.go.tpl

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -169,59 +169,53 @@ func (rm *resourceManager) ARNFromName(name string) string {
169169
// object passed in the parameter.
170170
func (rm *resourceManager) LateInitialize(
171171
ctx context.Context,
172-
res acktypes.AWSResource,
172+
resLatest acktypes.AWSResource,
173173
) (acktypes.AWSResource, error) {
174174
rlog := ackrtlog.FromContext(ctx)
175-
{{- if $hookCode := Hook .CRD "late_initialize_pre_read_one" }}
176-
{{ $hookCode }}
177-
{{- end }}
175+
latest := rm.concreteResource(resLatest)
178176
// If there are no fields to late initialize, do nothing
179177
if len(lateInitializeFieldNames) == 0 {
180178
rlog.Debug("no late initialization required.")
181-
return res, nil
179+
return latest, nil
182180
}
183-
r := rm.concreteResource(res)
184-
if r.ko == nil {
185-
// Should never happen... if it does, it's buggy code.
186-
panic("resource manager's LateInitialize() method received resource with nil CR object")
187-
}
188-
koWithDefaults := r.ko.DeepCopy()
189-
latestWithDefaults := &resource{koWithDefaults}
190181
lateInitConditionReason := ""
191182
lateInitConditionMessage := ""
192-
193-
observed, err := rm.sdkFind(ctx, latestWithDefaults)
183+
{{- if $hookCode := Hook .CRD "late_initialize_pre_read_one" }}
184+
{{ $hookCode }}
185+
{{- end }}
186+
observedRes, err := rm.ReadOne(ctx, latest)
194187
if err != nil {
195188
lateInitConditionMessage = "Unable to complete Read operation required for late initialization"
196189
lateInitConditionReason = "Late Initialization Failure"
197-
ackcondition.SetLateInitialized(latestWithDefaults, corev1.ConditionFalse, &lateInitConditionMessage, &lateInitConditionReason)
198-
return latestWithDefaults, ackrequeue.NeededAfter(err, time.Duration(0)*time.Second)
190+
ackcondition.SetLateInitialized(latest, corev1.ConditionFalse, &lateInitConditionMessage, &lateInitConditionReason)
191+
return latest, ackrequeue.NeededAfter(err, time.Duration(0)*time.Second)
199192
}
200-
latestWithDefaults = rm.lateInitializeFromReadOneOutput(observed, latestWithDefaults)
201-
incompleteInitialization := rm.incompleteLateInitialization(latestWithDefaults)
193+
{{- if $hookCode := Hook .CRD "late_initialize_post_read_one" }}
194+
{{ $hookCode }}
195+
{{- end }}
196+
observed := rm.concreteResource(observedRes)
197+
latest = rm.lateInitializeFromReadOneOutput(observed, latest)
198+
incompleteInitialization := rm.incompleteLateInitialization(latest)
202199
if incompleteInitialization {
203200
// Add the condition with LateInitialized=False
204201
lateInitConditionMessage = "Late initialization did not complete, requeuing with delay of 5 seconds"
205202
lateInitConditionReason = "Delayed Late Initialization"
206-
ackcondition.SetLateInitialized(latestWithDefaults, corev1.ConditionFalse, &lateInitConditionMessage, &lateInitConditionReason)
207-
return latestWithDefaults, ackrequeue.NeededAfter(nil, time.Duration(5)*time.Second)
203+
ackcondition.SetLateInitialized(latest, corev1.ConditionFalse, &lateInitConditionMessage, &lateInitConditionReason)
204+
return latest, ackrequeue.NeededAfter(nil, time.Duration(5)*time.Second)
208205
}
209206
// Set LateIntialized condition to True
210207
lateInitConditionMessage = "Late initialization successful"
211208
lateInitConditionReason = "Late initialization successful"
212-
ackcondition.SetLateInitialized(latestWithDefaults, corev1.ConditionTrue, &lateInitConditionMessage, &lateInitConditionReason)
213-
{{- if $hookCode := Hook .CRD "late_initialize_post_read_one" }}
214-
{{ $hookCode }}
215-
{{- end }}
216-
return latestWithDefaults, nil
209+
ackcondition.SetLateInitialized(latest, corev1.ConditionTrue, &lateInitConditionMessage, &lateInitConditionReason)
210+
return latest, nil
217211
}
218212
219213
// incompleteLateInitialization return true if there are fields which were supposed to be
220214
// late initialized but are not. If all the fields are late initialized, false is returned
221215
func (rm *resourceManager) incompleteLateInitialization(
222-
latestWithDefaults *resource,
216+
latest *resource,
223217
) bool {
224-
{{ GoCodeIncompleteLateInitialization .CRD "latestWithDefaults" 1 }}
218+
{{ GoCodeIncompleteLateInitialization .CRD "latest" 1 }}
225219
}
226220
227221
// lateInitializeFromReadOneOutput late initializes the 'latest' resource from the 'observed'

0 commit comments

Comments
 (0)