add blob_announce API command, to eventually replace blob_announce_all
This commit is contained in:
parent
cc7a3d3dcc
commit
4e05eac854
1 changed files with 47 additions and 0 deletions
|
@ -2351,6 +2351,53 @@ class Daemon(AuthJSONRPCServer):
|
||||||
d.addCallback(lambda r: self._render_response(r))
|
d.addCallback(lambda r: self._render_response(r))
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
@defer.inlineCallbacks
|
||||||
|
@AuthJSONRPCServer.flags(announce_all="-a")
|
||||||
|
def jsonrpc_blob_announce(self, announce_all=None, blob_hash=None,
|
||||||
|
stream_hash=None, sd_hash=None):
|
||||||
|
"""
|
||||||
|
Announce blobs to the DHT
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
blob_announce [-a] [<blob_hash> | --blob_hash=<blob_hash>]
|
||||||
|
[<stream_hash> | --stream_hash=<stream_hash>]
|
||||||
|
[<sd_hash> | --sd_hash=<sd_hash>]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-a : announce all the blobs possessed by user
|
||||||
|
<blob_hash>, --blob_hash=<blob_hash> : announce a blob, specified by blob_hash
|
||||||
|
<stream_hash>, --stream_hash=<stream_hash> : announce all blobs associated with
|
||||||
|
stream_hash
|
||||||
|
<sd_hash>, --sd_hash=<sd_hash> : announce all blobs associated with
|
||||||
|
sd_hash and the sd_hash itself
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
(bool) true if successful
|
||||||
|
"""
|
||||||
|
if announce_all:
|
||||||
|
yield self.session.blob_manager.immediate_announce_all_blobs()
|
||||||
|
elif blob_hash:
|
||||||
|
blob_hashes = [blob_hash]
|
||||||
|
yield self.session.blob_manager._immediate_announce(blob_hashes)
|
||||||
|
elif stream_hash:
|
||||||
|
blobs = yield self.get_blobs_for_stream_hash(stream_hash)
|
||||||
|
blobs = [blob for blob in blobs if blob.is_validated()]
|
||||||
|
blob_hashes = [blob.blob_hash for blob in blobs]
|
||||||
|
yield self.session.blob_manager._immediate_announce(blob_hashes)
|
||||||
|
elif sd_hash:
|
||||||
|
blobs = yield self.get_blobs_for_sd_hash(sd_hash)
|
||||||
|
blobs = [blob for blob in blobs if blob.is_validated()]
|
||||||
|
blob_hashes = [blob.blob_hash for blob in blobs]
|
||||||
|
blob_hashes.append(sd_hash)
|
||||||
|
yield self.session.blob_manager._immediate_announce(blob_hashes)
|
||||||
|
else:
|
||||||
|
raise Exception('single argument must be specified')
|
||||||
|
|
||||||
|
|
||||||
|
response = yield self._render_response(True)
|
||||||
|
defer.returnValue(response)
|
||||||
|
|
||||||
|
# TODO: This command should be deprecated in favor of blob_announce
|
||||||
def jsonrpc_blob_announce_all(self):
|
def jsonrpc_blob_announce_all(self):
|
||||||
"""
|
"""
|
||||||
Announce all blobs to the DHT
|
Announce all blobs to the DHT
|
||||||
|
|
Loading…
Reference in a new issue