Removed unused sync method
This commit is contained in:
parent
0d8f3c6eea
commit
e9e0645416
@ -40,111 +40,6 @@ class Syncer(object):
|
|||||||
self.col = col
|
self.col = col
|
||||||
self.server = server
|
self.server = server
|
||||||
|
|
||||||
def sync(self):
|
|
||||||
"Returns 'noChanges', 'fullSync', 'success', etc"
|
|
||||||
self.syncMsg = ""
|
|
||||||
self.uname = ""
|
|
||||||
# if the deck has any pending changes, flush them first and bump mod
|
|
||||||
# time
|
|
||||||
self.col.save()
|
|
||||||
|
|
||||||
# step 1: login & metadata
|
|
||||||
meta = self.server.meta()
|
|
||||||
self.col.log("rmeta", meta)
|
|
||||||
if not meta:
|
|
||||||
return "badAuth"
|
|
||||||
# server requested abort?
|
|
||||||
self.syncMsg = meta['msg']
|
|
||||||
if not meta['cont']:
|
|
||||||
return "serverAbort"
|
|
||||||
else:
|
|
||||||
# don't abort, but if 'msg' is not blank, gui should show 'msg'
|
|
||||||
# after sync finishes and wait for confirmation before hiding
|
|
||||||
pass
|
|
||||||
rscm = meta['scm']
|
|
||||||
rts = meta['ts']
|
|
||||||
self.rmod = meta['mod']
|
|
||||||
self.maxUsn = meta['usn']
|
|
||||||
self.uname = meta.get("uname", "")
|
|
||||||
self.hostNum = meta.get("hostNum")
|
|
||||||
meta = self.meta()
|
|
||||||
self.col.log("lmeta", meta)
|
|
||||||
self.lmod = meta['mod']
|
|
||||||
self.minUsn = meta['usn']
|
|
||||||
lscm = meta['scm']
|
|
||||||
lts = meta['ts']
|
|
||||||
if abs(rts - lts) > 300:
|
|
||||||
self.col.log("clock off")
|
|
||||||
return "clockOff"
|
|
||||||
if self.lmod == self.rmod:
|
|
||||||
self.col.log("no changes")
|
|
||||||
return "noChanges"
|
|
||||||
elif lscm != rscm:
|
|
||||||
self.col.log("schema diff")
|
|
||||||
return "fullSync"
|
|
||||||
self.lnewer = self.lmod > self.rmod
|
|
||||||
# step 1.5: check collection is valid
|
|
||||||
if not self.col.basicCheck():
|
|
||||||
self.col.log("basic check")
|
|
||||||
return "basicCheckFailed"
|
|
||||||
# step 2: startup and deletions
|
|
||||||
rrem = self.server.start(minUsn=self.minUsn, lnewer=self.lnewer)
|
|
||||||
|
|
||||||
# apply deletions to server
|
|
||||||
lgraves = self.removed()
|
|
||||||
while lgraves:
|
|
||||||
gchunk, lgraves = self._gravesChunk(lgraves)
|
|
||||||
self.server.applyGraves(chunk=gchunk)
|
|
||||||
|
|
||||||
# then apply server deletions here
|
|
||||||
self.remove(rrem)
|
|
||||||
|
|
||||||
# ...and small objects
|
|
||||||
lchg = self.changes()
|
|
||||||
rchg = self.server.applyChanges(changes=lchg)
|
|
||||||
self.mergeChanges(lchg, rchg)
|
|
||||||
# step 3: stream large tables from server
|
|
||||||
while True:
|
|
||||||
chunk = self.server.chunk()
|
|
||||||
self.col.log("server chunk", chunk)
|
|
||||||
self.applyChunk(chunk=chunk)
|
|
||||||
if chunk['done']:
|
|
||||||
break
|
|
||||||
# step 4: stream to server
|
|
||||||
while True:
|
|
||||||
chunk = self.chunk()
|
|
||||||
self.col.log("client chunk", chunk)
|
|
||||||
self.server.applyChunk(chunk=chunk)
|
|
||||||
if chunk['done']:
|
|
||||||
break
|
|
||||||
# step 5: sanity check
|
|
||||||
c = self.sanityCheck()
|
|
||||||
ret = self.server.sanityCheck2(client=c)
|
|
||||||
if ret['status'] != "ok":
|
|
||||||
# roll back and force full sync
|
|
||||||
self.col.rollback()
|
|
||||||
self.col.modSchema(False)
|
|
||||||
self.col.save()
|
|
||||||
return "sanityCheckFailed"
|
|
||||||
# finalize
|
|
||||||
mod = self.server.finish()
|
|
||||||
self.finish(mod)
|
|
||||||
return "success"
|
|
||||||
|
|
||||||
def _gravesChunk(self, graves):
|
|
||||||
lim = 250
|
|
||||||
chunk = dict(notes=[], cards=[], decks=[])
|
|
||||||
for cat in "notes", "cards", "decks":
|
|
||||||
if lim and graves[cat]:
|
|
||||||
chunk[cat] = graves[cat][:lim]
|
|
||||||
graves[cat] = graves[cat][lim:]
|
|
||||||
lim -= len(chunk[cat])
|
|
||||||
|
|
||||||
# anything remaining?
|
|
||||||
if graves['notes'] or graves['cards'] or graves['decks']:
|
|
||||||
return chunk, graves
|
|
||||||
return chunk, None
|
|
||||||
|
|
||||||
def meta(self):
|
def meta(self):
|
||||||
return dict(
|
return dict(
|
||||||
mod=self.col.mod,
|
mod=self.col.mod,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user