]> 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)
committerAdam C. Emerson <aemerson@redhat.com>
Mon, 31 Jan 2022 19:43:50 +0000 (14:43 -0500)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_data_sync.cc
src/rgw/rgw_data_sync.h

index c9a909154842ee06d71df4739e58ea5b8867f807..cbda915c728633a2070789736de8961d05c73610 100644 (file)
@@ -49,6 +49,7 @@ using namespace std;
 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";
 
@@ -4882,6 +4883,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 b4e371fa835790bb6465452f285e9866ce328206..2f33a7eb0e5489b2062204b1d1311377c17341a7 100644 (file)
@@ -725,6 +725,9 @@ public:
   std::map<int, rgw_bucket_shard_sync_info>& get_sync_status() { return sync_status; }
   int init_sync_status(const DoutPrefixProvider *dpp);
 
+  static std::string full_status_oid(const rgw_zone_id& source_zone,
+                                    const rgw_bucket& source_bucket,
+                                    const rgw_bucket& dest_bucket);
   static std::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