|
4 | 4 |
|
5 | 5 | See http://www.python-ldap.org/ for project details. |
6 | 6 |
|
7 | | -$Id: syncrepl.py,v 1.3 2012/08/09 07:18:31 stroeder Exp $ |
| 7 | +$Id: syncrepl.py,v 1.4 2014/09/25 16:31:00 stroeder Exp $ |
8 | 8 | """ |
9 | 9 |
|
10 | 10 | #__all__ = [ |
@@ -330,6 +330,11 @@ def syncrepl_search(self, base, scope, mode='refreshOnly', cookie=None, **search |
330 | 330 | self.__refreshDone = False |
331 | 331 | return self.search_ext(base, scope, **search_args) |
332 | 332 |
|
| 333 | + def _syncrepl_update_refreshdone(self, newvalue): |
| 334 | + callback = newvalue and not self.__refreshDone |
| 335 | + self.__refreshDone = newvalue |
| 336 | + if callback: |
| 337 | + self.syncrepl_refreshdone() |
333 | 338 |
|
334 | 339 | def syncrepl_poll(self, msgid=-1, timeout=None, all=0): |
335 | 340 | """ |
@@ -394,12 +399,12 @@ def syncrepl_poll(self, msgid=-1, timeout=None, all=0): |
394 | 399 | self.syncrepl_present(None, refreshDeletes=False) |
395 | 400 | if 'cookie' in sim.refreshPresent: |
396 | 401 | self.syncrepl_set_cookie(sim.refreshPresent['cookie']) |
397 | | - self.__refreshDone=sim.refreshPresent['refreshDone'] |
| 402 | + self._syncrepl_update_refreshdone(sim.refreshPresent['refreshDone']) |
398 | 403 | elif sim.refreshDelete is not None: |
399 | 404 | self.syncrepl_present(None, refreshDeletes=True) |
400 | 405 | if 'cookie' in sim.refreshDelete: |
401 | 406 | self.syncrepl_set_cookie(sim.refreshDelete['cookie']) |
402 | | - self.__refreshDone=sim.refreshDelete['refreshDone'] |
| 407 | + self._syncrepl_update_refreshdone(sim.refreshDelete['refreshDone']) |
403 | 408 | elif sim.syncIdSet is not None: |
404 | 409 | if sim.syncIdSet['refreshDeletes'] is True: |
405 | 410 | self.syncrepl_delete(sim.syncIdSet['syncUUIDs']) |
@@ -467,3 +472,12 @@ def syncrepl_entry(self, dn, attrs, uuid): |
467 | 472 |
|
468 | 473 | """ |
469 | 474 | pass |
| 475 | + |
| 476 | + def syncrepl_refreshdone(self): |
| 477 | + """ |
| 478 | + Called by syncrepl_poll() between refresh and persist phase. |
| 479 | +
|
| 480 | + It indicates that initial synchronization is done and persist phase |
| 481 | + follows. |
| 482 | + """ |
| 483 | + pass |
0 commit comments