From 5caf0588941328dd938983170e01899173a6a5b7 Mon Sep 17 00:00:00 2001 From: Josh Durgin Date: Fri, 25 Oct 2013 13:06:07 -0700 Subject: [PATCH] sync: handle modified (meta)data log api It now returns the last marker in addition to the log entries, which are now in a separate field. Signed-off-by: Josh Durgin --- radosgw_agent/sync.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/radosgw_agent/sync.py b/radosgw_agent/sync.py index f4c8f54..2304db9 100644 --- a/radosgw_agent/sync.py +++ b/radosgw_agent/sync.py @@ -181,16 +181,19 @@ class IncrementalSyncer(Syncer): def get_log_entries(self, shard_num, marker): try: - log_entries = client.get_log(self.src_conn, self.type, - marker, self.max_entries, - shard_num) + result = client.get_log(self.src_conn, self.type, + marker, self.max_entries, + shard_num) + last_marker = result['marker'] + log_entries = result['entries'] if len(log_entries) == self.max_entries: log.warn('shard %d log has fallen behind - log length >= %d', shard_num) except client.NotFound: # no entries past this marker yet, but we my have retries + last_marker = '' log_entries = [] - return log_entries + return last_marker, log_entries def prepare(self): self.init_num_shards() @@ -199,9 +202,9 @@ class IncrementalSyncer(Syncer): self.shard_work = {} for shard_num in xrange(self.num_shards): marker, retries = self.get_worker_bound(shard_num) - log_entries = self.get_log_entries(shard_num, marker) - self.shard_info[shard_num] = marker + last_marker, log_entries = self.get_log_entries(shard_num, marker) self.shard_work[shard_num] = log_entries, retries + self.shard_info[shard_num] = last_marker self.prepared_at = time.time() @@ -209,7 +212,6 @@ class IncrementalSyncer(Syncer): return self.shard_work.iteritems() - class MetaSyncerInc(IncrementalSyncer): def __init__(self, *args, **kwargs): -- 2.47.3