]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: add full_status_oid() for buckets
authorCasey Bodley <cbodley@redhat.com>
Tue, 6 Oct 2020 21:59:18 +0000 (17:59 -0400)
committerCasey Bodley <cbodley@redhat.com>
Thu, 4 Feb 2021 21:11:29 +0000 (16:11 -0500)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_data_sync.cc
src/rgw/rgw_data_sync.h

index 953f20bfab3513ce0b08836a73eb4af263118bee..e2e6d31ca2f14f310eee01764da0e9bb08e14a4b 100644 (file)
@@ -48,6 +48,7 @@
 static const string datalog_sync_status_oid_prefix = "datalog.sync-status";
 static const string datalog_sync_status_shard_prefix = "datalog.sync-status.shard";
 static const string datalog_sync_full_sync_index_prefix = "data.full-sync.index";
+static const string bucket_full_status_oid_prefix = "bucket.full-sync-status";
 static const string bucket_status_oid_prefix = "bucket.sync-status";
 static const string object_status_oid_prefix = "bucket.sync-status";
 
@@ -4875,6 +4876,19 @@ std::ostream& RGWBucketPipeSyncStatusManager::gen_prefix(std::ostream& out) cons
     << " bucket:" << dest_bucket << ' ';
 }
 
+string RGWBucketPipeSyncStatusManager::full_status_oid(const rgw_zone_id& source_zone,
+                                                       const rgw_bucket& source_bucket,
+                                                       const rgw_bucket& dest_bucket)
+{
+  if (source_bucket == dest_bucket) {
+    return bucket_full_status_oid_prefix + "." + source_zone.id + ":"
+        + dest_bucket.get_key();
+  } else {
+    return bucket_full_status_oid_prefix + "." + source_zone.id + ":"
+        + dest_bucket.get_key() + ":" + source_bucket.get_key();
+  }
+}
+
 string RGWBucketPipeSyncStatusManager::inc_status_oid(const rgw_zone_id& source_zone,
                                                       const rgw_bucket_sync_pair_info& sync_pair)
 {
index 67f34b9e9e6b07d1535266f6eb3232f9015a8334..467a927d202470fb53037e0fae57a59c597ca29d 100644 (file)
@@ -725,6 +725,9 @@ public:
   map<int, rgw_bucket_shard_sync_info>& get_sync_status() { return sync_status; }
   int init_sync_status();
 
+  static string full_status_oid(const rgw_zone_id& source_zone,
+                                const rgw_bucket& source_bucket,
+                                const rgw_bucket& dest_bucket);
   static string inc_status_oid(const rgw_zone_id& source_zone,
                                const rgw_bucket_sync_pair_info& bs);
   // specific source obj sync status, can be used by sync modules