From 1f3558dab85024a52cc855dc20dddcc56378dc74 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Thu, 23 Sep 2021 08:53:11 -0400
Subject: [PATCH] Conditionally add wrap renew_lease from RIStorageServer

If RIStorageServer doesn't define it, don't try to wrap it.
---
 src/_zkapauthorizer/foolscap.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/_zkapauthorizer/foolscap.py b/src/_zkapauthorizer/foolscap.py
index 29ed94e..701a5ea 100644
--- a/src/_zkapauthorizer/foolscap.py
+++ b/src/_zkapauthorizer/foolscap.py
@@ -162,7 +162,13 @@ class RIPrivacyPassAuthorizedStorageServer(RemoteInterface):
 
     add_lease = add_passes(RIStorageServer["add_lease"])
 
-    renew_lease = add_passes(RIStorageServer["renew_lease"])
+    if "renew_lease" in RIStorageServer:
+        # Tahoe-LAFS 1.16.0 drops renew_lease from the interface.  Do likewise
+        # here, if we discover we have a version of Tahoe that has done so.
+        # If Tahoe has dropped this method then nothing in Tahoe is going to
+        # use it so it is fine if we don't define it.  We also do not use it
+        # ourselves.
+        renew_lease = add_passes(RIStorageServer["renew_lease"])
 
     get_buckets = RIStorageServer["get_buckets"]
 
-- 
GitLab