From debe1d2f7863d9c0e3e4eb5f988d325e201c3666 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Fri, 12 Nov 2021 11:39:40 -0500
Subject: [PATCH] add some eliot logging for share size calculation

---
 src/_zkapauthorizer/_storage_server.py | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/_zkapauthorizer/_storage_server.py b/src/_zkapauthorizer/_storage_server.py
index 2f5da40..0ab68d6 100644
--- a/src/_zkapauthorizer/_storage_server.py
+++ b/src/_zkapauthorizer/_storage_server.py
@@ -39,7 +39,7 @@ from allmydata.storage.shares import get_share_file
 from allmydata.util.base32 import b2a
 from attr.validators import instance_of, provides
 from challenge_bypass_ristretto import SigningKey, TokenPreimage, VerificationSignature
-from eliot import start_action
+from eliot import start_action, log_call
 from foolscap.api import Referenceable
 from twisted.internet.defer import Deferred
 from twisted.internet.interfaces import IReactorTime
@@ -524,6 +524,10 @@ def get_all_share_numbers(storage_server, storage_index):
         yield sharenum
 
 
+@log_call(
+    action_type="zkapauthorizer:storage-server:get-share-sizes",
+    include_args=["storage_index_or_slot", "sharenums"],
+)
 def get_share_sizes(storage_server, storage_index_or_slot, sharenums):
     """
     Get sizes of the given share numbers for the given storage index *or*
@@ -531,18 +535,16 @@ def get_share_sizes(storage_server, storage_index_or_slot, sharenums):
 
     :see: ``get_share_stats``
 
-    :return: A generator of tuples of (int, int) where the first element is a
-        share number and the second element is the data size for that share
-        number.
+    :return: A list of tuples of (int, int) where the first element is a share
+        number and the second element is the data size for that share number.
     """
-    return (
+    return list(
         (sharenum, stat.size)
         for (sharenum, stat) in get_share_stats(
             storage_server, storage_index_or_slot, sharenums
         )
     )
 
-
 def get_share_stats(storage_server, storage_index_or_slot, sharenums):
     """
     Get the stats for the given share numbers for the given storage index *or*
-- 
GitLab