summaryrefslogtreecommitdiffstats
path: root/combox/events.py
diff options
context:
space:
mode:
Diffstat (limited to 'combox/events.py')
-rw-r--r--combox/events.py26
1 files changed, 16 insertions, 10 deletions
diff --git a/combox/events.py b/combox/events.py
index 7026756..e15ea70 100644
--- a/combox/events.py
+++ b/combox/events.py
@@ -232,16 +232,22 @@ class NodeDirMonitor(LoggingEventHandler):
fpaths = filter(fpath_filter, self.silo.keys())
for fpath in fpaths:
- fshards = node_paths(fpath, self.config, True)
-
- for fshard in fshards:
- if not path.exists(fshard):
- # remove the file from combox directory.
- rm_path(fpath)
- print fpath, "was deleted on another computer. Removing it."
- # update silo.
- self.silo.remove(fpath)
- break
+ del_num = 0
+ fshards = node_paths(fpath, self.config, True)
+
+ for fshard in fshards:
+ if not path.exists(fshard):
+ del_num += 1
+
+ if del_num == self.num_nodes:
+ # remove the file from combox directory.
+ rm_path(fpath)
+ print fpath, "was deleted on another computer. Removing it."
+ # update silo.
+ self.silo.remove(fpath)
+ self.silo.node_rem('file_deleted', fpath)
+ elif del_num > 0:
+ self.silo.node_set('file_deleted', fpath, del_num)
for root, dirs, files in os.walk(get_nodedirs(self.config)[0]):
for f in files: