diff options
author | Victor Shyba <victor.shyba@gmail.com> | 2015-09-19 14:25:30 -0300 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2015-10-13 16:15:00 -0400 |
commit | a1906cf4e808ddf64b6117334112ada830e5eb1a (patch) | |
tree | de302bba34c74334d76100a1d3251fc0bb233e58 /client/src/leap | |
parent | ba203923cd2479fafe662c8edae56763d8babb67 (diff) |
[feat] handle DatabaseDoesNotExist during sync
This error raises while getting info on target (or server) replica. On
previous implementation there was nothing to do here, but now that we
have db creation in place this error should be handled just like u1db
original implementation.
The reason is that db creation occurs during sync exchange, but before
this we try to ask for info and the code that checks for info raises an
error that will be used to signal the client that a database will be
created and that it must save the replica uid returned by server, after
sync exchange (where we send/fetch documents).
Diffstat (limited to 'client/src/leap')
-rw-r--r-- | client/src/leap/soledad/client/sync.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/client/src/leap/soledad/client/sync.py b/client/src/leap/soledad/client/sync.py index 110baa0a..225d3e2d 100644 --- a/client/src/leap/soledad/client/sync.py +++ b/client/src/leap/soledad/client/sync.py @@ -69,9 +69,15 @@ class SoledadSynchronizer(Synchronizer): # get target identifier, its current generation, # and its last-seen database generation for this source ensure_callback = None - (self.target_replica_uid, target_gen, target_trans_id, - target_my_gen, target_my_trans_id) = yield \ - sync_target.get_sync_info(self.source._replica_uid) + try: + (self.target_replica_uid, target_gen, target_trans_id, + target_my_gen, target_my_trans_id) = yield \ + sync_target.get_sync_info(self.source._replica_uid) + except errors.DatabaseDoesNotExist: + logger.debug("Database isn't ready on server. Will be created.") + self.target_replica_uid = None + target_gen, target_trans_id = 0, '' + target_my_gen, target_my_trans_id = 0, '' logger.debug( "Soledad target sync info:\n" |