@@ -169,59 +169,53 @@ func (rm *resourceManager) ARNFromName(name string) string {
169169// object passed in the parameter.
170170func (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
221215func (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