@@ -95,9 +95,10 @@ func (r *IpAddressClaimReconciler) Reconcile(ctx context.Context, req ctrl.Reque
9595 debugLogger .Info ("ipaddress object matching ipaddress claim was not found, creating new ipaddress object" )
9696
9797 // 2. check if lease for parent prefix is available
98- parentPrefixName := strings .ReplaceAll (o .Spec .ParentPrefix , "/" , "-" )
99-
100- leaseLockerNSN := types.NamespacedName {Name : parentPrefixName , Namespace : r .OperatorNamespace }
98+ leaseLockerNSN := types.NamespacedName {
99+ Name : convertCIDRToLeaseLockName (o .Spec .ParentPrefix ),
100+ Namespace : r .OperatorNamespace ,
101+ }
101102 ll , err := leaselocker .NewLeaseLocker (r .RestConfig , leaseLockerNSN , req .Namespace + "/" + ipAddressName )
102103 if err != nil {
103104 return ctrl.Result {}, err
@@ -110,21 +111,24 @@ func (r *IpAddressClaimReconciler) Reconcile(ctx context.Context, req ctrl.Reque
110111 locked := ll .TryLock (lockCtx )
111112 if ! locked {
112113 // lock for parent prefix was not available, rescheduling
113- logger .Info (fmt .Sprintf ("failed to lock parent prefix %s" , parentPrefixName ))
114- r .Recorder .Eventf (o , corev1 .EventTypeWarning , "FailedToLockParentPrefix" , "failed to lock parent prefix %s" , parentPrefixName )
114+ logger .Info (fmt .Sprintf ("failed to lock parent prefix %s" , o .Spec .ParentPrefix ))
115+ r .Recorder .Eventf (o , corev1 .EventTypeWarning , "FailedToLockParentPrefix" , "failed to lock parent prefix %s" ,
116+ o .Spec .ParentPrefix )
115117 return ctrl.Result {
116118 RequeueAfter : 2 * time .Second ,
117119 }, nil
118120 }
119- debugLogger .Info (fmt .Sprintf ("successfully locked parent prefix %s" , parentPrefixName ))
121+ debugLogger .Info (fmt .Sprintf ("successfully locked parent prefix %s" , o . Spec . ParentPrefix ))
120122
121123 // 4. try to reclaim ip address
122124 h := generateIpAddressRestorationHash (o )
123125 ipAddressModel , err := r .NetboxClient .RestoreExistingIpByHash (config .GetOperatorConfig ().NetboxRestorationHashFieldName , h )
124126 if err != nil {
127+ if setConditionErr := r .SetConditionAndCreateEvent (ctx , o , netboxv1 .ConditionIpAssignedFalse , corev1 .EventTypeWarning , err .Error ()); setConditionErr != nil {
128+ return ctrl.Result {}, fmt .Errorf ("error updating status: %w, looking up ip by hash failed: %w" , setConditionErr , err )
129+ }
125130 return ctrl.Result {}, err
126131 }
127- // TODO: set condition for each error
128132
129133 if ipAddressModel == nil {
130134 // ip address cannot be restored from netbox
@@ -137,6 +141,9 @@ func (r *IpAddressClaimReconciler) Reconcile(ctx context.Context, req ctrl.Reque
137141 },
138142 })
139143 if err != nil {
144+ if setConditionErr := r .SetConditionAndCreateEvent (ctx , o , netboxv1 .ConditionIpAssignedFalse , corev1 .EventTypeWarning , err .Error ()); setConditionErr != nil {
145+ return ctrl.Result {}, fmt .Errorf ("error updating status: %w, when assignment of ip address failed: %w" , setConditionErr , err )
146+ }
140147 return ctrl.Result {}, err
141148 }
142149 debugLogger .Info (fmt .Sprintf ("ip address is not reserved in netbox, assignined new ip address: %s" , ipAddressModel .IpAddress ))
0 commit comments