metasync: Error on invalid conflict resolution

This commit is contained in:
Markus Unterwaditzer 2016-10-04 18:41:21 +02:00
parent 471882fc5e
commit 1c030d40ac

View file

@ -28,12 +28,18 @@ def metasync(storage_a, storage_b, status, keys, conflict_resolution=None):
def _resolve_conflict():
if a == b:
status[key] = a
elif conflict_resolution is None:
raise MetaSyncConflict(key=key)
elif conflict_resolution == 'a wins':
_a_to_b()
elif conflict_resolution == 'b wins':
_b_to_a()
else:
if callable(conflict_resolution):
logger.warning('Custom commands don\'t work on metasync.')
elif conflict_resolution is not None:
raise exceptions.UserError(
'Invalid conflict resolution setting.'
)
raise MetaSyncConflict(key)
for key in keys:
a = storage_a.get_meta(key)