Skip to content

Commit d03a41a

Browse files
committed
fix create/update remoteObject condition
1 parent 61cdf04 commit d03a41a

File tree

2 files changed

+44
-50
lines changed

2 files changed

+44
-50
lines changed

internal/controllers/remotedatabasenodeset/remote_objects.go

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -210,11 +210,12 @@ func (r *Reconciler) syncRemoteObjects(
210210
remoteDatabaseNodeSet.SetPrimaryResourceAnnotations(localObj)
211211

212212
// Check object existence in local cluster
213-
objExist := false
214-
if err = r.Client.Get(ctx, types.NamespacedName{
213+
err = r.Client.Get(ctx, types.NamespacedName{
215214
Name: remoteObj.GetName(),
216215
Namespace: remoteObj.GetNamespace(),
217-
}, localObj); err != nil {
216+
}, localObj)
217+
//nolint:nestif
218+
if err != nil {
218219
if !apierrors.IsNotFound(err) {
219220
r.Recorder.Event(
220221
remoteDatabaseNodeSet,
@@ -224,10 +225,24 @@ func (r *Reconciler) syncRemoteObjects(
224225
)
225226
return Stop, ctrl.Result{RequeueAfter: DefaultRequeueDelay}, err
226227
}
227-
objExist = true
228-
}
229-
230-
if objExist {
228+
// Object does not exist in local cluster
229+
// Try to create resource in remote cluster
230+
if err := r.Client.Create(ctx, localObj); err != nil {
231+
r.Recorder.Event(
232+
remoteDatabaseNodeSet,
233+
corev1.EventTypeWarning,
234+
"ControllerError",
235+
fmt.Sprintf("Failed to create resource %s with name %s: %s", remoteObjGVK.Kind, remoteObj.GetName(), err),
236+
)
237+
return Stop, ctrl.Result{RequeueAfter: DefaultRequeueDelay}, nil
238+
}
239+
r.Recorder.Event(
240+
remoteDatabaseNodeSet,
241+
corev1.EventTypeNormal,
242+
"Provisioning",
243+
fmt.Sprintf("RemoteSync CREATE resource %s with name %s", remoteObjGVK.Kind, remoteObj.GetName()),
244+
)
245+
} else {
231246
// Update client.Object for local object with spec from remote object
232247
updatedObj := resources.UpdateResource(localObj, remoteObj)
233248
remoteDatabaseNodeSet.SetPrimaryResourceAnnotations(updatedObj)
@@ -250,24 +265,6 @@ func (r *Reconciler) syncRemoteObjects(
250265
fmt.Sprintf("RemoteSync UPDATE resource %s with name %s resourceVersion %s", remoteObjGVK.Kind, remoteObj.GetName(), remoteObj.GetResourceVersion()),
251266
)
252267
}
253-
} else {
254-
// Object does not exist in local cluster
255-
// Try to create resource in remote cluster
256-
if err := r.Client.Create(ctx, localObj); err != nil {
257-
r.Recorder.Event(
258-
remoteDatabaseNodeSet,
259-
corev1.EventTypeWarning,
260-
"ControllerError",
261-
fmt.Sprintf("Failed to create resource %s with name %s: %s", remoteObjGVK.Kind, remoteObj.GetName(), err),
262-
)
263-
return Stop, ctrl.Result{RequeueAfter: DefaultRequeueDelay}, nil
264-
}
265-
r.Recorder.Event(
266-
remoteDatabaseNodeSet,
267-
corev1.EventTypeNormal,
268-
"Provisioning",
269-
fmt.Sprintf("RemoteSync CREATE resource %s with name %s", remoteObjGVK.Kind, remoteObj.GetName()),
270-
)
271268
}
272269

273270
// Update status for remote resource in RemoteStorageNodeSet object

internal/controllers/remotestoragenodeset/remote_objects.go

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,12 @@ func (r *Reconciler) syncRemoteObjects(
209209
remoteStorageNodeSet.SetPrimaryResourceAnnotations(localObj)
210210

211211
// Check object existence in local cluster
212-
objExist := false
213-
if err = r.Client.Get(ctx, types.NamespacedName{
212+
err = r.Client.Get(ctx, types.NamespacedName{
214213
Name: remoteObj.GetName(),
215214
Namespace: remoteObj.GetNamespace(),
216-
}, localObj); err != nil {
215+
}, localObj)
216+
//nolint:nestif
217+
if err != nil {
217218
if !apierrors.IsNotFound(err) {
218219
r.Recorder.Event(
219220
remoteStorageNodeSet,
@@ -223,10 +224,24 @@ func (r *Reconciler) syncRemoteObjects(
223224
)
224225
return Stop, ctrl.Result{RequeueAfter: DefaultRequeueDelay}, err
225226
}
226-
objExist = true
227-
}
228-
229-
if objExist {
227+
// Object does not exist in local cluster
228+
// Try to create resource in remote cluster
229+
if err := r.Client.Create(ctx, localObj); err != nil {
230+
r.Recorder.Event(
231+
remoteStorageNodeSet,
232+
corev1.EventTypeWarning,
233+
"ControllerError",
234+
fmt.Sprintf("Failed to create resource %s with name %s: %s", remoteObjGVK.Kind, remoteObj.GetName(), err),
235+
)
236+
return Stop, ctrl.Result{RequeueAfter: DefaultRequeueDelay}, nil
237+
}
238+
r.Recorder.Event(
239+
remoteStorageNodeSet,
240+
corev1.EventTypeNormal,
241+
"Provisioning",
242+
fmt.Sprintf("RemoteSync CREATE resource %s with name %s", remoteObjGVK.Kind, remoteObj.GetName()),
243+
)
244+
} else {
230245
// Update client.Object for local object with spec from remote object
231246
updatedObj := resources.UpdateResource(localObj, remoteObj)
232247
remoteStorageNodeSet.SetPrimaryResourceAnnotations(updatedObj)
@@ -249,24 +264,6 @@ func (r *Reconciler) syncRemoteObjects(
249264
fmt.Sprintf("RemoteSync UPDATE resource %s with name %s resourceVersion %s", remoteObjGVK.Kind, remoteObj.GetName(), remoteObj.GetResourceVersion()),
250265
)
251266
}
252-
} else {
253-
// Object does not exist in local cluster
254-
// Try to create resource in remote cluster
255-
if err := r.Client.Create(ctx, localObj); err != nil {
256-
r.Recorder.Event(
257-
remoteStorageNodeSet,
258-
corev1.EventTypeWarning,
259-
"ControllerError",
260-
fmt.Sprintf("Failed to create resource %s with name %s: %s", remoteObjGVK.Kind, remoteObj.GetName(), err),
261-
)
262-
return Stop, ctrl.Result{RequeueAfter: DefaultRequeueDelay}, nil
263-
}
264-
r.Recorder.Event(
265-
remoteStorageNodeSet,
266-
corev1.EventTypeNormal,
267-
"Provisioning",
268-
fmt.Sprintf("RemoteSync CREATE resource %s with name %s", remoteObjGVK.Kind, remoteObj.GetName()),
269-
)
270267
}
271268

272269
// Update status for remote resource in RemoteStorageNodeSet object

0 commit comments

Comments
 (0)