}
void cls_rgw_bucket_prepare_op(ObjectWriteOperation& o, RGWModifyOp op, const string& tag,
- const cls_rgw_obj_key& key, const string& locator, bool log_op,
- uint16_t bilog_flags, const rgw_zone_set& zones_trace)
+ const cls_rgw_obj_key& key, const string& locator)
{
rgw_cls_obj_prepare_op call;
call.op = op;
call.tag = tag;
call.key = key;
call.locator = locator;
- call.log_op = log_op;
- call.bilog_flags = bilog_flags;
- call.zones_trace = zones_trace;
bufferlist in;
encode(call, in);
o.exec(RGW_CLASS, RGW_BUCKET_PREPARE_OP, in);
const std::map<RGWObjCategory, rgw_bucket_category_stats>* dec_stats = nullptr);
void cls_rgw_bucket_prepare_op(librados::ObjectWriteOperation& o, RGWModifyOp op, const std::string& tag,
- const cls_rgw_obj_key& key, const std::string& locator, bool log_op,
- uint16_t bilog_op, const rgw_zone_set& zones_trace);
+ const cls_rgw_obj_key& key, const std::string& locator);
void cls_rgw_bucket_complete_op(librados::ObjectWriteOperation& o, RGWModifyOp op, const std::string& tag,
const rgw_bucket_entry_ver& ver,
f->dump_string("name", key.name);
f->dump_string("tag", tag);
f->dump_string("locator", locator);
- f->dump_bool("log_op", log_op);
- f->dump_int("bilog_flags", bilog_flags);
- encode_json("zones_trace", zones_trace, f);
}
void rgw_cls_obj_complete_op::generate_test_instances(list<rgw_cls_obj_complete_op*>& o)
cls_rgw_obj_key key;
std::string tag;
std::string locator;
- bool log_op;
- uint16_t bilog_flags;
- rgw_zone_set zones_trace;
+ bool log_op{false}; // i'm useless, but i'm here for compatibility
+ uint16_t bilog_flags{0}; // i'm useless, but i'm here for compatibility
+ rgw_zone_set zones_trace; // i'm useless, but i'm here for compatibility
- rgw_cls_obj_prepare_op() : op(CLS_RGW_OP_UNKNOWN), log_op(false), bilog_flags(0) {}
+ rgw_cls_obj_prepare_op() : op(CLS_RGW_OP_UNKNOWN) {}
void encode(ceph::buffer::list &bl) const {
ENCODE_START(7, 5, bl);
if (!index_op->is_prepared()) {
tracepoint(rgw_rados, prepare_enter, req_id.c_str());
- r = index_op->prepare(rctx.dpp, CLS_RGW_OP_ADD, &state->write_tag, rctx.y, log_op);
+ r = index_op->prepare(rctx.dpp, CLS_RGW_OP_ADD, &state->write_tag, rctx.y);
tracepoint(rgw_rados, prepare_exit, req_id.c_str());
if (r < 0)
return r;
}
- r = index_op.prepare(dpp, CLS_RGW_OP_DEL, &state->write_tag, y, log_op);
+ r = index_op.prepare(dpp, CLS_RGW_OP_DEL, &state->write_tag, y);
if (r < 0)
return r;
string tag;
append_rand_alpha(cct, tag, tag, 32);
state->write_tag = tag;
- r = index_op.prepare(dpp, CLS_RGW_OP_ADD, &state->write_tag, y, log_op);
+ r = index_op.prepare(dpp, CLS_RGW_OP_ADD, &state->write_tag, y);
if (r < 0)
return r;
}
int RGWRados::Bucket::UpdateIndex::prepare(const DoutPrefixProvider *dpp, RGWModifyOp op, const string *write_tag,
- optional_yield y, bool log_op)
+ optional_yield y)
{
if (blind) {
return 0;
}
}
- bool add_log = log_op && store->svc.zone->need_to_log_data();
-
int r = guard_reshard(dpp, obj, nullptr, [&](BucketShard *bs) -> int {
- return store->cls_obj_prepare_op(dpp, *bs, op, optag, obj, bilog_flags, y, zones_trace, add_log);
+ return store->cls_obj_prepare_op(dpp, *bs, op, optag, obj, y);
}, y);
if (r < 0) {
return r;
}
int RGWRados::cls_obj_prepare_op(const DoutPrefixProvider *dpp, BucketShard& bs, RGWModifyOp op, string& tag,
- rgw_obj& obj, uint16_t bilog_flags, optional_yield y, rgw_zone_set *_zones_trace,
- bool log_op)
+ rgw_obj& obj, optional_yield y)
{
const bool bitx = cct->_conf->rgw_bucket_index_transaction_instrumentation;
ldout_bitx(bitx, dpp, 10) << "ENTERING " << __func__ << ": bucket-shard=" << bs << " obj=" << obj << " tag=" << tag << " op=" << op << dendl_bitx;
ldout_bitx(bitx, dpp, 25) << "BACKTRACE: " << __func__ << ": " << ClibBackTrace(0) << dendl_bitx;
- rgw_zone_set zones_trace;
- if (_zones_trace) {
- zones_trace = *_zones_trace;
- }
- zones_trace.insert(svc.zone->get_zone().id, bs.bucket.get_key());
-
ObjectWriteOperation o;
o.assert_exists(); // bucket index shard must exist
cls_rgw_obj_key key(obj.key.get_index_key_name(), obj.key.instance);
cls_rgw_guard_bucket_resharding(o, -ERR_BUSY_RESHARDING);
- cls_rgw_bucket_prepare_op(o, op, tag, key, obj.key.get_loc(), log_op, bilog_flags, zones_trace);
+ cls_rgw_bucket_prepare_op(o, op, tag, key, obj.key.get_loc());
int ret = bs.bucket_obj.operate(dpp, std::move(o), y);
ldout_bitx(bitx, dpp, 10) << "EXITING " << __func__ << ": ret=" << ret << dendl_bitx;
return ret;
zones_trace = _zones_trace;
}
- int prepare(const DoutPrefixProvider *dpp, RGWModifyOp, const std::string *write_tag, optional_yield y, bool log_op = true);
+ int prepare(const DoutPrefixProvider *dpp, RGWModifyOp, const std::string *write_tag, optional_yield y);
int complete(const DoutPrefixProvider *dpp, int64_t poolid, uint64_t epoch, uint64_t size,
uint64_t accounted_size, const ceph::real_time& ut,
const std::string& etag, const std::string& content_type,
const DoutPrefixProvider *dpp, optional_yield y);
int cls_obj_prepare_op(const DoutPrefixProvider *dpp, BucketShard& bs, RGWModifyOp op, std::string& tag, rgw_obj& obj,
- uint16_t bilog_flags, optional_yield y, rgw_zone_set *zones_trace = nullptr, bool log_op = true);
+ optional_yield y);
int cls_obj_complete_op(BucketShard& bs, const rgw_obj& obj, RGWModifyOp op, std::string& tag, int64_t pool, uint64_t epoch,
rgw_bucket_dir_entry& ent, RGWObjCategory category, std::list<rgw_obj_index_key> *remove_objs,
uint16_t bilog_flags, rgw_zone_set *zones_trace = nullptr, bool log_op = true);
}
void index_prepare(librados::IoCtx& ioctx, const string& oid, RGWModifyOp index_op,
- const string& tag, const cls_rgw_obj_key& key, const string& loc,
- uint16_t bi_flags = 0, bool log_op = true)
+ const string& tag, const cls_rgw_obj_key& key, const string& loc)
{
ObjectWriteOperation op;
- rgw_zone_set zones_trace;
- cls_rgw_bucket_prepare_op(op, index_op, tag, key, loc, log_op, bi_flags, zones_trace);
+ cls_rgw_bucket_prepare_op(op, index_op, tag, key, loc);
ASSERT_EQ(0, ioctx.operate(oid, &op));
}
string tag = str_int("tag", i);
string loc = str_int("loc", i);
- index_prepare(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, obj, loc,
- 0 /* bi_flags */, false /* log_op */);
+ index_prepare(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, obj, loc);
rgw_bucket_dir_entry_meta meta;
meta.category = RGWObjCategory::None;
string loc = str_int("loc", i);
const string obj = str_int(p, i);
- index_prepare(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, obj, loc,
- 0 /* bi_flags */, false /* log_op */);
+ index_prepare(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, obj, loc);
index_complete(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, epoch, obj, meta,
0 /* bi_flags */, false /* log_op */);
string loc = str_int("loc", i);
const string obj = p + str_int("f", i);
- index_prepare(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, obj, loc,
- 0 /* bi_flags */, false /* log_op */);
+ index_prepare(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, obj, loc);
index_complete(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, epoch, obj, meta,
0 /* bi_flags */, false /* log_op */);
string obj = str_int(i % 4 ? "obj" : "об'єкт", i);
string tag = str_int("tag", i);
string loc = str_int("loc", i);
- index_prepare(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, obj, loc,
- RGW_BILOG_FLAG_VERSIONED_OP);
+ index_prepare(ioctx, bucket_oid, CLS_RGW_OP_ADD, tag, obj, loc);
rgw_bucket_dir_entry_meta meta;
meta.category = RGWObjCategory::None;
{
librados::ObjectWriteOperation op;
const std::string loc; // empty
- constexpr bool log_op = false;
- constexpr int flags = 0;
- rgw_zone_set zones;
- cls_rgw_bucket_prepare_op(op, type, tag, key, loc, log_op, flags, zones);
+ cls_rgw_bucket_prepare_op(op, type, tag, key, loc);
return ioctx.operate(oid, &op);
}