@@ -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