@@ -132,32 +132,13 @@ func (r *RealSyncControl) replaceOriginTargets(
132
132
133
133
replaceRevision := r .getReplaceRevision (originTarget , syncContext )
134
134
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
- }
153
135
// add instance id and replace pair label
154
136
var newInstanceId string
155
137
var newTargetContext * api.ContextDetail
156
138
if contextDetail , exist := mapNewToOriginTargetContext [originTargetId ]; exist && contextDetail != nil {
157
139
newTargetContext = contextDetail
158
140
// reuse targetContext ID if pair-relation exists
159
141
newInstanceId = fmt .Sprintf ("%d" , newTargetContext .ID )
160
- r .xsetLabelAnnoMgr .Set (newTarget , api .XInstanceIdLabelKey , newInstanceId )
161
142
logger .Info ("replaceOriginTargets" , "try to reuse new pod resourceContext id" , newInstanceId )
162
143
} else {
163
144
if availableContexts [i ] == nil {
@@ -167,11 +148,30 @@ func (r *RealSyncControl) replaceOriginTargets(
167
148
newTargetContext = availableContexts [i ]
168
149
// add replace pair-relation to targetContexts for originTarget and newTarget
169
150
newInstanceId = fmt .Sprintf ("%d" , newTargetContext .ID )
170
- r .xsetLabelAnnoMgr .Set (newTarget , api .XInstanceIdLabelKey , newInstanceId )
171
151
r .resourceContextControl .Put (ownedIDs [originTargetId ], api .EnumReplaceNewTargetIDContextDataKey , newInstanceId )
172
152
r .resourceContextControl .Put (ownedIDs [newTargetContext .ID ], api .EnumReplaceOriginTargetIDContextDataKey , strconv .Itoa (originTargetId ))
173
153
r .resourceContextControl .Remove (ownedIDs [newTargetContext .ID ], api .EnumJustCreateContextDataKey )
174
154
}
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
+
175
175
r .xsetLabelAnnoMgr .Set (newTarget , api .XReplacePairOriginName , originTarget .GetName ())
176
176
r .xsetLabelAnnoMgr .Set (newTarget , api .XCreatingLabel , strconv .FormatInt (time .Now ().UnixNano (), 10 ))
177
177
r .resourceContextControl .Put (newTargetContext , api .EnumRevisionContextDataKey , replaceRevision .GetName ())
0 commit comments