@@ -53,7 +53,7 @@ class Lease(ContextManagerMixin, AsyncContextManagerMixin):
5353 grpc_options : dict [str , Any ] = field (default_factory = dict )
5454 acquisition_timeout : int = field (default = 7200 ) # Timeout in seconds for lease acquisition, polled in 5s intervals
5555 exporter_name : str = field (default = "remote" , init = False ) # Populated during acquisition
56- lease_ending_callback : Callable [[timedelta ], None ] | None = field (
56+ lease_ending_callback : Callable [[Self , timedelta ], None ] | None = field (
5757 default = None , init = False
5858 ) # Called when lease is ending
5959
@@ -266,7 +266,7 @@ async def _monitor():
266266 # lease already expired, stopping monitor
267267 logger .info ("Lease {} ended at {}" .format (self .name , end_time ))
268268 if self .lease_ending_callback is not None :
269- self .lease_ending_callback (timedelta (0 ))
269+ self .lease_ending_callback (self , timedelta (0 ))
270270 break
271271 # Log once when entering the threshold window
272272 if threshold - timedelta (seconds = check_interval ) <= remain < threshold :
@@ -277,7 +277,7 @@ async def _monitor():
277277 )
278278 # Notify callback about approaching expiration
279279 if self .lease_ending_callback is not None :
280- self .lease_ending_callback (remain )
280+ self .lease_ending_callback (self , remain )
281281 await sleep (min (remain .total_seconds (), check_interval ))
282282 else :
283283 await sleep (1 )
0 commit comments