diff --git a/src/_zkapauthorizer/_storage_server.py b/src/_zkapauthorizer/_storage_server.py index cd6a765434db2fee81e322c4fdf36400a61b3ca2..ffe74b8e024cd51e81d3d7ef25257e776ac42f15 100644 --- a/src/_zkapauthorizer/_storage_server.py +++ b/src/_zkapauthorizer/_storage_server.py @@ -575,7 +575,25 @@ def get_all_share_numbers(storage_server, storage_index): def get_share_sizes(storage_server, storage_index_or_slot, sharenums): """ - Get the sizes of the given share numbers for the given storage index *or* + Get sizes of the given share numbers for the given storage index *or* + slot. + + :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 ( + (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* slot. :param allmydata.storage.server.StorageServer storage_server: The storage @@ -589,16 +607,16 @@ def get_share_sizes(storage_server, storage_index_or_slot, sharenums): included in the result. Or, ``None`` to get sizes for all shares which exist. - :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 generator of tuples of (int, ShareStat) where the first element + is a share number and the second element gives stats about that share. """ stat = None for sharenum, sharepath in get_all_share_paths(storage_server, storage_index_or_slot): if stat is None: stat = get_stat(sharepath) if sharenums is None or sharenum in sharenums: - yield sharenum, stat(storage_server, storage_index_or_slot, sharepath).size + info = stat(storage_server, storage_index_or_slot, sharepath) + yield sharenum, info def get_storage_index_share_size(sharepath):