diff options
| author | Csaba Henk <csaba@redhat.com> | 2012-07-18 04:07:20 +0200 | 
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2012-07-19 10:16:12 -0700 | 
| commit | aa9f47d1729f6a7f08aef4c23d44febe498bb280 (patch) | |
| tree | 4065f3b040ead93ad42a18edcd8c80456d3c1d5b | |
| parent | de22a7760db69b82de8959d238fe444af8b387d0 (diff) | |
geo-rep / gsyncd: convert ignore-deletes to a mixin too
Change-Id: I164a1d1dd5f15569afd6806834119a6844949df0
BUG: 841062
Signed-off-by: Csaba Henk <csaba@redhat.com>
Reviewed-on: http://review.gluster.com/3684
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
| -rw-r--r-- | xlators/features/marker/utils/syncdaemon/master.py | 19 | 
1 files changed, 16 insertions, 3 deletions
diff --git a/xlators/features/marker/utils/syncdaemon/master.py b/xlators/features/marker/utils/syncdaemon/master.py index a6aeb53d..ef3816e6 100644 --- a/xlators/features/marker/utils/syncdaemon/master.py +++ b/xlators/features/marker/utils/syncdaemon/master.py @@ -60,7 +60,8 @@ def gmaster_builder():      logging.info('setting up master for %s sync mode' % modemixin)      modemixin = getattr(this, modemixin.capitalize() + 'Mixin')      sendmarkmixin = boolify(gconf.use_rsync_xattrs) and SendmarkNormalMixin or SendmarkRsyncMixin -    class _GMaster(GMasterBase, modemixin, sendmarkmixin): +    purgemixin = boolify(gconf.ignore_deletes) and PurgeNoopMixin or PurgeNormalMixin +    class _GMaster(GMasterBase, modemixin, sendmarkmixin, purgemixin):          pass      return _GMaster @@ -309,6 +310,18 @@ class SendmarkRsyncMixin(object):          pass +class PurgeNormalMixin(object): + +    def purge_missing(self, path, names): +        self.slave.server.purge(path, dd) + +class PurgeNoopMixin(object): + +    def purge_missing(self, path, names): +        pass + + +  class GMasterBase(object):      """abstract class impementling master role""" @@ -728,8 +741,8 @@ class GMasterBase(object):                  self.add_failjob(path, 'remote-entries-fail')                  return          dd = set(des) - set(dem) -        if dd and not boolify(gconf.ignore_deletes): -            self.slave.server.purge(path, dd) +        if dd: +            self.purge_missing(path, dd)          chld = []          for e in dem:              e = os.path.join(path, e)  | 
