Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

Commit 63368c3

Browse files
committed
pass lease to callback
1 parent 5fec1e0 commit 63368c3

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

packages/jumpstarter/jumpstarter/client/lease.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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)

packages/jumpstarter/jumpstarter/common/utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,12 @@ def serve(root_device: Driver):
4949
PROMPT_CWD = "\\W"
5050

5151

52-
def lease_ending_handler(process: Popen, remaining_time) -> None:
52+
def lease_ending_handler(process: Popen, lease, remaining_time) -> None:
5353
"""Lease ending handler to terminate a process when lease ends.
5454
5555
Args:
5656
process: The process to terminate
57+
lease: The lease instance
5758
remaining_time: Time remaining until lease expiration
5859
"""
5960

0 commit comments

Comments
 (0)