]> git-server-git.apps.pok.os.sepia.ceph.com Git - radosgw-agent.git/commitdiff
sync: handle modified (meta)data log api
authorJosh Durgin <josh.durgin@inktank.com>
Fri, 25 Oct 2013 20:06:07 +0000 (13:06 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Sat, 26 Oct 2013 01:31:51 +0000 (18:31 -0700)
It now returns the last marker in addition to the log entries, which
are now in a separate field.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
radosgw_agent/sync.py

index f4c8f54d670766acd4eb019736c8f94ddadd4e9c..2304db94e2ff400eb36871ccf6415c402aac5a8c 100644 (file)
@@ -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):