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;
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()
bufferlist& blr = bl;
auto iter = blr.cbegin();
ent.decode(iter);
- decode(attrs, iter);
+ decode(state.attrset, iter);
return 0;
}
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)
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;
};
class MotrZoneGroup : public StoreZoneGroup {
+protected:
MotrStore* store;
const RGWZoneGroup group;
std::string empty;
virtual std::unique_ptr<ZoneGroup> clone() override {
return std::make_unique<MotrZoneGroup>(store, group);
}
+ friend class MotrZone;
};
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();