diff options
| author | Siddharth Ravikumar <sravik@bgsu.edu> | 2015-09-07 19:27:48 -0400 | 
|---|---|---|
| committer | Siddharth Ravikumar <sravik@bgsu.edu> | 2015-09-07 19:27:48 -0400 | 
| commit | c3b737ccb642aeec4f19e08c9c8185c63d1c7162 (patch) | |
| tree | 619226abaa6fe7e6fb2e9a20cd6056f839d91f20 | |
| parent | f62ab061a9c4e33873ade9c96c4393850138a361 (diff) | |
combox.events: plaftorm specific changes.
In NodeDirMonitor's on_moved method, when we detect that a shard is
modified, we push the info, about the shard modification, to silo from
the on_moved for the OS X platform.
| -rw-r--r-- | combox/events.py | 27 | 
1 files changed, 20 insertions, 7 deletions
| diff --git a/combox/events.py b/combox/events.py index baa4b44..d2a2b70 100644 --- a/combox/events.py +++ b/combox/events.py @@ -17,6 +17,7 @@  #   <http://www.gnu.org/licenses/>.  import os +import platform  import logging  from os import path @@ -386,13 +387,25 @@ class NodeDirMonitor(LoggingEventHandler):                  print "Okay, %s (%s) was actually modified." % (cb_filename,                                                                  event.dest_path)                  self.silo.node_rem('file_deleted', cb_filename) -                self.silo.node_set('file_modified', cb_filename) -                num = self.silo.node_get('file_modified', cb_filename) -                if num == self.num_nodes: -                    decrypt_and_glue(cb_filename, self.config) -                    # update db. -                    self.silo.update(cb_filename) -                    self.silo.node_rem('file_modified', cb_filename) +                # Next, if we're on GNU/Linux, watchdog detects that +                # the shard was modified and generates calls the +                # on_modified method. So we don't have to store +                # information in the silo about this shard being +                # modified; we do that later in the on_modified +                # method. +                # +                # But, on OS X (a.k.a Darwin), watchdog detect the +                # shard is modified and does not generate a call to +                # the on_modified method. So we store the information +                # about the modified shard here itself. +                if platform.system() == 'Darwin': +                    self.silo.node_set('file_modified', cb_filename) +                    num = self.silo.node_get('file_modified', cb_filename) +                    if num == self.num_nodes: +                        decrypt_and_glue(cb_filename, self.config) +                        # update db. +                        self.silo.update(cb_filename) +                        self.silo.node_rem('file_modified', cb_filename)              return | 
