]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
RGW - Make MOTR build
authorDaniel Gryniewicz <dang@redhat.com>
Fri, 5 May 2023 17:02:54 +0000 (13:02 -0400)
committerDaniel Gryniewicz <dang@redhat.com>
Fri, 5 May 2023 17:02:54 +0000 (13:02 -0400)
Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
src/rgw/rgw_sal.cc
src/rgw/rgw_sal_motr.cc
src/rgw/rgw_sal_motr.h

index 714b10abf19197fe051008fa038d102c411f3401..b69628911c1a0ab38e123b8e186811141b00ae23 100644 (file)
@@ -193,7 +193,7 @@ rgw::sal::Driver* DriverManager::init_storage_provider(const DoutPrefixProvider*
     }
     ((rgw::sal::MotrStore *)driver)->init_metadata_cache(dpp, cct);
 
-    return store;
+    return driver;
   }
 #endif
 
index f73aa7c84d86014ddfcf19e7711e939f41c11a21..a1bca8b5696d7b210d78a3210aa602fae94662e1 100644 (file)
@@ -595,8 +595,13 @@ int MotrBucket::remove_bucket(const DoutPrefixProvider *dpp, bool delete_childre
 
     for (const auto& obj : results.objs) {
       rgw_obj_key key(obj.key);
-      /* xxx dang */
-      ret = rgw_remove_object(dpp, store, this, key);
+      if (key.instance.empty()) {
+        key.instance = "null";
+      }
+
+      std::unique_ptr<rgw::sal::Object> object = get_object(key);
+
+      ret = object->delete_object(dpp, null_yield);
       if (ret < 0 && ret != -ENOENT) {
         ldpp_dout(dpp, 0) << "ERROR: remove_bucket rgw_remove_object failed rc=" << ret << dendl;
              return ret;
@@ -1143,7 +1148,7 @@ bool MotrZone::get_redirect_endpoint(std::string* endpoint)
 
 bool MotrZone::has_zonegroup_api(const std::string& api) const
 {
-  return (zonegroup->api_name == api);
+  return (zonegroup.group.api_name == api);
 }
 
 const std::string& MotrZone::get_current_period_id()
@@ -1254,7 +1259,7 @@ int MotrObject::get_obj_attrs(optional_yield y, const DoutPrefixProvider* dpp, r
   bufferlist& blr = bl;
   auto iter = blr.cbegin();
   ent.decode(iter);
-  decode(attrs, iter);
+  decode(state.attrset, iter);
 
   return 0;
 }
@@ -1267,8 +1272,8 @@ int MotrObject::modify_obj_attrs(const char* attr_name, bufferlist& attr_val, op
     return r;
   }
   set_atomic();
-  attrs[attr_name] = attr_val;
-  return set_obj_attrs(dpp, &attrs, nullptr, y);
+  state.attrset[attr_name] = attr_val;
+  return set_obj_attrs(dpp, &state.attrset, nullptr, y);
 }
 
 int MotrObject::delete_obj_attrs(const DoutPrefixProvider* dpp, const char* attr_name, optional_yield y)
@@ -2504,7 +2509,7 @@ int MotrMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct)
   string bucket_multipart_iname =
       "motr.rgw.bucket." + meta_obj->get_bucket()->get_name() + ".multiparts";
   rc = store->do_idx_op_by_name(bucket_multipart_iname,
-                                  M0_IC_GET, meta_obj->get_key().to_str(), bl);
+                                  M0_IC_GET, meta_obj->get_oid(), bl);
   if (rc < 0) {
     ldpp_dout(dpp, 0) << __func__ << ": Failed to get multipart upload. rc=" << rc << dendl;
     return rc == -ENOENT ? -ERR_NO_SUCH_UPLOAD : rc;
index df694712e203adf6d39e0c12d1a785d8e50e9cdf..153ac8abd005a526144e84b31d912975ce61ae67 100644 (file)
@@ -425,6 +425,7 @@ public:
 };
 
 class MotrZoneGroup : public StoreZoneGroup {
+protected:
   MotrStore* store;
   const RGWZoneGroup group;
   std::string empty;
@@ -474,6 +475,7 @@ public:
   virtual std::unique_ptr<ZoneGroup> clone() override {
     return std::make_unique<MotrZoneGroup>(store, group);
   }
+  friend class MotrZone;
 };
 
 class MotrZone : public StoreZone {
@@ -502,8 +504,8 @@ class MotrZone : public StoreZone {
     MotrZone(MotrStore* _store, MotrZoneGroup _zg) : store(_store), zonegroup(_zg) {
       realm = new RGWRealm();
       // TODO: fetch zonegroup params (eg. id) from provisioner config.
-      zonegroup.set_id("0956b174-fe14-4f97-8b50-bb7ec5e1cf62");
-      zonegroup.api_name = "default";
+      //zonegroup.group.set_id("0956b174-fe14-4f97-8b50-bb7ec5e1cf62");
+      //zonegroup.group.api_name = "default";
       zone_public_config = new RGWZone();
       zone_params = new RGWZoneParams();
       current_period = new RGWPeriod();