Skip to content

Commit 923483e

Browse files
committed
add comments and small code refactor per PR comments
1 parent b54f719 commit 923483e

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

controllers/cloudstackmachine_controller.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,11 +223,14 @@ func (r *CloudStackMachineReconciliationRunner) GetOrCreateVMInstance() (retRes
223223
r.Recorder.Eventf(r.ReconciliationSubject, "Warning", "Creating", CSMachineCreationFailed, err.Error())
224224
}
225225
if err == nil && !controllerutil.ContainsFinalizer(r.ReconciliationSubject, infrav1.MachineFinalizer) { // Fetched or Created?
226+
// adding a finalizer will require CPAC reconcile-delete trying to destroy associated VM through instanceID,
227+
// so if err is not nil, which means it could not get associated VM through instanceID or name, we should not add finalizer to CloudStackMachine,
228+
// otherwise, reconciler-delete will be stuck trying to wait instanceID to ba available.
226229
controllerutil.AddFinalizer(r.ReconciliationSubject, infrav1.MachineFinalizer)
227230
r.Recorder.Eventf(r.ReconciliationSubject, "Normal", "Created", CSMachineCreationSuccess)
228231
r.Log.Info(CSMachineCreationSuccess, "instanceStatus", r.ReconciliationSubject.Status)
229232
}
230-
233+
231234
return ctrl.Result{}, err
232235
}
233236

controllers/cloudstackmachine_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ var _ = Describe("CloudStackMachineReconciler", func() {
7272
key := client.ObjectKey{Namespace: dummies.ClusterNameSpace, Name: dummies.CSMachine1.Name}
7373
if err := k8sClient.Get(ctx, key, tempMachine); err == nil {
7474
if tempMachine.Status.Ready == true {
75-
return true
75+
return len(tempMachine.ObjectMeta.Finalizers) > 0
7676
}
7777
}
7878
return false

pkg/cloud/instance.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,13 +275,13 @@ func (c *client) GetOrCreateVMInstance(
275275
listVirtualMachineParams.SetZoneid(fd.Spec.Zone.ID)
276276
listVirtualMachineParams.SetNetworkid(fd.Spec.Zone.Network.ID)
277277
listVirtualMachineParams.SetName(csMachine.Name)
278-
if listVirtualMachinesResponse, err2 := c.cs.VirtualMachine.ListVirtualMachines(listVirtualMachineParams); err2 == nil && listVirtualMachinesResponse.Count > 0 {
279-
csMachine.Spec.InstanceID = pointer.StringPtr(listVirtualMachinesResponse.VirtualMachines[0].Id)
280-
csMachine.Status.InstanceState = listVirtualMachinesResponse.VirtualMachines[0].State
281-
} else {
278+
listVirtualMachinesResponse, err2 := c.cs.VirtualMachine.ListVirtualMachines(listVirtualMachineParams)
279+
if err2 != nil || listVirtualMachinesResponse.Count <= 0 {
282280
c.customMetrics.EvaluateErrorAndIncrementAcsReconciliationErrorCounter(err2)
283281
return err
284282
}
283+
csMachine.Spec.InstanceID = pointer.StringPtr(listVirtualMachinesResponse.VirtualMachines[0].Id)
284+
csMachine.Status.InstanceState = listVirtualMachinesResponse.VirtualMachines[0].State
285285
} else {
286286
csMachine.Spec.InstanceID = pointer.StringPtr(deployVMResp.Id)
287287
csMachine.Status.Status = pointer.String(metav1.StatusSuccess)

0 commit comments

Comments
 (0)