Changeset 0d0dd4d in trunk
- Timestamp:
- 2021-03-31T14:35:25Z (4 years ago)
- Branches:
- master
- Children:
- cf63a3a
- Parents:
- 69ece36
- Location:
- src/allmydata
- Files:
-
- 1 deleted
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/allmydata/blacklist.py ¶
r69ece36 r0d0dd4d 143 143 raise FileProhibited(self.reason) 144 144 145 def download_best_version(self , progress=None):145 def download_best_version(self): 146 146 raise FileProhibited(self.reason) 147 147 -
TabularUnified src/allmydata/dirnode.py ¶
r69ece36 r0d0dd4d 647 647 648 648 649 def add_file(self, namex, uploadable, metadata=None, overwrite=True , progress=None):649 def add_file(self, namex, uploadable, metadata=None, overwrite=True): 650 650 """I upload a file (using the given IUploadable), then attach the 651 651 resulting FileNode to the directory at the given name. I return a … … 658 658 else: 659 659 # XXX should pass reactor arg 660 d = DeferredContext(self._uploader.upload(uploadable , progress=progress))660 d = DeferredContext(self._uploader.upload(uploadable)) 661 661 d.addCallback(lambda results: 662 662 self._create_and_validate_node(results.get_uri(), None, -
TabularUnified src/allmydata/immutable/encode.py ¶
r69ece36 r0d0dd4d 91 91 class Encoder(object): 92 92 93 def __init__(self, log_parent=None, upload_status=None , progress=None):93 def __init__(self, log_parent=None, upload_status=None): 94 94 object.__init__(self) 95 95 self.uri_extension_data = {} … … 103 103 facility="tahoe.encoder", parent=log_parent) 104 104 self._aborted = False 105 self._progress = progress106 105 107 106 def __repr__(self): … … 124 123 self.log(format="file size: %(size)d", size=size) 125 124 self.file_size = size 126 if self._progress:127 self._progress.set_progress_total(self.file_size)128 125 d.addCallback(_got_size) 129 126 d.addCallback(lambda res: eu.get_all_encoding_parameters()) … … 462 459 463 460 dl = self._gather_responses(dl) 464 465 def do_progress(ign):466 done = self.segment_size * (segnum + 1)467 if self._progress:468 self._progress.set_progress(done)469 return ign470 dl.addCallback(do_progress)471 461 472 462 def _logit(res): -
TabularUnified src/allmydata/immutable/filenode.py ¶
r69ece36 r0d0dd4d 338 338 return defer.succeed(self) 339 339 340 def download_best_version(self , progress=None):340 def download_best_version(self): 341 341 """ 342 342 Download the best version of this file, returning its contents … … 344 344 file, we download and return the contents of this file. 345 345 """ 346 d = consumer.download_to_data(self , progress=progress)346 d = consumer.download_to_data(self) 347 347 return d 348 348 -
TabularUnified src/allmydata/immutable/literal.py ¶
r69ece36 r0d0dd4d 114 114 115 115 116 def download_best_version(self, progress=None): 117 if progress is not None: 118 progress.set_progress_total(len(self.u.data)) 119 progress.set_progress(len(self.u.data)) 116 def download_best_version(self): 120 117 return defer.succeed(self.u.data) 121 118 -
TabularUnified src/allmydata/immutable/offloaded.py ¶
r69ece36 r0d0dd4d 155 155 helper, storage_broker, secret_holder, 156 156 incoming_file, encoding_file, 157 log_number , progress=None):158 upload.CHKUploader.__init__(self, storage_broker, secret_holder , progress=progress)157 log_number): 158 upload.CHKUploader.__init__(self, storage_broker, secret_holder) 159 159 self._storage_index = storage_index 160 160 self._helper = helper -
TabularUnified src/allmydata/immutable/upload.py ¶
r69ece36 r0d0dd4d 49 49 IEncryptedUploadable, RIEncryptedUploadable, IUploadStatus, \ 50 50 NoServersError, InsufficientVersionError, UploadUnhappinessError, \ 51 DEFAULT_MAX_SEGMENT_SIZE, IP rogress, IPeerSelector51 DEFAULT_MAX_SEGMENT_SIZE, IPeerSelector 52 52 from allmydata.immutable import layout 53 53 … … 946 946 CHUNKSIZE = 50*1024 947 947 948 def __init__(self, original, log_parent=None, progress=None,chunk_size=None):948 def __init__(self, original, log_parent=None, chunk_size=None): 949 949 """ 950 950 :param chunk_size: The number of bytes to read from the uploadable at a … … 963 963 self._ciphertext_bytes_read = 0 964 964 self._status = None 965 self._progress = progress966 965 if chunk_size is not None: 967 966 self.CHUNKSIZE = chunk_size … … 986 985 if self._status: 987 986 self._status.set_size(size) 988 if self._progress:989 self._progress.set_progress_total(size)990 987 return size 991 988 d.addCallback(_got_size) … … 1230 1227 class CHKUploader(object): 1231 1228 1232 def __init__(self, storage_broker, secret_holder, progress=None,reactor=None):1229 def __init__(self, storage_broker, secret_holder, reactor=None): 1233 1230 # server_selector needs storage_broker and secret_holder 1234 1231 self._storage_broker = storage_broker … … 1240 1237 self._upload_status.set_helper(False) 1241 1238 self._upload_status.set_active(True) 1242 self._progress = progress1243 1239 self._reactor = reactor 1244 1240 … … 1295 1291 self._log_number, 1296 1292 self._upload_status, 1297 progress=self._progress,1298 1293 ) 1299 1294 # this just returns itself … … 1429 1424 class LiteralUploader(object): 1430 1425 1431 def __init__(self , progress=None):1426 def __init__(self): 1432 1427 self._status = s = UploadStatus() 1433 1428 s.set_storage_index(None) … … 1435 1430 s.set_progress(0, 1.0) 1436 1431 s.set_active(False) 1437 self._progress = progress1438 1432 1439 1433 def start(self, uploadable): … … 1443 1437 self._size = size 1444 1438 self._status.set_size(size) 1445 if self._progress:1446 self._progress.set_progress_total(size)1447 1439 return read_this_many_bytes(uploadable, size) 1448 1440 d.addCallback(_got_size) … … 1468 1460 self._status.set_progress(2, 1.0) 1469 1461 self._status.set_results(ur) 1470 if self._progress:1471 self._progress.set_progress(self._size)1472 1462 return ur 1473 1463 … … 1868 1858 URI_LIT_SIZE_THRESHOLD = 55 1869 1859 1870 def __init__(self, helper_furl=None, stats_provider=None, history=None , progress=None):1860 def __init__(self, helper_furl=None, stats_provider=None, history=None): 1871 1861 self._helper_furl = helper_furl 1872 1862 self.stats_provider = stats_provider … … 1874 1864 self._helper = None 1875 1865 self._all_uploads = weakref.WeakKeyDictionary() # for debugging 1876 self._progress = progress1877 1866 log.PrefixingLogMixin.__init__(self, facility="tahoe.immutable.upload") 1878 1867 service.MultiService.__init__(self) … … 1908 1897 1909 1898 1910 def upload(self, uploadable, progress=None,reactor=None):1899 def upload(self, uploadable, reactor=None): 1911 1900 """ 1912 1901 Returns a Deferred that will fire with the UploadResults instance. … … 1914 1903 assert self.parent 1915 1904 assert self.running 1916 assert progress is None or IProgress.providedBy(progress)1917 1905 1918 1906 uploadable = IUploadable(uploadable) … … 1923 1911 precondition("max_segment_size" in default_params, default_params) 1924 1912 uploadable.set_default_encoding_parameters(default_params) 1925 if progress:1926 progress.set_progress_total(size)1927 1913 1928 1914 if self.stats_provider: … … 1931 1917 1932 1918 if size <= self.URI_LIT_SIZE_THRESHOLD: 1933 uploader = LiteralUploader( progress=progress)1919 uploader = LiteralUploader() 1934 1920 return uploader.start(uploadable) 1935 1921 else: … … 1944 1930 storage_broker = self.parent.get_storage_broker() 1945 1931 secret_holder = self.parent._secret_holder 1946 uploader = CHKUploader(storage_broker, secret_holder, progress=progress,reactor=reactor)1932 uploader = CHKUploader(storage_broker, secret_holder, reactor=reactor) 1947 1933 d2.addCallback(lambda x: uploader.start(eu)) 1948 1934 -
TabularUnified src/allmydata/interfaces.py ¶
r69ece36 r0d0dd4d 734 734 735 735 736 class IProgress(Interface):737 """738 Remembers progress measured in arbitrary units. Users of these739 instances must call ``set_progress_total`` at least once before740 progress can be valid, and must use the same units for both741 ``set_progress_total`` and ``set_progress calls``.742 743 See also:744 :class:`allmydata.util.progress.PercentProgress`745 """746 747 progress = Attribute(748 "Current amount of progress (in percentage)"749 )750 751 def set_progress(value):752 """753 Sets the current amount of progress.754 755 Arbitrary units, but must match units used for756 set_progress_total.757 """758 759 def set_progress_total(value):760 """761 Sets the total amount of expected progress762 763 Arbitrary units, but must be same units as used when calling764 set_progress() on this instance)..765 """766 767 768 736 class IReadable(Interface): 769 737 """I represent a readable object -- either an immutable file, or a … … 795 763 """Return the length (in bytes) of this readable object.""" 796 764 797 def download_to_data( progress=None):765 def download_to_data(): 798 766 """Download all of the file contents. I return a Deferred that fires 799 767 with the contents as a byte string. 800 801 :param progress: None or IProgress implementer802 768 """ 803 769 … … 1107 1073 """ 1108 1074 1109 def download_best_version( progress=None):1075 def download_best_version(): 1110 1076 """Download the contents of the version that would be returned 1111 1077 by get_best_readable_version(). This is equivalent to calling 1112 1078 download_to_data() on the IReadable given by that method. 1113 1114 progress is anything that implements IProgress1115 1079 1116 1080 I return a Deferred that fires with a byte string when the file … … 1259 1223 """ 1260 1224 1261 def upload(new_contents, servermap , progress=None):1225 def upload(new_contents, servermap): 1262 1226 """Replace the contents of the file with new ones. This requires a 1263 1227 servermap that was previously updated with MODE_WRITE. … … 1280 1244 able to write the new version without incident. 1281 1245 1282 ``progress`` is either None or an IProgress provider1283 1284 1246 I return a Deferred that fires (with a PublishStatus object) when the 1285 1247 publish has completed. I will update the servermap in-place with the … … 1472 1434 efficient.""" 1473 1435 1474 def add_file(name, uploadable, metadata=None, overwrite=True , progress=None):1436 def add_file(name, uploadable, metadata=None, overwrite=True): 1475 1437 """I upload a file (using the given IUploadable), then attach the 1476 1438 resulting ImmutableFileNode to the directory at the given name. I set 1477 1439 metadata the same way as set_uri and set_node. The child name must be 1478 1440 a unicode string. 1479 1480 ``progress`` either provides IProgress or is None1481 1441 1482 1442 I return a Deferred that fires (with the IFileNode of the uploaded -
TabularUnified src/allmydata/mutable/filenode.py ¶
r69ece36 r0d0dd4d 419 419 420 420 421 def download_best_version(self , progress=None):421 def download_best_version(self): 422 422 """ 423 423 I return a Deferred that fires with the contents of the best 424 424 version of this mutable file. 425 425 """ 426 return self._do_serialized(self._download_best_version , progress=progress)427 428 429 def _download_best_version(self , progress=None):426 return self._do_serialized(self._download_best_version) 427 428 429 def _download_best_version(self): 430 430 """ 431 431 I am the serialized sibling of download_best_version. … … 433 433 d = self.get_best_readable_version() 434 434 d.addCallback(self._record_size) 435 d.addCallback(lambda version: version.download_to_data( progress=progress))435 d.addCallback(lambda version: version.download_to_data()) 436 436 437 437 # It is possible that the download will fail because there … … 448 448 d = self.get_best_mutable_version() 449 449 d.addCallback(self._record_size) 450 d.addCallback(lambda version: version.download_to_data( progress=progress))450 d.addCallback(lambda version: version.download_to_data()) 451 451 return d 452 452 … … 565 565 566 566 567 def upload(self, new_contents, servermap , progress=None):567 def upload(self, new_contents, servermap): 568 568 """ 569 569 I overwrite the contents of the best recoverable version of this … … 952 952 953 953 954 def download_to_data(self, fetch_privkey=False , progress=None): # type: ignore # fixme954 def download_to_data(self, fetch_privkey=False): # type: ignore # fixme 955 955 """ 956 956 I return a Deferred that fires with the contents of this … … 958 958 959 959 """ 960 c = consumer.MemoryConsumer( progress=progress)960 c = consumer.MemoryConsumer() 961 961 d = self.read(c, fetch_privkey=fetch_privkey) 962 962 d.addCallback(lambda mc: b"".join(mc.chunks)) -
TabularUnified src/allmydata/test/common.py ¶
r69ece36 r0d0dd4d 540 540 541 541 542 def download_to_data(self , progress=None):543 return download_to_data(self , progress=progress)542 def download_to_data(self): 543 return download_to_data(self) 544 544 545 545 … … 718 718 return d 719 719 720 def download_best_version(self , progress=None):721 return defer.succeed(self._download_best_version( progress=progress))722 723 724 def _download_best_version(self, ignored=None , progress=None):720 def download_best_version(self): 721 return defer.succeed(self._download_best_version()) 722 723 724 def _download_best_version(self, ignored=None): 725 725 if isinstance(self.my_uri, uri.LiteralFileURI): 726 726 return self.my_uri.data -
TabularUnified src/allmydata/test/test_dirnode.py ¶
r69ece36 r0d0dd4d 1593 1593 return self.uri.to_string() 1594 1594 1595 def download_best_version(self , progress=None):1595 def download_best_version(self): 1596 1596 return defer.succeed(self.data) 1597 1597 -
TabularUnified src/allmydata/util/consumer.py ¶
r69ece36 r0d0dd4d 10 10 class MemoryConsumer(object): 11 11 12 def __init__(self , progress=None):12 def __init__(self): 13 13 self.chunks = [] 14 14 self.done = False 15 self._progress = progress16 15 17 16 def registerProducer(self, p, streaming): … … 26 25 def write(self, data): 27 26 self.chunks.append(data) 28 if self._progress is not None:29 self._progress.set_progress(sum([len(c) for c in self.chunks]))30 27 31 28 def unregisterProducer(self): 32 29 self.done = True 33 30 34 def download_to_data(n, offset=0, size=None , progress=None):31 def download_to_data(n, offset=0, size=None): 35 32 """ 36 :param progress: None or an IProgress implementer33 Return Deferred that fires with results of reading from the given filenode. 37 34 """ 38 d = n.read(MemoryConsumer( progress=progress), offset, size)35 d = n.read(MemoryConsumer(), offset, size) 39 36 d.addCallback(lambda mc: b"".join(mc.chunks)) 40 37 return d
Note: See TracChangeset
for help on using the changeset viewer.