@@ -132,32 +132,13 @@ func (r *RealSyncControl) replaceOriginTargets(
132132
133133 replaceRevision := r .getReplaceRevision (originTarget , syncContext )
134134
135- // create target using update revision if replaced by update, otherwise using current revision
136- newTarget , err := NewTargetFrom (r .xsetController , r .xsetLabelAnnoMgr , instance , replaceRevision , originTargetId ,
137- r .xsetController .GetXSetTemplatePatcher (instance ),
138- func (object client.Object ) error {
139- if decorationAdapter , ok := r .xsetController .(api.DecorationAdapter ); ok {
140- // get current decoration patcher from origin target, and patch new target
141- if fn , err := decorationAdapter .GetDecorationPatcherByRevisions (ctx , r .Client , originTarget , originWrapper .DecorationUpdatedRevisions ); err != nil {
142- return err
143- } else {
144- return fn (object )
145- }
146- }
147- return nil
148- },
149- )
150- if err != nil {
151- return err
152- }
153135 // add instance id and replace pair label
154136 var newInstanceId string
155137 var newTargetContext * api.ContextDetail
156138 if contextDetail , exist := mapNewToOriginTargetContext [originTargetId ]; exist && contextDetail != nil {
157139 newTargetContext = contextDetail
158140 // reuse targetContext ID if pair-relation exists
159141 newInstanceId = fmt .Sprintf ("%d" , newTargetContext .ID )
160- r .xsetLabelAnnoMgr .Set (newTarget , api .XInstanceIdLabelKey , newInstanceId )
161142 logger .Info ("replaceOriginTargets" , "try to reuse new pod resourceContext id" , newInstanceId )
162143 } else {
163144 if availableContexts [i ] == nil {
@@ -167,11 +148,30 @@ func (r *RealSyncControl) replaceOriginTargets(
167148 newTargetContext = availableContexts [i ]
168149 // add replace pair-relation to targetContexts for originTarget and newTarget
169150 newInstanceId = fmt .Sprintf ("%d" , newTargetContext .ID )
170- r .xsetLabelAnnoMgr .Set (newTarget , api .XInstanceIdLabelKey , newInstanceId )
171151 r .resourceContextControl .Put (ownedIDs [originTargetId ], api .EnumReplaceNewTargetIDContextDataKey , newInstanceId )
172152 r .resourceContextControl .Put (ownedIDs [newTargetContext .ID ], api .EnumReplaceOriginTargetIDContextDataKey , strconv .Itoa (originTargetId ))
173153 r .resourceContextControl .Remove (ownedIDs [newTargetContext .ID ], api .EnumJustCreateContextDataKey )
174154 }
155+
156+ // create target using update revision if replaced by update, otherwise using current revision
157+ newTarget , err := NewTargetFrom (r .xsetController , r .xsetLabelAnnoMgr , instance , replaceRevision , originTargetId ,
158+ r .xsetController .GetXSetTemplatePatcher (instance ),
159+ func (object client.Object ) error {
160+ if decorationAdapter , ok := r .xsetController .(api.DecorationAdapter ); ok {
161+ // get current decoration patcher from origin target, and patch new target
162+ if fn , err := decorationAdapter .GetDecorationPatcherByRevisions (ctx , r .Client , originTarget , originWrapper .DecorationUpdatedRevisions ); err != nil {
163+ return err
164+ } else {
165+ return fn (object )
166+ }
167+ }
168+ return nil
169+ },
170+ )
171+ if err != nil {
172+ return err
173+ }
174+
175175 r .xsetLabelAnnoMgr .Set (newTarget , api .XReplacePairOriginName , originTarget .GetName ())
176176 r .xsetLabelAnnoMgr .Set (newTarget , api .XCreatingLabel , strconv .FormatInt (time .Now ().UnixNano (), 10 ))
177177 r .resourceContextControl .Put (newTargetContext , api .EnumRevisionContextDataKey , replaceRevision .GetName ())
0 commit comments