]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw/rados: RGWTopicMetadataHandler doesn't depend on RGWPubSub
authorCasey Bodley <cbodley@redhat.com>
Sun, 4 Feb 2024 19:04:11 +0000 (14:04 -0500)
committerCasey Bodley <cbodley@redhat.com>
Tue, 5 Mar 2024 17:55:24 +0000 (12:55 -0500)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/services/svc_topic_rados.cc

index 9e0b75d46647b8ddcadadf5a427d74c2fba4309e..c08d688b271929bcc5330db880d8ead36d274cee 100644 (file)
@@ -135,16 +135,16 @@ int RGWTopicMetadataHandler::do_get(RGWSI_MetaBackend_Handler::Op* op,
   std::string topic_name;
   std::string tenant;
   parse_topic_entry(entry, &tenant, &topic_name);
-  RGWPubSub ps(driver, tenant,
-               &topic_svc->svc.zone->get_current_period().get_map().zonegroups);
-  int ret = ps.get_topic(dpp, topic_name, result, y, nullptr);
+  RGWObjVersionTracker objv;
+  // TODO: read metadata directly from rados, without calling through
+  // sal::Driver::read_topic_v2()
+  int ret = driver->read_topic_v2(topic_name, tenant, result, &objv, y, dpp);
   if (ret < 0) {
     return ret;
   }
   ceph::real_time mtime;
-  obj_version ver;
   RGWTopicMetadataObject* rdo =
-      new RGWTopicMetadataObject(result, ver, mtime, driver);
+      new RGWTopicMetadataObject(result, objv.read_version, mtime, driver);
   *obj = rdo;
   return 0;
 }
@@ -161,9 +161,9 @@ int RGWTopicMetadataHandler::do_remove(RGWSI_MetaBackend_Handler::Op* op,
   std::string topic_name;
   std::string tenant;
   parse_topic_entry(entry, &tenant, &topic_name);
-  RGWPubSub ps(driver, tenant,
-               &topic_svc->svc.zone->get_current_period().get_map().zonegroups);
-  return ps.remove_topic(dpp, topic_name, y);
+  // TODO: remove metadata directly from rados, without calling through
+  // sal::Driver::remove_topic_v2()
+  return driver->remove_topic_v2(topic_name, tenant, &objv_tracker, y, dpp);
 }
 
 class RGWMetadataHandlerPut_Topic : public RGWMetadataHandlerPut_SObj {
@@ -191,6 +191,8 @@ class RGWMetadataHandlerPut_Topic : public RGWMetadataHandlerPut_SObj {
       return ret;
     }
     RGWObjVersionTracker objv_tracker;
+    // TODO: write metadata directly from rados, without calling through
+    // sal::Driver::write_topic_v2()
     ret = driver->write_topic_v2(topic, &objv_tracker, y, dpp);
     if (ret < 0) {
       ldpp_dout(dpp, 1) << "ERROR: failed to write topic info: ret=" << ret