From 66bea58fd25d64f35e5f4e024796a648f0215b21 Mon Sep 17 00:00:00 2001 From: Daira Hopwood Date: Tue, 28 Apr 2015 21:06:54 +0100 Subject: [PATCH] Add ignore count to uploaded callback. Signed-off-by: Daira Hopwood --- src/allmydata/frontends/drop_upload.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/allmydata/frontends/drop_upload.py b/src/allmydata/frontends/drop_upload.py index ea561d9f..1e2da41e 100644 --- a/src/allmydata/frontends/drop_upload.py +++ b/src/allmydata/frontends/drop_upload.py @@ -56,6 +56,7 @@ class DropUploader(service.MultiService): raise AssertionError("The URI in 'private/drop_upload_dircap' is not a writecap to a directory.") self._uploaded_callback = lambda ign: None + self._ignore_count = 0 self._notifier = inotify.INotify() if hasattr(self._notifier, 'set_pending_delay'): @@ -127,13 +128,23 @@ class DropUploader(service.MultiService): "(this is normal for temporary files): %r" % (path.path, f)) self._stats_provider.count('drop_upload.files_disappeared', 1) return None + d.addCallbacks(_succeeded, _failed) - d.addBoth(self._uploaded_callback) + d.addBoth(self._do_upload_callback) return d - def set_uploaded_callback(self, callback): - """This sets a function that will be called after a file has been uploaded.""" + def _do_upload_callback(self, res): + if self._ignore_count == 0: + self._uploaded_callback(res) + else: + self._ignore_count -= 1 + + def set_uploaded_callback(self, callback, ignore_count=0): + """ + This sets a function that will be called after a file has been uploaded. + """ self._uploaded_callback = callback + self._ignore_count = ignore_count def finish(self, for_tests=False): self._notifier.stopReading() -- 2.45.2