From 1f839fe2a64878e041c66a90aed55765bc4f730e Mon Sep 17 00:00:00 2001 From: Kay Kurokawa <kay@lbry.io> Date: Thu, 5 Oct 2017 13:59:27 -0400 Subject: [PATCH] add blob announcement information to session_status --- lbrynet/core/BlobManager.py | 9 +++++++++ lbrynet/daemon/Daemon.py | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/lbrynet/core/BlobManager.py b/lbrynet/core/BlobManager.py index 6293db4ff..91097d06e 100644 --- a/lbrynet/core/BlobManager.py +++ b/lbrynet/core/BlobManager.py @@ -88,6 +88,9 @@ class DiskBlobManager(DHTHashSupplier): def hashes_to_announce(self): return self._get_blobs_to_announce() + def count_should_announce_blobs(self): + return self._count_should_announce_blobs() + def set_should_announce(self, blob_hash, should_announce): if blob_hash in self.blobs: blob = self.blobs[blob_hash] @@ -215,6 +218,12 @@ class DiskBlobManager(DHTHashSupplier): (blob_hash,)) defer.returnValue(result[0][0]) + @rerun_if_locked + @defer.inlineCallbacks + def _count_should_announce_blobs(self): + result = yield self.db_conn.runQuery("select count(*) from blobs where should_announce=1") + defer.returnValue(result[0][0]) + @defer.inlineCallbacks def _completed_blobs(self, blobhashes_to_check): """Returns of the blobhashes_to_check, which are valid""" diff --git a/lbrynet/daemon/Daemon.py b/lbrynet/daemon/Daemon.py index 2555a5821..59e344b25 100644 --- a/lbrynet/daemon/Daemon.py +++ b/lbrynet/daemon/Daemon.py @@ -1029,6 +1029,8 @@ class Daemon(AuthJSONRPCServer): 'session_status': { 'managed_blobs': count of blobs in the blob manager, 'managed_streams': count of streams in the file manager + 'announce_queue_size': number of blobs currently queued to be announced + 'should_announce_blobs': number of blobs that should be announced } If given the dht status option: @@ -1077,9 +1079,13 @@ class Daemon(AuthJSONRPCServer): } if session_status: blobs = yield self.session.blob_manager.get_all_verified_blobs() + announce_queue_size = self.session.hash_announcer.hash_queue_size() + should_announce_blobs = yield self.session.blob_manager.count_should_announce_blobs() response['session_status'] = { 'managed_blobs': len(blobs), 'managed_streams': len(self.lbry_file_manager.lbry_files), + 'announce_queue_size': announce_queue_size, + 'should_announce_blobs': should_announce_blobs, } if dht_status: response['dht_status'] = self.session.dht_node.get_bandwidth_stats()