if (op_ret < 0)
return;
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, nullptr, store, in_data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
}
op_ret = retry_raced_bucket_write(store->getRados(), s, [this] {
void RGWDeleteBucketTags::execute()
{
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist in_data;
- op_ret = forward_request_to_master(s, nullptr, store, in_data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist in_data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = retry_raced_bucket_write(store->getRados(), s, [this] {
if (op_ret < 0)
return;
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, nullptr, store, in_data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = retry_raced_bucket_write(store->getRados(), s, [this] {
void RGWDeleteBucketReplication::execute()
{
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist in_data;
- op_ret = forward_request_to_master(s, nullptr, store, in_data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist in_data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = retry_raced_bucket_write(store->getRados(), s, [this] {
}
}
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, NULL, store, in_data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
bool modified = mfa_set_status;
if (op_ret < 0)
return;
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, NULL, store, in_data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << " forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << " forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = retry_raced_bucket_write(store->getRados(), s, [this] {
void RGWDeleteBucketWebsite::execute()
{
+ bufferlist in_data;
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist in_data;
- op_ret = forward_request_to_master(s, nullptr, store, in_data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "NOTICE: forward_to_master failed on bucket=" << s->bucket->get_name()
- << "returned err=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "NOTICE: forward_to_master failed on bucket=" << s->bucket->get_name()
+ << "returned err=" << op_ret << dendl;
+ return;
}
op_ret = retry_raced_bucket_write(store->getRados(), s, [this] {
s->bucket->get_info().has_website = false;
return 0;
}
-int forward_request_to_master(struct req_state *s, obj_version *objv,
- rgw::sal::RGWRadosStore *store, bufferlist& in_data,
- JSONParser *jp, req_info *forward_info)
-{
- if (!store->svc()->zone->get_master_conn()) {
- ldpp_dout(s, 0) << "rest connection is invalid" << dendl;
- return -EINVAL;
- }
- ldpp_dout(s, 0) << "sending request to master zonegroup" << dendl;
- bufferlist response;
- string uid_str = s->user->get_id().to_str();
-#define MAX_REST_RESPONSE (128 * 1024) // we expect a very small response
- int ret = store->svc()->zone->get_master_conn()->forward(rgw_user(uid_str), (forward_info ? *forward_info : s->info),
- objv, MAX_REST_RESPONSE, &in_data, &response);
- if (ret < 0)
- return ret;
-
- ldpp_dout(s, 20) << "response: " << response.c_str() << dendl;
- if (jp && !jp->parse(response.c_str(), response.length())) {
- ldpp_dout(s, 0) << "failed parsing response from master zonegroup" << dendl;
- return -EINVAL;
- }
-
- return 0;
-}
-
void RGWCreateBucket::pre_exec()
{
rgw_bucket_object_pre_exec(s);
return;
}
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist in_data;
- op_ret = forward_request_to_master(s, &ot.read_version, store, in_data,
- NULL);
- if (op_ret < 0) {
- if (op_ret == -ENOENT) {
- /* adjust error, we want to return with NoSuchBucket and not
- * NoSuchKey */
- op_ret = -ERR_NO_SUCH_BUCKET;
- }
- return;
+ bufferlist in_data;
+ op_ret = store->forward_request_to_master(s->user, &ot.read_version, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ if (op_ret == -ENOENT) {
+ /* adjust error, we want to return with NoSuchBucket and not
+ * NoSuchKey */
+ op_ret = -ERR_NO_SUCH_BUCKET;
}
+ return;
}
string prefix, delimiter;
}
// forward bucket acl requests to meta master zone
- if ((rgw::sal::RGWObject::empty(s->object.get())) && !store->svc()->zone->is_meta_master()) {
+ if ((rgw::sal::RGWObject::empty(s->object.get()))) {
bufferlist in_data;
// include acl data unless it was generated from a canned_acl
if (s->canned_acl.empty()) {
in_data.append(data);
}
- op_ret = forward_request_to_master(s, NULL, store, in_data, NULL);
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
if (op_ret < 0) {
ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
return;
ldpp_dout(this, 15) << "New LifecycleConfiguration:" << ss.str() << dendl;
}
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = store->getRados()->get_lc()->set_bucket_config(s->bucket->get_info(), s->bucket_attrs, &new_config);
void RGWDeleteLC::execute()
{
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = store->getRados()->get_lc()->remove_bucket_config(s->bucket->get_info(), s->bucket_attrs);
if (op_ret < 0)
return;
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, NULL, store, in_data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = retry_raced_bucket_write(store->getRados(), s, [this] {
void RGWDeleteCORS::execute()
{
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = retry_raced_bucket_write(store->getRados(), s, [this] {
void RGWSetRequestPayment::execute()
{
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, nullptr, store, in_data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = get_params();
real_time creation_time;
obj_version objv, ep_objv, *pobjv = nullptr;
- if (! store->svc()->zone->is_meta_master()) {
+ if (! store->is_meta_master()) {
JSONParser jp;
ceph::bufferlist in_data;
req_info info = s->info;
forward_req_info(s->cct, info, bucket_name);
- op_ret = forward_request_to_master(s, nullptr, store, in_data, &jp, &info);
+ op_ret = store->forward_request_to_master(s->user, nullptr, in_data, &jp, info);
if (op_ret < 0) {
return op_ret;
}
return;
}
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, NULL, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 20) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 20) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
try {
return;
}
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, NULL, store, data, nullptr);
- if (op_ret < 0) {
- ldout(s->cct, 20) << __func__ << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldout(s->cct, 20) << __func__ << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
op_ret = retry_raced_bucket_write(store->getRados(), s, [this] {
return;
}
- if (!store->svc()->zone->is_meta_master()) {
- op_ret = forward_request_to_master(s, NULL, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
bufferlist bl;
op_state.set_placement_tags(placement_tags_list);
}
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
http_ret = RGWUserAdminOp_User::create(store, op_state, flusher);
}
op_state.set_placement_tags(placement_tags_list);
}
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
http_ret = RGWUserAdminOp_User::modify(store, op_state, flusher);
}
op_state.set_purge_data(purge_data);
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
http_ret = RGWUserAdminOp_User::remove(store, op_state, flusher, s->yield);
}
}
op_state.set_key_type(key_type);
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
http_ret = RGWUserAdminOp_Subuser::create(store, op_state, flusher);
}
}
op_state.set_key_type(key_type);
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
http_ret = RGWUserAdminOp_Subuser::modify(store, op_state, flusher);
}
if (purge_keys)
op_state.set_purge_keys();
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
http_ret = RGWUserAdminOp_Subuser::remove(store, op_state, flusher);
}
op_state.set_user_id(uid);
op_state.set_caps(caps);
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
http_ret = RGWUserAdminOp_Caps::add(store, op_state, flusher);
}
op_state.set_user_id(uid);
op_state.set_caps(caps);
- if (!store->svc()->zone->is_meta_master()) {
- bufferlist data;
- op_ret = forward_request_to_master(s, nullptr, store, data, nullptr);
- if (op_ret < 0) {
- ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
- return;
- }
+ bufferlist data;
+ op_ret = store->forward_request_to_master(s->user, nullptr, data, nullptr, s->info);
+ if (op_ret < 0) {
+ ldpp_dout(this, 0) << "forward_request_to_master returned ret=" << op_ret << dendl;
+ return;
}
http_ret = RGWUserAdminOp_Caps::remove(store, op_state, flusher);
}