From 4463731cba1330827f727799229c1d3c2f452b40 Mon Sep 17 00:00:00 2001 From: Michel Hidalgo Date: Thu, 7 Mar 2024 12:36:19 -0300 Subject: [PATCH] Fix SpotWrapper.getLease implementation Signed-off-by: Michel Hidalgo --- spot_wrapper/wrapper.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/spot_wrapper/wrapper.py b/spot_wrapper/wrapper.py index 6a1391d..502dbb2 100644 --- a/spot_wrapper/wrapper.py +++ b/spot_wrapper/wrapper.py @@ -996,13 +996,18 @@ def takeLease(self) -> typing.Tuple[bool, typing.Optional[Lease]]: def getLease(self) -> typing.Optional[Lease]: """Get a lease for the robot and keep the lease alive automatically.""" - if not self._lease: - if self._use_take_lease: - self._lease = self._lease_client.take() - else: - self._lease = self._lease_client.acquire() - + if self._use_take_lease: + lease = self._lease_client.take() + else: + lease = self._lease_client.acquire() + have_new_lease = (self._lease is None and lease is not None) or ( + str(lease.lease_proto) != str(self._lease.lease_proto) + ) + if have_new_lease: + if self._lease_keepalive is not None: + self._lease_keepalive.shutdown() self._lease_keepalive = LeaseKeepAlive(self._lease_client) + self._lease = lease return self._lease def releaseLease(self) -> None: