/* Custom: */
origin = orig;
- int ret = read_bucket_cors();
- if (ret < 0) {
+ op_ret = read_bucket_cors();
+ if (op_ret < 0) {
return false;
}
read_op.params.obj_size = &obj_size;
read_op.params.perr = &s->err;
- ret = read_op.prepare(&cur_ofs, &cur_end);
- if (ret < 0)
- return ret;
+ op_ret = read_op.prepare(&cur_ofs, &cur_end);
+ if (op_ret < 0)
+ return op_ret;
if (obj_size != ent.size) {
// hmm.. something wrong, object not as expected, abort!
return -EIO;
}
- ret = rgw_policy_from_attrset(s->cct, attrs, &obj_policy);
- if (ret < 0)
- return ret;
+ op_ret = rgw_policy_from_attrset(s->cct, attrs, &obj_policy);
+ if (op_ret < 0)
+ return op_ret;
if (!verify_object_permission(s, bucket_policy, &obj_policy, RGW_PERM_READ)) {
return -EPERM;
perfcounter->inc(l_rgw_get_b, cur_end - cur_ofs);
while (cur_ofs <= cur_end) {
bufferlist bl;
- ret = read_op.read(cur_ofs, cur_end, bl);
- if (ret < 0)
- return ret;
+ op_ret = read_op.read(cur_ofs, cur_end, bl);
+ if (op_ret < 0)
+ return op_ret;
off_t len = bl.length();
cur_ofs += len;
- ret = 0;
+ op_ret = 0; /* XXX redundant? */
perfcounter->tinc(l_rgw_get_lat,
(ceph_clock_now(s->cct) - start_time));
send_response_data(bl, 0, len);
void RGWGetObj::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
static bool object_is_expired(map<string, bufferlist>& attrs) {
RGWRados::Object op_target(store, s->bucket_info, *static_cast<RGWObjectCtx *>(s->obj_ctx), obj);
RGWRados::Object::Read read_op(&op_target);
- ret = get_params();
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
goto done_err;
- ret = init_common();
- if (ret < 0)
+ op_ret = init_common();
+ if (op_ret < 0)
goto done_err;
new_ofs = ofs;
read_op.params.obj_size = &s->obj_size;
read_op.params.perr = &s->err;
- ret = read_op.prepare(&new_ofs, &new_end);
- if (ret < 0)
+ op_ret = read_op.prepare(&new_ofs, &new_end);
+ if (op_ret < 0)
goto done_err;
attr_iter = attrs.find(RGW_ATTR_USER_MANIFEST);
if (attr_iter != attrs.end() && !skip_manifest) {
- ret = handle_user_manifest(attr_iter->second.c_str());
- if (ret < 0) {
- ldout(s->cct, 0) << "ERROR: failed to handle user manifest ret=" << ret << dendl;
+ op_ret = handle_user_manifest(attr_iter->second.c_str());
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "ERROR: failed to handle user manifest ret="
+ << op_ret << dendl;
}
return;
}
attr_iter = attrs.find(RGW_ATTR_SLO_MANIFEST);
if (attr_iter != attrs.end()) {
is_slo = true;
- ret = handle_slo_manifest(attr_iter->second);
- if (ret < 0) {
- ldout(s->cct, 0) << "ERROR: failed to handle slo manifest ret=" << ret << dendl;
+ op_ret = handle_slo_manifest(attr_iter->second);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "ERROR: failed to handle slo manifest ret=" << op_ret
+ << dendl;
goto done_err;
}
return;
/* Check whether the object has expired. Swift API documentation
* stands that we should return 404 Not Found in such case. */
if (need_object_expiration() && object_is_expired(attrs)) {
- ret = -ENOENT;
+ op_ret = -ENOENT;
goto done_err;
}
perfcounter->inc(l_rgw_get_b, end - ofs);
- ret = read_op.iterate(ofs, end, &cb);
+ op_ret = read_op.iterate(ofs, end, &cb);
perfcounter->tinc(l_rgw_get_lat,
(ceph_clock_now(s->cct) - start_time));
- if (ret < 0) {
+ if (op_ret < 0) {
goto done_err;
}
- ret = send_response_data(bl, 0, 0);
- if (ret < 0) {
+ op_ret = send_response_data(bl, 0, 0);
+ if (op_ret < 0) {
goto done_err;
}
return;
uint64_t max_buckets = s->cct->_conf->rgw_list_buckets_max_chunk;
- ret = get_params();
- if (ret < 0) {
+ op_ret = get_params();
+ if (op_ret < 0) {
goto send_end;
}
if (supports_account_metadata()) {
- ret = rgw_get_user_attrs_by_uid(store, s->user.user_id, attrs);
- if (ret < 0) {
+ op_ret = rgw_get_user_attrs_by_uid(store, s->user.user_id, attrs);
+ if (op_ret < 0) {
goto send_end;
}
}
read_count = max_buckets;
}
- ret = rgw_read_user_buckets(store, s->user.user_id, buckets,
- marker, end_marker, read_count, should_get_stats(), 0);
+ op_ret = rgw_read_user_buckets(store, s->user.user_id, buckets,
+ marker, end_marker, read_count,
+ should_get_stats(), 0);
- if (ret < 0) {
+ if (op_ret < 0) {
/* hmm.. something wrong here.. the user was authenticated, so it
should exist */
ldout(s->cct, 10) << "WARNING: failed on rgw_get_user_buckets uid=" << s->user.user_id << dendl;
do {
RGWUserBuckets buckets;
- ret = rgw_read_user_buckets(store, s->user.user_id, buckets,
- marker, string(), max_buckets, false);
- if (ret < 0) {
+ op_ret = rgw_read_user_buckets(store, s->user.user_id, buckets,
+ marker, string(), max_buckets, false);
+ if (op_ret < 0) {
/* hmm.. something wrong here.. the user was authenticated, so it
should exist */
ldout(s->cct, 10) << "WARNING: failed on rgw_get_user_buckets uid=" << s->user.user_id << dendl;
void RGWGetBucketVersioning::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWGetBucketVersioning::execute()
void RGWSetBucketVersioning::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWSetBucketVersioning::execute()
{
- ret = get_params();
-
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
return;
if (enable_versioning) {
s->bucket_info.flags |= (BUCKET_VERSIONED | BUCKET_VERSIONS_SUSPENDED);
}
- ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs);
- if (ret < 0) {
- ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << ret << dendl;
+ op_ret = store->put_bucket_instance_info(s->bucket_info, false, 0,
+ &s->bucket_attrs);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name
+ << " returned err=" << op_ret << dendl;
return;
}
}
void RGWGetBucketWebsite::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWGetBucketWebsite::execute()
{
if (!s->bucket_info.has_website) {
- ret = -ENOENT;
+ op_ret = -ENOENT;
}
}
void RGWSetBucketWebsite::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWSetBucketWebsite::execute()
{
- ret = get_params();
+ op_ret = get_params();
- if (ret < 0)
+ if (op_ret < 0)
return;
s->bucket_info.has_website = true;
s->bucket_info.website_conf = website_conf;
- ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs);
- if (ret < 0) {
- ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << ret << dendl;
+ op_ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << op_ret << dendl;
return;
}
}
void RGWDeleteBucketWebsite::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWDeleteBucketWebsite::execute()
s->bucket_info.has_website = false;
s->bucket_info.website_conf = RGWBucketWebsiteConf();
- ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs);
- if (ret < 0) {
- ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << ret << dendl;
+ op_ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << op_ret << dendl;
return;
}
}
void RGWStatBucket::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWStatBucket::execute()
bucket.bucket = s->bucket;
buckets.add(bucket);
map<string, RGWBucketEnt>& m = buckets.get_buckets();
- ret = store->update_containers_stats(m);
- if (!ret)
- ret = -EEXIST;
- if (ret > 0) {
- ret = 0;
+ op_ret = store->update_containers_stats(m);
+ if (! op_ret)
+ op_ret = -EEXIST;
+ if (op_ret > 0) {
+ op_ret = 0;
map<string, RGWBucketEnt>::iterator iter = m.find(bucket.bucket.name);
if (iter != m.end()) {
bucket = iter->second;
} else {
- ret = -EINVAL;
+ op_ret = -EINVAL;
}
}
}
void RGWListBucket::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWListBucket::execute()
{
- ret = get_params();
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
return;
if (need_container_stats()) {
map<string, RGWBucketEnt> m;
m[s->bucket.name] = RGWBucketEnt();
m.begin()->second.bucket = s->bucket;
- ret = store->update_containers_stats(m);
- if (ret > 0) {
+ op_ret = store->update_containers_stats(m);
+ if (op_ret > 0) {
bucket = m.begin()->second;
}
}
list_op.params.end_marker = end_marker;
list_op.params.list_versions = list_versions;
- ret = list_op.list_objects(max, &objs, &common_prefixes, &is_truncated);
- if (ret >= 0 && !delimiter.empty()) {
+ op_ret = list_op.list_objects(max, &objs, &common_prefixes, &is_truncated);
+ if (op_ret >= 0 && !delimiter.empty()) {
next_marker = list_op.get_next_marker();
}
}
if (s->user.max_buckets) {
RGWUserBuckets buckets;
string marker;
- int ret = rgw_read_user_buckets(store, s->user.user_id, buckets,
- marker, string(), s->user.max_buckets, false);
- if (ret < 0)
- return ret;
+ op_ret = rgw_read_user_buckets(store, s->user.user_id, buckets,
+ marker, string(), s->user.max_buckets,
+ false);
+ if (op_ret < 0)
+ return op_ret;
map<string, RGWBucketEnt>& m = buckets.get_buckets();
if (m.size() >= s->user.max_buckets) {
void RGWCreateBucket::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWCreateBucket::execute()
rgw_obj obj(store->zone.domain_root, bucket_name);
obj_version objv, *pobjv = NULL;
- ret = get_params();
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
return;
if (!store->region.is_master &&
store->region.api_name != location_constraint) {
ldout(s->cct, 0) << "location constraint (" << location_constraint << ") doesn't match region" << " (" << store->region.api_name << ")" << dendl;
- ret = -EINVAL;
+ op_ret = -EINVAL;
return;
}
/* we need to make sure we read bucket info, it's not read before for this specific request */
RGWObjectCtx& obj_ctx = *static_cast<RGWObjectCtx *>(s->obj_ctx);
- ret = store->get_bucket_info(obj_ctx, s->bucket_tenant, s->bucket_name,
- s->bucket_info, NULL, &s->bucket_attrs);
- if (ret < 0 && ret != -ENOENT)
+ op_ret = store->get_bucket_info(obj_ctx, s->bucket_tenant, s->bucket_name,
+ s->bucket_info, NULL, &s->bucket_attrs);
+ if (op_ret < 0 && op_ret != -ENOENT)
return;
- s->bucket_exists = (ret != -ENOENT);
+ s->bucket_exists = (op_ret != -ENOENT);
s->bucket_owner.set_id(s->user.user_id);
s->bucket_owner.set_name(s->user.display_name);
&old_policy, obj);
if (r >= 0) {
if (old_policy.get_owner().get_id().compare(s->user.user_id) != 0) {
- ret = -EEXIST;
+ op_ret = -EEXIST;
return;
}
}
if (!store->region.is_master) {
JSONParser jp;
- ret = forward_request_to_master(s, NULL, store, in_data, &jp);
- if (ret < 0)
+ op_ret = forward_request_to_master(s, NULL, store, in_data, &jp);
+ if (op_ret < 0)
return;
JSONDecoder::decode_json("entry_point_object_ver", ep_objv, &jp);
if (s->bucket_exists) {
string selected_placement_rule;
rgw_bucket bucket;
- ret = store->select_bucket_placement(s->user, region_name, placement_rule,
- s->bucket_tenant, s->bucket_name, bucket,
- &selected_placement_rule);
+ op_ret = store->select_bucket_placement(s->user, region_name,
+ placement_rule,
+ s->bucket_tenant, s->bucket_name,
+ bucket, &selected_placement_rule);
if (selected_placement_rule != s->bucket_info.placement_rule) {
- ret = -EEXIST;
+ op_ret = -EEXIST;
return;
}
}
}
s->bucket.tenant = s->bucket_tenant; /* ignored if bucket exists */
s->bucket.name = s->bucket_name;
- ret = store->create_bucket(s->user, s->bucket, region_name, placement_rule, attrs, info, pobjv,
- &ep_objv, creation_time, pmaster_bucket, true);
+ op_ret = store->create_bucket(s->user, s->bucket, region_name, placement_rule,
+ attrs, info, pobjv, &ep_objv, creation_time,
+ pmaster_bucket, true);
/* continue if EEXIST and create_bucket will fail below. this way we can recover
* from a partial create by retrying it. */
- ldout(s->cct, 20) << "rgw_create_bucket returned ret=" << ret << " bucket=" << s->bucket << dendl;
+ ldout(s->cct, 20) << "rgw_create_bucket returned ret=" << op_ret << " bucket=" << s->bucket << dendl;
- if (ret && ret != -EEXIST)
+ if (op_ret && op_ret != -EEXIST)
return;
- existed = (ret == -EEXIST);
+ existed = (op_ret == -EEXIST);
if (existed) {
/* bucket already existed, might have raced with another bucket creation, or
* Otherwise inform client about a name conflict.
*/
if (info.owner.compare(s->user.user_id) != 0) {
- ret = -EEXIST;
+ op_ret = -EEXIST;
return;
}
s->bucket = info.bucket;
}
- ret = rgw_link_bucket(store, s->user.user_id, s->bucket, info.creation_time, false);
- if (ret && !existed && ret != -EEXIST) { /* if it exists (or previously existed), don't remove it! */
- ret = rgw_unlink_bucket(store, s->user.user_id, s->bucket.tenant, s->bucket.name);
- if (ret < 0) {
- ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << ret << dendl;
+ op_ret = rgw_link_bucket(store, s->user.user_id, s->bucket,
+ info.creation_time, false);
+ if (op_ret && !existed && op_ret != -EEXIST) {
+ /* if it exists (or previously existed), don't remove it! */
+ op_ret = rgw_unlink_bucket(store, s->user.user_id, s->bucket.tenant,
+ s->bucket.name);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << op_ret
+ << dendl;
}
- } else if (ret == -EEXIST || (ret == 0 && existed)) {
- ret = 0;
- exist_ret = -ERR_BUCKET_EXISTS;
+ } else if (op_ret == -EEXIST || (op_ret == 0 && existed)) {
+ op_ret = -ERR_BUCKET_EXISTS;
}
}
void RGWDeleteBucket::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWDeleteBucket::execute()
{
- ret = -EINVAL;
+ op_ret = -EINVAL;
if (s->bucket_name.empty())
return;
ver = strict_strtol(ver_str.c_str(), 10, &err);
if (!err.empty()) {
ldout(s->cct, 0) << "failed to parse ver param" << dendl;
- ret = -EINVAL;
+ op_ret = -EINVAL;
return;
}
ot.read_version.ver = ver;
}
}
- ret = store->delete_bucket(s->bucket, ot);
-
- if (ret == 0) {
- ret = rgw_unlink_bucket(store, s->user.user_id, s->bucket.tenant, s->bucket.name, false);
- if (ret < 0) {
- ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << ret << dendl;
+ op_ret = store->delete_bucket(s->bucket, ot);
+ if (op_ret == 0) {
+ op_ret = rgw_unlink_bucket(store, s->user.user_id, s->bucket.tenant,
+ s->bucket.name, false);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << op_ret
+ << dendl;
}
}
- if (ret < 0) {
+ if (op_ret < 0) {
return;
}
if (!store->region.is_master) {
bufferlist in_data;
JSONParser jp;
- ret = forward_request_to_master(s, &ot.read_version, store, in_data, &jp);
- if (ret < 0) {
- if (ret == -ENOENT) { /* adjust error,
- we want to return with NoSuchBucket and not NoSuchKey */
- ret = -ERR_NO_SUCH_BUCKET;
+ op_ret = forward_request_to_master(s, &ot.read_version, store, in_data,
+ &jp);
+ 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;
}
void RGWPutObj::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
static int put_data_and_throttle(RGWPutObjProcessor *processor, bufferlist& data, off_t ofs,
perfcounter->inc(l_rgw_put);
- ret = -EINVAL;
+ op_ret = -EINVAL;
if (s->object.empty()) {
goto done;
}
- ret = get_params();
- if (ret < 0) {
- ldout(s->cct, 20) << "get_params() returned ret=" << ret << dendl;
+ op_ret = get_params();
+ if (op_ret < 0) {
+ ldout(s->cct, 20) << "get_params() returned ret=" << op_ret << dendl;
goto done;
}
- ret = get_system_versioning_params(s, &olh_epoch, &version_id);
- if (ret < 0) {
- ldout(s->cct, 20) << "get_system_versioning_params() returned ret=" \
- << ret << dendl;
+ op_ret = get_system_versioning_params(s, &olh_epoch, &version_id);
+ if (op_ret < 0) {
+ ldout(s->cct, 20) << "get_system_versioning_params() returned ret="
+ << op_ret << dendl;
goto done;
}
need_calc_md5 = true;
ldout(s->cct, 15) << "supplied_md5_b64=" << supplied_md5_b64 << dendl;
- ret = ceph_unarmor(supplied_md5_bin, &supplied_md5_bin[CEPH_CRYPTO_MD5_DIGESTSIZE + 1],
+ op_ret = ceph_unarmor(supplied_md5_bin, &supplied_md5_bin[CEPH_CRYPTO_MD5_DIGESTSIZE + 1],
supplied_md5_b64, supplied_md5_b64 + strlen(supplied_md5_b64));
- ldout(s->cct, 15) << "ceph_armor ret=" << ret << dendl;
- if (ret != CEPH_CRYPTO_MD5_DIGESTSIZE) {
- ret = -ERR_INVALID_DIGEST;
+ ldout(s->cct, 15) << "ceph_armor ret=" << op_ret << dendl;
+ if (op_ret != CEPH_CRYPTO_MD5_DIGESTSIZE) {
+ op_ret = -ERR_INVALID_DIGEST;
goto done;
}
if (!chunked_upload) { /* with chunked upload we don't know how big is the upload.
we also check sizes at the end anyway */
- ret = store->check_quota(s->bucket_owner.get_id(), s->bucket,
- user_quota, bucket_quota, s->content_length);
- if (ret < 0) {
- ldout(s->cct, 20) << "check_quota() returned ret=" << ret << dendl;
+ op_ret = store->check_quota(s->bucket_owner.get_id(), s->bucket,
+ user_quota, bucket_quota, s->content_length);
+ if (op_ret < 0) {
+ ldout(s->cct, 20) << "check_quota() returned ret=" << op_ret << dendl;
goto done;
}
}
processor = select_processor(*static_cast<RGWObjectCtx *>(s->obj_ctx), &multipart);
- ret = processor->prepare(store, NULL);
- if (ret < 0) {
- ldout(s->cct, 20) << "processor->prepare() returned ret=" << ret << dendl;
+ op_ret = processor->prepare(store, NULL);
+ if (op_ret < 0) {
+ ldout(s->cct, 20) << "processor->prepare() returned ret=" << op_ret
+ << dendl;
goto done;
}
bufferlist data;
len = get_data(data);
if (len < 0) {
- ret = len;
+ op_ret = len;
goto done;
}
if (!len)
orig_data = data;
}
- ret = put_data_and_throttle(processor, data, ofs, (need_calc_md5 ? &hash : NULL), need_to_wait);
- if (ret < 0) {
- if (!need_to_wait || ret != -EEXIST) {
- ldout(s->cct, 20) << "processor->thottle_data() returned ret=" << ret << dendl;
+ op_ret = put_data_and_throttle(processor, data, ofs,
+ (need_calc_md5 ? &hash : NULL), need_to_wait);
+ if (op_ret < 0) {
+ if (!need_to_wait || op_ret != -EEXIST) {
+ ldout(s->cct, 20) << "processor->thottle_data() returned ret="
+ << op_ret << dendl;
goto done;
}
gen_rand_alphanumeric(store->ctx(), buf, sizeof(buf) - 1);
oid_rand.append(buf);
- ret = processor->prepare(store, &oid_rand);
- if (ret < 0) {
- ldout(s->cct, 0) << "ERROR: processor->prepare() returned " << ret << dendl;
+ op_ret = processor->prepare(store, &oid_rand);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "ERROR: processor->prepare() returned "
+ << op_ret << dendl;
goto done;
}
- ret = put_data_and_throttle(processor, data, ofs, NULL, false);
- if (ret < 0) {
+ op_ret = put_data_and_throttle(processor, data, ofs, NULL, false);
+ if (op_ret < 0) {
goto done;
}
}
} while (len > 0);
if (!chunked_upload && ofs != s->content_length) {
- ret = -ERR_REQUEST_TIMEOUT;
+ op_ret = -ERR_REQUEST_TIMEOUT;
goto done;
}
s->obj_size = ofs;
perfcounter->inc(l_rgw_put_b, s->obj_size);
- ret = store->check_quota(s->bucket_owner.get_id(), s->bucket,
- user_quota, bucket_quota, s->obj_size);
- if (ret < 0) {
- ldout(s->cct, 20) << "second check_quota() returned ret=" << ret << dendl;
+ op_ret = store->check_quota(s->bucket_owner.get_id(), s->bucket,
+ user_quota, bucket_quota, s->obj_size);
+ if (op_ret < 0) {
+ ldout(s->cct, 20) << "second check_quota() returned ret=" << op_ret
+ << dendl;
goto done;
}
etag = calc_md5;
if (supplied_md5_b64 && strcmp(calc_md5, supplied_md5)) {
- ret = -ERR_BAD_DIGEST;
+ op_ret = -ERR_BAD_DIGEST;
goto done;
}
attrs[RGW_ATTR_ACL] = aclbl;
if (dlo_manifest) {
- ret = encode_dlo_manifest_attr(dlo_manifest, attrs);
- if (ret < 0) {
+ op_ret = encode_dlo_manifest_attr(dlo_manifest, attrs);
+ if (op_ret < 0) {
ldout(s->cct, 0) << "bad user manifest: " << dlo_manifest << dendl;
goto done;
}
}
if (supplied_etag && etag.compare(supplied_etag) != 0) {
- ret = -ERR_UNPROCESSABLE_ENTITY;
+ op_ret = -ERR_UNPROCESSABLE_ENTITY;
goto done;
}
bl.append(etag.c_str(), etag.size() + 1);
attrs[RGW_ATTR_ETAG] = bl;
- for (iter = s->generic_attrs.begin(); iter != s->generic_attrs.end(); ++iter) {
+ for (iter = s->generic_attrs.begin(); iter != s->generic_attrs.end();
+ ++iter) {
bufferlist& attrbl = attrs[iter->first];
const string& val = iter->second;
attrbl.append(val.c_str(), val.size() + 1);
attrs[RGW_ATTR_SLO_UINDICATOR] = slo_userindicator_bl;
}
- ret = processor->complete(etag, &mtime, 0, attrs, delete_at, if_match, if_nomatch);
+ op_ret = processor->complete(etag, &mtime, 0, attrs, delete_at, if_match,
+ if_nomatch);
done:
dispose_processor(processor);
void RGWPostObj::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWPostObj::execute()
int len = 0;
// read in the data from the POST form
- ret = get_params();
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
goto done;
- ret = verify_params();
- if (ret < 0)
+ op_ret = verify_params();
+ if (op_ret < 0)
goto done;
if (!verify_bucket_permission(s, RGW_PERM_WRITE)) {
- ret = -EACCES;
+ op_ret = -EACCES;
goto done;
}
- ret = store->check_quota(s->bucket_owner.get_id(), s->bucket,
- user_quota, bucket_quota, s->content_length);
- if (ret < 0) {
+ op_ret = store->check_quota(s->bucket_owner.get_id(), s->bucket,
+ user_quota, bucket_quota, s->content_length);
+ if (op_ret < 0) {
goto done;
}
processor = select_processor(*static_cast<RGWObjectCtx *>(s->obj_ctx));
- ret = processor->prepare(store, NULL);
- if (ret < 0)
+ op_ret = processor->prepare(store, NULL);
+ if (op_ret < 0)
goto done;
while (data_pending) {
len = get_data(data);
if (len < 0) {
- ret = len;
+ op_ret = len;
goto done;
}
if (!len)
break;
- ret = put_data_and_throttle(processor, data, ofs, &hash, false);
+ op_ret = put_data_and_throttle(processor, data, ofs, &hash, false);
ofs += len;
if (ofs > max_len) {
- ret = -ERR_TOO_LARGE;
+ op_ret = -ERR_TOO_LARGE;
goto done;
}
}
if (len < min_len) {
- ret = -ERR_TOO_SMALL;
+ op_ret = -ERR_TOO_SMALL;
goto done;
}
s->obj_size = ofs;
- ret = store->check_quota(s->bucket_owner.get_id(), s->bucket,
- user_quota, bucket_quota, s->obj_size);
- if (ret < 0) {
+ op_ret = store->check_quota(s->bucket_owner.get_id(), s->bucket,
+ user_quota, bucket_quota, s->obj_size);
+ if (op_ret < 0) {
goto done;
}
attrs[RGW_ATTR_CONTENT_TYPE] = ct_bl;
}
- ret = processor->complete(etag, NULL, 0, attrs, delete_at);
+ op_ret = processor->complete(etag, NULL, 0, attrs, delete_at);
done:
dispose_processor(processor);
}
RGWUser user;
- ret = user.init(store, user_op);
- if (ret < 0) {
- ldout(store->ctx(), 0) << "ERROR: could not init user ret=" << ret << dendl;
- return ret;
+ op_ret = user.init(store, user_op);
+ if (op_ret < 0) {
+ ldout(store->ctx(), 0) << "ERROR: could not init user ret=" << op_ret
+ << dendl;
+ return op_ret;
}
string err_msg;
- ret = user.modify(user_op, &err_msg);
- if (ret < 0) {
- ldout(store->ctx(), 10) << "user.modify() returned " << ret << ": " << err_msg << dendl;
- return ret;
+ op_ret = user.modify(user_op, &err_msg);
+ if (op_ret < 0) {
+ ldout(store->ctx(), 10) << "user.modify() returned " << op_ret << ": "
+ << err_msg << dendl;
+ return op_ret;
}
return 0;
}
map<string, bufferlist> attrs, orig_attrs, rmattrs;
RGWObjVersionTracker acct_op_tracker;
- ret = get_params();
- if (ret < 0) {
+ op_ret = get_params();
+ if (op_ret < 0) {
return;
}
filter_out_temp_url(attrs, rmattr_names, temp_url_keys);
if (!temp_url_keys.empty()) {
if (s->perm_mask != RGW_PERM_FULL_CONTROL) {
- ret = -EPERM;
+ op_ret = -EPERM;
return;
}
}
/* XXX tenant needed? */
- ret = rgw_store_user_attrs(store, s->user.user_id.id, attrs, &rmattrs, &acct_op_tracker);
- if (ret < 0) {
+ op_ret = rgw_store_user_attrs(store, s->user.user_id.id, attrs, &rmattrs,
+ &acct_op_tracker);
+ if (op_ret < 0) {
return;
}
if (!temp_url_keys.empty()) {
- ret = handle_temp_url_update(temp_url_keys);
- if (ret < 0) {
+ op_ret = handle_temp_url_update(temp_url_keys);
+ if (op_ret < 0) {
return;
}
}
void RGWPutMetadataBucket::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWPutMetadataBucket::execute()
{
map<string, bufferlist> attrs, orig_attrs, rmattrs;
- ret = get_params();
- if (ret < 0) {
+ op_ret = get_params();
+ if (op_ret < 0) {
return;
}
if (!placement_rule.empty() &&
placement_rule != s->bucket_info.placement_rule) {
- ret = -EEXIST;
+ op_ret = -EEXIST;
return;
}
attrs[RGW_ATTR_CORS] = bl;
}
- ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, &rmattrs,
- &s->bucket_info.objv_tracker);
+ op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, &rmattrs,
+ &s->bucket_info.objv_tracker);
}
int RGWPutMetadataObject::verify_permission()
void RGWPutMetadataObject::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWPutMetadataObject::execute()
store->set_atomic(s->obj_ctx, obj);
- ret = get_params();
- if (ret < 0) {
+ op_ret = get_params();
+ if (op_ret < 0) {
return;
}
rgw_get_request_metadata(s->cct, s->info, attrs);
/* check if obj exists, read orig attrs */
- ret = get_obj_attrs(store, s, obj, orig_attrs);
- if (ret < 0) {
+ op_ret = get_obj_attrs(store, s, obj, orig_attrs);
+ if (op_ret < 0) {
return;
}
/* Check whether the object has expired. Swift API documentation
* stands that we should return 404 Not Found in such case. */
if (need_object_expiration() && object_is_expired(orig_attrs)) {
- ret = -ENOENT;
+ op_ret = -ENOENT;
return;
}
encode_delete_at_attr(delete_at, attrs);
if (dlo_manifest) {
- ret = encode_dlo_manifest_attr(dlo_manifest, attrs);
- if (ret < 0) {
+ op_ret = encode_dlo_manifest_attr(dlo_manifest, attrs);
+ if (op_ret < 0) {
ldout(s->cct, 0) << "bad user manifest: " << dlo_manifest << dendl;
return;
}
}
- ret = store->set_attrs(s->obj_ctx, obj, attrs, &rmattrs, NULL);
+ op_ret = store->set_attrs(s->obj_ctx, obj, attrs, &rmattrs, NULL);
}
int RGWDeleteObj::handle_slo_manifest(bufferlist& bl)
void RGWDeleteObj::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWDeleteObj::execute()
{
- ret = -EINVAL;
+ op_ret = -EINVAL;
rgw_obj obj(s->bucket, s->object);
map<string, bufferlist> attrs;
- ret = get_params();
- if (ret < 0) {
+ op_ret = get_params();
+ if (op_ret < 0) {
return;
}
if (!s->object.empty()) {
if (need_object_expiration() || multipart_delete) {
/* check if obj exists, read orig attrs */
- ret = get_obj_attrs(store, s, obj, attrs);
- if (ret < 0) {
+ op_ret = get_obj_attrs(store, s, obj, attrs);
+ if (op_ret < 0) {
return;
}
}
const auto slo_attr = attrs.find(RGW_ATTR_SLO_MANIFEST);
if (slo_attr != attrs.end()) {
- ret = handle_slo_manifest(slo_attr->second);
- if (ret < 0) {
- ldout(s->cct, 0) << "ERROR: failed to handle slo manifest ret=" << ret << dendl;
+ op_ret = handle_slo_manifest(slo_attr->second);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "ERROR: failed to handle slo manifest ret=" << op_ret << dendl;
}
} else {
- ret = -ERR_NOT_SLO_MANIFEST;
+ op_ret = -ERR_NOT_SLO_MANIFEST;
}
return;
RGWRados::Object del_target(store, s->bucket_info, *obj_ctx, obj);
RGWRados::Object::Delete del_op(&del_target);
- ret = get_system_versioning_params(s, &del_op.params.olh_epoch, &del_op.params.marker_version_id);
- if (ret < 0) {
+ op_ret = get_system_versioning_params(s, &del_op.params.olh_epoch,
+ &del_op.params.marker_version_id);
+ if (op_ret < 0) {
return;
}
del_op.params.versioning_status = s->bucket_info.versioning_status();
del_op.params.obj_owner = s->owner;
- ret = del_op.delete_obj();
- if (ret >= 0) {
+ op_ret = del_op.delete_obj();
+ if (op_ret >= 0) {
delete_marker = del_op.result.delete_marker;
version_id = del_op.result.version_id;
}
/* Check whether the object has expired. Swift API documentation
* stands that we should return 404 Not Found in such case. */
if (need_object_expiration() && object_is_expired(attrs)) {
- ret = -ENOENT;
+ op_ret = -ENOENT;
return;
}
}
int RGWCopyObj::verify_permission()
{
RGWAccessControlPolicy src_policy(s->cct);
- ret = get_params();
- if (ret < 0)
- return ret;
+ op_ret = get_params();
+ if (op_ret < 0)
+ return op_ret;
- ret = get_system_versioning_params(s, &olh_epoch, &version_id);
- if (ret < 0) {
- return ret;
+ op_ret = get_system_versioning_params(s, &olh_epoch, &version_id);
+ if (op_ret < 0) {
+ return op_ret;
}
map<string, bufferlist> src_attrs;
RGWObjectCtx& obj_ctx = *static_cast<RGWObjectCtx *>(s->obj_ctx);
- ret = store->get_bucket_info(obj_ctx, src_tenant_name, src_bucket_name,
- src_bucket_info, NULL, &src_attrs);
- if (ret < 0)
- return ret;
+ op_ret = store->get_bucket_info(obj_ctx, src_tenant_name, src_bucket_name,
+ src_bucket_info, NULL, &src_attrs);
+ if (op_ret < 0)
+ return op_ret;
src_bucket = src_bucket_info.bucket;
store->set_prefetch_data(s->obj_ctx, src_obj);
/* check source object permissions */
- ret = read_policy(store, s, src_bucket_info, src_attrs, &src_policy, src_bucket, src_object);
- if (ret < 0)
- return ret;
+ op_ret = read_policy(store, s, src_bucket_info, src_attrs, &src_policy,
+ src_bucket, src_object);
+ if (op_ret < 0)
+ return op_ret;
if (!s->system_request && /* system request overrides permission checks */
!src_policy.verify_permission(s->user.user_id, s->perm_mask, RGW_PERM_READ))
dest_bucket_info = src_bucket_info;
dest_attrs = src_attrs;
} else {
- ret = store->get_bucket_info(obj_ctx, dest_tenant_name, dest_bucket_name,
- dest_bucket_info, NULL, &dest_attrs);
- if (ret < 0)
- return ret;
+ op_ret = store->get_bucket_info(obj_ctx, dest_tenant_name, dest_bucket_name,
+ dest_bucket_info, NULL, &dest_attrs);
+ if (op_ret < 0)
+ return op_ret;
}
dest_bucket = dest_bucket_info.bucket;
rgw_obj_key no_obj;
/* check dest bucket permissions */
- ret = read_policy(store, s, dest_bucket_info, dest_attrs, &dest_bucket_policy, dest_bucket, no_obj);
- if (ret < 0)
- return ret;
+ op_ret = read_policy(store, s, dest_bucket_info, dest_attrs,
+ &dest_bucket_policy, dest_bucket, no_obj);
+ if (op_ret < 0)
+ return op_ret;
if (!s->system_request && /* system request overrides permission checks */
!dest_bucket_policy.verify_permission(s->user.user_id, s->perm_mask, RGW_PERM_WRITE))
return -EACCES;
- ret = init_dest_policy();
- if (ret < 0)
- return ret;
+ op_ret = init_dest_policy();
+ if (op_ret < 0)
+ return op_ret;
return 0;
}
{
if (if_mod) {
if (parse_time(if_mod, &mod_time) < 0) {
- ret = -EINVAL;
- return ret;
+ op_ret = -EINVAL;
+ return op_ret;
}
mod_ptr = &mod_time;
}
if (if_unmod) {
if (parse_time(if_unmod, &unmod_time) < 0) {
- ret = -EINVAL;
- return ret;
+ op_ret = -EINVAL;
+ return op_ret;
}
unmod_ptr = &unmod_time;
}
void RGWCopyObj::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWCopyObj::execute()
encode_delete_at_attr(delete_at, attrs);
- ret = store->copy_obj(obj_ctx,
- s->user.user_id,
- client_id,
- op_id,
- &s->info,
- source_zone,
- dst_obj,
- src_obj,
- dest_bucket_info,
- src_bucket_info,
- &src_mtime,
- &mtime,
- mod_ptr,
- unmod_ptr,
- if_match,
- if_nomatch,
- attrs_mod,
- attrs, RGW_OBJ_CATEGORY_MAIN,
- olh_epoch,
- delete_at,
- (version_id.empty() ? NULL : &version_id),
- &s->req_id, /* use req_id as tag */
- &etag,
- &s->err,
- copy_obj_progress_cb, (void *)this
- );
+ op_ret = store->copy_obj(obj_ctx,
+ s->user.user_id,
+ client_id,
+ op_id,
+ &s->info,
+ source_zone,
+ dst_obj,
+ src_obj,
+ dest_bucket_info,
+ src_bucket_info,
+ &src_mtime,
+ &mtime,
+ mod_ptr,
+ unmod_ptr,
+ if_match,
+ if_nomatch,
+ attrs_mod,
+ attrs, RGW_OBJ_CATEGORY_MAIN,
+ olh_epoch,
+ delete_at,
+ (version_id.empty() ? NULL : &version_id),
+ &s->req_id, /* use req_id as tag */
+ &etag,
+ &s->err,
+ copy_obj_progress_cb, (void *)this
+ );
}
int RGWGetACLs::verify_permission()
void RGWGetACLs::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWGetACLs::execute()
void RGWPutACLs::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWPutACLs::execute()
char *new_data = NULL;
rgw_obj obj;
- ret = 0;
+ op_ret = 0; /* XXX redundant? */
if (!parser.init()) {
- ret = -EINVAL;
+ op_ret = -EINVAL;
return;
}
owner = existing_policy->get_owner();
- ret = get_params();
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
return;
ldout(s->cct, 15) << "read len=" << len << " data=" << (data ? data : "") << dendl;
if (!s->canned_acl.empty() && len) {
- ret = -EINVAL;
+ op_ret = -EINVAL;
return;
}
if (!s->canned_acl.empty() || s->has_acl_header) {
- ret = get_policy_from_state(store, s, ss);
- if (ret < 0)
+ op_ret = get_policy_from_state(store, s, ss);
+ if (op_ret < 0)
return;
new_data = strdup(ss.str().c_str());
}
if (!parser.parse(data, len, 1)) {
- ret = -EACCES;
+ op_ret = -EACCES;
return;
}
policy = static_cast<RGWAccessControlPolicy_S3 *>(parser.find_first("AccessControlPolicy"));
if (!policy) {
- ret = -EINVAL;
+ op_ret = -EINVAL;
return;
}
*_dout << dendl;
}
- ret = policy->rebuild(store, &owner, new_policy);
- if (ret < 0)
+ op_ret = policy->rebuild(store, &owner, new_policy);
+ if (op_ret < 0)
return;
if (s->cct->_conf->subsys.should_gather(ceph_subsys_rgw, 15)) {
store->set_atomic(s->obj_ctx, obj);
if (!s->object.empty()) {
- ret = get_obj_attrs(store, s, obj, attrs);
- if (ret < 0)
+ op_ret = get_obj_attrs(store, s, obj, attrs);
+ if (op_ret < 0)
return;
}
attrs[RGW_ATTR_ACL] = bl;
if (!s->object.empty()) {
- ret = store->set_attrs(s->obj_ctx, obj, attrs, NULL, ptracker);
+ op_ret = store->set_attrs(s->obj_ctx, obj, attrs, NULL, ptracker);
} else {
- ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, NULL, ptracker);
+ op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, NULL, ptracker);
}
}
void RGWGetCORS::execute()
{
- ret = read_bucket_cors();
- if (ret < 0)
+ op_ret = read_bucket_cors();
+ if (op_ret < 0)
return ;
if (!cors_exist) {
dout(2) << "No CORS configuration set yet for this bucket" << dendl;
- ret = -ENOENT;
+ op_ret = -ENOENT;
return;
}
}
{
rgw_obj obj;
- ret = get_params();
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
return;
RGWObjVersionTracker *ptracker = (!s->object.empty() ? NULL : &s->bucket_info.objv_tracker);
if (is_object_op) {
store->get_bucket_instance_obj(s->bucket, obj);
store->set_atomic(s->obj_ctx, obj);
- ret = store->set_attr(s->obj_ctx, obj, RGW_ATTR_CORS, cors_bl, ptracker);
+ op_ret = store->set_attr(s->obj_ctx, obj, RGW_ATTR_CORS, cors_bl, ptracker);
} else {
map<string, bufferlist> attrs;
attrs[RGW_ATTR_CORS] = cors_bl;
- ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, NULL, ptracker);
+ op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, NULL, ptracker);
}
}
void RGWDeleteCORS::execute()
{
- ret = read_bucket_cors();
- if (ret < 0)
+ op_ret = read_bucket_cors();
+ if (op_ret < 0)
return;
bufferlist bl;
rgw_obj obj;
if (!cors_exist) {
dout(2) << "No CORS configuration set yet for this bucket" << dendl;
- ret = -ENOENT;
+ op_ret = -ENOENT;
return;
}
store->get_bucket_instance_obj(s->bucket, obj);
if (is_object_op) {
/* check if obj exists, read orig attrs */
- ret = get_obj_attrs(store, s, obj, orig_attrs);
- if (ret < 0)
+ op_ret = get_obj_attrs(store, s, obj, orig_attrs);
+ if (op_ret < 0)
return;
} else {
ptracker = (!s->object.empty() ? NULL : &s->bucket_info.objv_tracker);
- ret = get_system_obj_attrs(store, s, obj, orig_attrs, NULL, ptracker);
- if (ret < 0)
+ op_ret = get_system_obj_attrs(store, s, obj, orig_attrs, NULL, ptracker);
+ if (op_ret < 0)
return;
}
}
}
if (is_object_op) {
- ret = store->set_attrs(s->obj_ctx, obj, attrs, &rmattrs, ptracker);
+ op_ret = store->set_attrs(s->obj_ctx, obj, attrs, &rmattrs, ptracker);
} else {
- ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, &rmattrs, ptracker);
+ op_ret = rgw_bucket_set_attrs(store, s->bucket_info, attrs, &rmattrs,
+ ptracker);
}
}
void RGWOptionsCORS::execute()
{
- ret = read_bucket_cors();
- if (ret < 0)
+ op_ret = read_bucket_cors();
+ if (op_ret < 0)
return;
origin = s->info.env->get("HTTP_ORIGIN");
dout(0) <<
"Preflight request without mandatory Origin header"
<< dendl;
- ret = -EINVAL;
+ op_ret = -EINVAL;
return;
}
req_meth = s->info.env->get("HTTP_ACCESS_CONTROL_REQUEST_METHOD");
dout(0) <<
"Preflight request without mandatory Access-control-request-method header"
<< dendl;
- ret = -EINVAL;
+ op_ret = -EINVAL;
return;
}
if (!cors_exist) {
dout(2) << "No CORS configuration set yet for this bucket" << dendl;
- ret = -ENOENT;
+ op_ret = -ENOENT;
return;
}
req_hdrs = s->info.env->get("HTTP_ACCESS_CONTROL_REQUEST_HEADERS");
- ret = validate_cors_request(&bucket_cors);
+ op_ret = validate_cors_request(&bucket_cors);
if (!rule) {
origin = req_meth = NULL;
return;
void RGWGetRequestPayment::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWGetRequestPayment::execute()
void RGWSetRequestPayment::execute()
{
- ret = get_params();
+ op_ret = get_params();
- if (ret < 0)
+ if (op_ret < 0)
return;
s->bucket_info.requester_pays = requester_pays;
- ret = store->put_bucket_instance_info(s->bucket_info, false, 0, &s->bucket_attrs);
- if (ret < 0) {
- ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name << " returned err=" << ret << dendl;
+ op_ret = store->put_bucket_instance_info(s->bucket_info, false, 0,
+ &s->bucket_attrs);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "NOTICE: put_bucket_info on bucket=" << s->bucket.name
+ << " returned err=" << op_ret << dendl;
return;
}
}
void RGWInitMultipart::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWInitMultipart::execute()
if (get_params() < 0)
return;
- ret = -EINVAL;
+ op_ret = -EINVAL;
if (s->object.empty())
return;
obj_op.meta.category = RGW_OBJ_CATEGORY_MULTIMETA;
obj_op.meta.flags = PUT_OBJ_CREATE_EXCL;
- ret = obj_op.write_meta(0, attrs);
- } while (ret == -EEXIST);
+ op_ret = obj_op.write_meta(0, attrs);
+ } while (op_ret == -EEXIST);
}
-static int get_multipart_info(RGWRados *store, struct req_state *s, string& meta_oid,
- RGWAccessControlPolicy *policy, map<string, bufferlist>& attrs)
+static int get_multipart_info(RGWRados *store, struct req_state *s,
+ string& meta_oid,
+ RGWAccessControlPolicy *policy,
+ map<string, bufferlist>& attrs)
{
map<string, bufferlist>::iterator iter;
bufferlist header;
obj.init_ns(s->bucket, meta_oid, mp_ns);
obj.set_in_extra_data(true);
- int ret = get_obj_attrs(store, s, obj, attrs);
- if (ret < 0) {
- if (ret == -ENOENT) {
+ int op_ret = get_obj_attrs(store, s, obj, attrs);
+ if (op_ret < 0) {
+ if (op_ret == -ENOENT) {
return -ERR_NO_SUCH_UPLOAD;
}
- return ret;
+ return op_ret;
}
if (policy) {
void RGWCompleteMultipart::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWCompleteMultipart::execute()
uint64_t olh_epoch = 0;
string version_id;
- ret = get_params();
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
return;
- ret = get_system_versioning_params(s, &olh_epoch, &version_id);
- if (ret < 0) {
+ op_ret = get_system_versioning_params(s, &olh_epoch, &version_id);
+ if (op_ret < 0) {
return;
}
if (!data || !len) {
- ret = -ERR_MALFORMED_XML;
+ op_ret = -ERR_MALFORMED_XML;
return;
}
if (!parser.init()) {
- ret = -EIO;
+ op_ret = -EIO;
return;
}
if (!parser.parse(data, len, 1)) {
- ret = -ERR_MALFORMED_XML;
+ op_ret = -ERR_MALFORMED_XML;
return;
}
parts = static_cast<RGWMultiCompleteUpload *>(parser.find_first("CompleteMultipartUpload"));
if (!parts || parts->parts.empty()) {
- ret = -ERR_MALFORMED_XML;
+ op_ret = -ERR_MALFORMED_XML;
return;
}
- if ((int)parts->parts.size() > s->cct->_conf->rgw_multipart_part_upload_limit) {
- ret = -ERANGE;
+ if ((int)parts->parts.size() >
+ s->cct->_conf->rgw_multipart_part_upload_limit) {
+ op_ret = -ERANGE;
return;
}
meta_obj.set_in_extra_data(true);
meta_obj.index_hash_source = s->object.name;
- ret = get_obj_attrs(store, s, meta_obj, attrs);
- if (ret < 0) {
- ldout(s->cct, 0) << "ERROR: failed to get obj attrs, obj=" << meta_obj << " ret=" << ret << dendl;
+ op_ret = get_obj_attrs(store, s, meta_obj, attrs);
+ if (op_ret < 0) {
+ ldout(s->cct, 0) << "ERROR: failed to get obj attrs, obj=" << meta_obj
+ << " ret=" << op_ret << dendl;
return;
}
do {
- ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, marker, obj_parts, &marker, &truncated);
- if (ret == -ENOENT) {
- ret = -ERR_NO_SUCH_UPLOAD;
+ op_ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts,
+ marker, obj_parts, &marker, &truncated);
+ if (op_ret == -ENOENT) {
+ op_ret = -ERR_NO_SUCH_UPLOAD;
}
- if (ret < 0)
+ if (op_ret < 0)
return;
total_parts += obj_parts.size();
if (!truncated && total_parts != (int)parts->parts.size()) {
- ret = -ERR_INVALID_PART;
+ op_ret = -ERR_INVALID_PART;
return;
}
uint64_t part_size = obj_iter->second.size;
if (handled_parts < (int)parts->parts.size() - 1 &&
part_size < min_part_size) {
- ret = -ERR_TOO_SMALL;
+ op_ret = -ERR_TOO_SMALL;
return;
}
char petag[CEPH_CRYPTO_MD5_DIGESTSIZE];
if (iter->first != (int)obj_iter->first) {
- ldout(s->cct, 0) << "NOTICE: parts num mismatch: next requested: " << iter->first << " next uploaded: " << obj_iter->first << dendl;
- ret = -ERR_INVALID_PART;
+ ldout(s->cct, 0) << "NOTICE: parts num mismatch: next requested: "
+ << iter->first << " next uploaded: "
+ << obj_iter->first << dendl;
+ op_ret = -ERR_INVALID_PART;
return;
}
string part_etag = rgw_string_unquote(iter->second);
if (part_etag.compare(obj_iter->second.etag) != 0) {
- ldout(s->cct, 0) << "NOTICE: etag mismatch: part: " << iter->first << " etag: " << iter->second << dendl;
- ret = -ERR_INVALID_PART;
+ ldout(s->cct, 0) << "NOTICE: etag mismatch: part: " << iter->first
+ << " etag: " << iter->second << dendl;
+ op_ret = -ERR_INVALID_PART;
return;
}
- hex_to_buf(obj_iter->second.etag.c_str(), petag, CEPH_CRYPTO_MD5_DIGESTSIZE);
+ hex_to_buf(obj_iter->second.etag.c_str(), petag,
+ CEPH_CRYPTO_MD5_DIGESTSIZE);
hash.Update((const byte *)petag, sizeof(petag));
RGWUploadPartInfo& obj_part = obj_iter->second;
src_obj.init_ns(s->bucket, oid, mp_ns);
if (obj_part.manifest.empty()) {
- ldout(s->cct, 0) << "ERROR: empty manifest for object part: obj=" << src_obj << dendl;
- ret = -ERR_INVALID_PART;
+ ldout(s->cct, 0) << "ERROR: empty manifest for object part: obj="
+ << src_obj << dendl;
+ op_ret = -ERR_INVALID_PART;
return;
} else {
manifest.append(obj_part.manifest);
obj_op.meta.owner = s->owner.get_id();
obj_op.meta.flags = PUT_OBJ_CREATE;
- ret = obj_op.write_meta(ofs, attrs);
- if (ret < 0)
+ op_ret = obj_op.write_meta(ofs, attrs);
+ if (op_ret < 0)
return;
// remove the upload obj
- int r = store->delete_obj(*static_cast<RGWObjectCtx *>(s->obj_ctx), s->bucket_info, meta_obj, 0);
+ int r = store->delete_obj(*static_cast<RGWObjectCtx *>(s->obj_ctx),
+ s->bucket_info, meta_obj, 0);
if (r < 0) {
ldout(store->ctx(), 0) << "WARNING: failed to remove object " << meta_obj << dendl;
}
void RGWAbortMultipart::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWAbortMultipart::execute()
{
- ret = -EINVAL;
+ op_ret = -EINVAL;
string upload_id;
string meta_oid;
upload_id = s->info.args.get("uploadId");
mp.init(s->object.name, upload_id);
meta_oid = mp.get_meta();
- ret = get_multipart_info(store, s, meta_oid, NULL, attrs);
- if (ret < 0)
+ op_ret = get_multipart_info(store, s, meta_oid, NULL, attrs);
+ if (op_ret < 0)
return;
bool truncated;
list<rgw_obj_key> remove_objs;
do {
- ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, marker, obj_parts, &marker, &truncated);
- if (ret < 0)
+ op_ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts,
+ marker, obj_parts, &marker, &truncated);
+ if (op_ret < 0)
return;
- for (obj_iter = obj_parts.begin(); obj_iter != obj_parts.end(); ++obj_iter) {
+ for (obj_iter = obj_parts.begin();
+ obj_iter != obj_parts.end(); ++obj_iter) {
RGWUploadPartInfo& obj_part = obj_iter->second;
if (obj_part.manifest.empty()) {
rgw_obj obj;
obj.init_ns(s->bucket, oid, mp_ns);
obj.index_hash_source = s->object.name;
- ret = store->delete_obj(*obj_ctx, s->bucket_info, obj, 0);
- if (ret < 0 && ret != -ENOENT)
+ op_ret = store->delete_obj(*obj_ctx, s->bucket_info, obj, 0);
+ if (op_ret < 0 && op_ret != -ENOENT)
return;
} else {
store->update_gc_chain(meta_obj, obj_part.manifest, &chain);
} while (truncated);
/* use upload id as tag */
- ret = store->send_chain_to_gc(chain, upload_id , false); // do it async
- if (ret < 0) {
- ldout(store->ctx(), 5) << "gc->send_chain() returned " << ret << dendl;
+ op_ret = store->send_chain_to_gc(chain, upload_id , false); // do it async
+ if (op_ret < 0) {
+ ldout(store->ctx(), 5) << "gc->send_chain() returned " << op_ret << dendl;
return;
}
}
// and also remove the metadata obj
- ret = del_op.delete_obj();
- if (ret == -ENOENT) {
- ret = -ERR_NO_SUCH_BUCKET;
+ op_ret = del_op.delete_obj();
+ if (op_ret == -ENOENT) {
+ op_ret = -ERR_NO_SUCH_BUCKET;
}
}
void RGWListMultipart::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWListMultipart::execute()
string meta_oid;
RGWMPObj mp;
- ret = get_params();
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
return;
mp.init(s->object.name, upload_id);
meta_oid = mp.get_meta();
- ret = get_multipart_info(store, s, meta_oid, &policy, xattrs);
- if (ret < 0)
+ op_ret = get_multipart_info(store, s, meta_oid, &policy, xattrs);
+ if (op_ret < 0)
return;
- ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts, marker, parts, NULL, &truncated);
+ op_ret = list_multipart_parts(store, s, upload_id, meta_oid, max_parts,
+ marker, parts, NULL, &truncated);
}
int RGWListBucketMultiparts::verify_permission()
void RGWListBucketMultiparts::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWListBucketMultiparts::execute()
vector<RGWObjEnt> objs;
string marker_meta;
- ret = get_params();
- if (ret < 0)
+ op_ret = get_params();
+ if (op_ret < 0)
return;
if (s->prot_flags & RGW_REST_SWIFT) {
path_args = s->info.args.get("path");
if (!path_args.empty()) {
if (!delimiter.empty() || !prefix.empty()) {
- ret = -EINVAL;
+ op_ret = -EINVAL;
return;
}
prefix = path_args;
list_op.params.ns = mp_ns;
list_op.params.filter = &mp_filter;
- ret = list_op.list_objects(max_uploads, &objs, &common_prefixes, &is_truncated);
+ op_ret = list_op.list_objects(max_uploads, &objs, &common_prefixes,
+ &is_truncated);
if (!objs.empty()) {
vector<RGWObjEnt>::iterator iter;
RGWMultipartUploadEntry entry;
void RGWDeleteMultiObj::pre_exec()
{
rgw_bucket_object_pre_exec(s);
- ret = 0;
}
void RGWDeleteMultiObj::execute()
int num_processed = 0;
RGWObjectCtx *obj_ctx = static_cast<RGWObjectCtx *>(s->obj_ctx);
- ret = get_params();
- if (ret < 0) {
+ op_ret = get_params();
+ if (op_ret < 0) {
goto error;
}
if (!data) {
- ret = -EINVAL;
+ op_ret = -EINVAL;
goto error;
}
if (!parser.init()) {
- ret = -EINVAL;
+ op_ret = -EINVAL;
goto error;
}
if (!parser.parse(data, len, 1)) {
- ret = -EINVAL;
+ op_ret = -EINVAL;
goto error;
}
multi_delete = static_cast<RGWMultiDelDelete *>(parser.find_first("Delete"));
if (!multi_delete) {
- ret = -EINVAL;
+ op_ret = -EINVAL;
goto error;
}
del_op.params.versioning_status = s->bucket_info.versioning_status();
del_op.params.obj_owner = s->owner;
- ret = del_op.delete_obj();
- if (ret == -ENOENT) {
- ret = 0;
+ op_ret = del_op.delete_obj();
+ if (op_ret == -ENOENT) {
+ op_ret = 0;
}
- send_partial_response(*iter, del_op.result.delete_marker, del_op.result.version_id, ret);
+ send_partial_response(*iter, del_op.result.delete_marker,
+ del_op.result.version_id, op_ret);
}
/* set the return code to zero, errors at this point will be
dumped to the response */
- ret = 0;
+ op_ret = 0;
done:
// will likely segfault if begin_response() has not been called
rgw_obj& obj,
ACLOwner& bucket_owner /* out */)
{
- int ret = 0;
-
RGWAccessControlPolicy bacl(store->ctx());
rgw_obj_key no_obj;
- ret = read_policy(store, s, binfo, battrs, &bacl, binfo.bucket, no_obj);
+ int ret = read_policy(store, s, binfo, battrs, &bacl, binfo.bucket, no_obj);
if (ret < 0) {
return false;
}
bool RGWBulkDelete::Deleter::verify_permission(RGWBucketInfo& binfo,
map<string, bufferlist>& battrs)
{
- int ret = 0;
-
RGWAccessControlPolicy bacl(store->ctx());
rgw_obj_key no_obj;
- ret = read_policy(store, s, binfo, battrs, &bacl, binfo.bucket, no_obj);
+ int ret = read_policy(store, s, binfo, battrs, &bacl, binfo.bucket, no_obj);
if (ret < 0) {
return false;
}
bool RGWBulkDelete::Deleter::delete_single(const acct_path_t& path)
{
- int ret = 0;
auto& obj_ctx = *static_cast<RGWObjectCtx *>(s->obj_ctx);
RGWBucketInfo binfo;
map<string, bufferlist> battrs;
- ret = store->get_bucket_info(obj_ctx, s->user.user_id.tenant,
- path.bucket_name, binfo, NULL, &battrs);
+ int ret = store->get_bucket_info(obj_ctx, s->user.user_id.tenant,
+ path.bucket_name, binfo, NULL, &battrs);
if (ret < 0) {
goto binfo_fail;
}
ret = store->delete_bucket(binfo.bucket, ot);
if (0 == ret) {
- ret = rgw_unlink_bucket(store, binfo.owner, binfo.bucket.tenant, binfo.bucket.name, false);
+ ret = rgw_unlink_bucket(store, binfo.owner, binfo.bucket.tenant,
+ binfo.bucket.name, false);
if (ret < 0) {
- ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << ret << dendl;
+ ldout(s->cct, 0) << "WARNING: failed to unlink bucket: ret=" << ret
+ << dendl;
}
}
if (ret < 0) {
if (!store->region.is_master) {
bufferlist in_data;
JSONParser jp;
- ret = forward_request_to_master(s, &ot.read_version, store, in_data, &jp);
+ ret = forward_request_to_master(s, &ot.read_version, store, in_data,
+ &jp);
if (ret < 0) {
- if (ret == -ENOENT) { /* adjust error,
- we want to return with NoSuchBucket and not NoSuchKey */
+ if (ret == -ENOENT) {
+ /* adjust error, we want to return with NoSuchBucket and not
+ * NoSuchKey */
ret = -ERR_NO_SUCH_BUCKET;
}
goto delop_fail;
ldout(store->ctx(), 20) << "cannot find bucket = " << path.bucket_name << dendl;
num_unfound++;
} else {
- ldout(store->ctx(), 20) << "cannot get bucket info, ret = " << ret << dendl;
+ ldout(store->ctx(), 20) << "cannot get bucket info, ret = " << ret
+ << dendl;
fail_desc_t failed_item = {
.err = ret,
}
ret = deleter->delete_chunk(items);
- } while (!ret && is_truncated);
+ } while (!op_ret && is_truncated);
return;
}
s->redirect = string(bl.c_str(), bl.length());
s->err.http_ret = 301;
ldout(s->cct, 20) << __CEPH_ASSERT_FUNCTION << " redirectng per x-amz-website-redirect-location=" << s->redirect << dendl;
- ret = -ERR_WEBSITE_REDIRECT;
- return ret;
+ op_ret = -ERR_WEBSITE_REDIRECT;
+ return op_ret;
} else {
return RGWGetObj_ObjStore_S3::send_response_data(bl, bl_ofs, bl_len);
}
map<string, string>::iterator riter;
bufferlist metadata_bl;
- if (ret)
+ if (op_ret)
goto done;
if (sent_header)
dump_content_length(s, total_len);
dump_last_modified(s, lastmod);
- if (!ret) {
+ if (! op_ret) {
map<string, bufferlist>::iterator iter = attrs.find(RGW_ATTR_ETAG);
if (iter != attrs.end()) {
bufferlist& bl = iter->second;
}
done:
- set_req_state_err(s, (partial_content && !ret) ? STATUS_PARTIAL_CONTENT : ret);
+ set_req_state_err(s, (partial_content && !op_ret) ? STATUS_PARTIAL_CONTENT :
+ op_ret);
dump_errno(s);
sent_header = true;
send_data:
- if (get_data && !ret) {
+ if (get_data && !op_ret) {
int r = s->cio->write(bl.c_str() + bl_ofs, bl_len);
if (r < 0)
return r;
void RGWListBuckets_ObjStore_S3::send_response_begin(bool has_buckets)
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
dump_start(s);
end_header(s, NULL, "application/xml");
- if (!ret) {
+ if (! op_ret) {
list_all_buckets_start(s);
dump_owner(s, s->user.user_id, s->user.display_name);
s->formatter->open_array_section("Buckets");
marker.instance = s->info.args.get("version-id-marker");
}
max_keys = s->info.args.get("max-keys");
- ret = parse_max_keys();
- if (ret < 0) {
- return ret;
+ op_ret = parse_max_keys();
+ if (op_ret < 0) {
+ return op_ret;
}
delimiter = s->info.args.get("delimiter");
encoding_type = s->info.args.get("encoding-type");
if (strcasecmp(encoding_type.c_str(), "url") == 0)
encode_key = true;
- if (ret >= 0) {
+ if (op_ret >= 0) {
vector<RGWObjEnt>::iterator iter;
for (iter = objs.begin(); iter != objs.end(); ++iter) {
time_t mtime = iter->mtime.sec();
void RGWListBucket_ObjStore_S3::send_response()
{
- if (ret < 0)
- set_req_state_err(s, ret);
+ if (op_ret < 0)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this, "application/xml");
dump_start(s);
- if (ret < 0)
+ if (op_ret < 0)
return;
if (list_versions) {
if (strcasecmp(encoding_type.c_str(), "url") == 0)
encode_key = true;
- if (ret >= 0) {
+ if (op_ret >= 0) {
vector<RGWObjEnt>::iterator iter;
for (iter = objs.begin(); iter != objs.end(); ++iter) {
s->formatter->open_array_section("Contents");
void RGWSetBucketVersioning_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s);
}
void RGWSetBucketWebsite_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret < 0)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s);
}
void RGWDeleteBucketWebsite_ObjStore_S3::send_response()
{
- if (!ret) {
- ret = STATUS_NO_CONTENT;
+ if (op_ret == 0) {
+ op_ret = STATUS_NO_CONTENT;
}
- set_req_state_err(s, ret);
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s);
}
void RGWGetBucketWebsite_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this, "application/xml");
dump_start(s);
- if (ret < 0) {
+ if (op_ret < 0) {
return;
}
void RGWStatBucket_ObjStore_S3::send_response()
{
- if (ret >= 0) {
+ if (op_ret >= 0) {
dump_bucket_metadata(s, bucket);
}
- set_req_state_err(s, ret);
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this);
int len = 0;
char *data;
#define CREATE_BUCKET_MAX_REQ_LEN (512 * 1024) /* this is way more than enough */
- ret = rgw_rest_read_all_input(s, &data, &len, CREATE_BUCKET_MAX_REQ_LEN);
- if ((ret < 0) && (ret != -ERR_LENGTH_REQUIRED))
- return ret;
+ op_ret = rgw_rest_read_all_input(s, &data, &len, CREATE_BUCKET_MAX_REQ_LEN);
+ if ((op_ret < 0) && (op_ret != -ERR_LENGTH_REQUIRED))
+ return op_ret;
bufferptr in_ptr(data, len);
in_data.append(in_ptr);
void RGWCreateBucket_ObjStore_S3::send_response()
{
- if (ret == -ERR_BUCKET_EXISTS)
- ret = 0;
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret == -ERR_BUCKET_EXISTS)
+ op_ret = 0;
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s);
- if (ret < 0)
+ if (op_ret < 0)
return;
if (s->system_request) {
void RGWDeleteBucket_ObjStore_S3::send_response()
{
- int r = ret;
+ int r = op_ret;
if (!r)
r = STATUS_NO_CONTENT;
void RGWPutObj_ObjStore_S3::send_response()
{
- if (ret) {
- set_req_state_err(s, ret);
+ if (op_ret) {
+ set_req_state_err(s, op_ret);
} else {
if (s->cct->_conf->rgw_s3_success_create_obj_status) {
- ret = get_success_retcode(s->cct->_conf->rgw_s3_success_create_obj_status);
- set_req_state_err(s, ret);
+ op_ret = get_success_retcode(
+ s->cct->_conf->rgw_s3_success_create_obj_status);
+ set_req_state_err(s, op_ret);
}
dump_etag(s, etag.c_str());
dump_content_length(s, 0);
RGWUserInfo user_info;
- ret = rgw_get_user_info_by_access_key(store, s3_access_key, user_info);
- if (ret < 0) {
+ op_ret = rgw_get_user_info_by_access_key(store, s3_access_key, user_info);
+ if (op_ret < 0) {
// Try keystone authentication as well
int keystone_result = -EINVAL;
if (!store->ctx()->_conf->rgw_s3_auth_use_keystone ||
void RGWPostObj_ObjStore_S3::send_response()
{
- if (ret == 0 && parts.count("success_action_redirect")) {
+ if (op_ret == 0 && parts.count("success_action_redirect")) {
string redirect;
part_str("success_action_redirect", &redirect);
int r = check_utf8(redirect.c_str(), redirect.size());
if (r < 0) {
- ret = r;
+ op_ret = r;
goto done;
}
dump_redirect(s, redirect);
- ret = STATUS_REDIRECT;
- } else if (ret == 0 && parts.count("success_action_status")) {
+ op_ret = STATUS_REDIRECT;
+ } else if (op_ret == 0 && parts.count("success_action_status")) {
string status_string;
uint32_t status_int;
int r = stringtoul(status_string, &status_int);
if (r < 0) {
- ret = r;
+ op_ret = r;
goto done;
}
case 200:
break;
case 201:
- ret = STATUS_CREATED;
+ op_ret = STATUS_CREATED;
break;
default:
- ret = STATUS_NO_CONTENT;
+ op_ret = STATUS_NO_CONTENT;
break;
}
- } else if (!ret) {
- ret = STATUS_NO_CONTENT;
+ } else if (! op_ret) {
+ op_ret = STATUS_NO_CONTENT;
}
done:
- if (ret == STATUS_CREATED) {
+ if (op_ret == STATUS_CREATED) {
s->formatter->open_object_section("PostResponse");
if (g_conf->rgw_dns_name.length())
s->formatter->dump_format("Location", "%s/%s", s->info.script_uri.c_str(), s->object.name.c_str());
s->formatter->close_section();
}
s->err.message = err_msg;
- set_req_state_err(s, ret);
+ set_req_state_err(s, op_ret);
dump_errno(s);
- if (ret >= 0) {
+ if (op_ret >= 0) {
dump_content_length(s, s->formatter->get_len());
}
end_header(s, this);
- if (ret != STATUS_CREATED)
+ if (op_ret != STATUS_CREATED)
return;
rgw_flush_formatter_and_reset(s, s->formatter);
void RGWDeleteObj_ObjStore_S3::send_response()
{
- int r = ret;
+ int r = op_ret;
if (r == -ENOENT)
r = 0;
if (!r)
void RGWCopyObj_ObjStore_S3::send_partial_response(off_t ofs)
{
- if (!sent_header) {
- if (ret)
- set_req_state_err(s, ret);
+ if (! sent_header) {
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this, "application/xml");
- if (ret == 0) {
+ if (op_ret == 0) {
s->formatter->open_object_section("CopyObjectResult");
}
sent_header = true;
if (!sent_header)
send_partial_response(0);
- if (ret == 0) {
+ if (op_ret == 0) {
dump_time(s, "LastModified", &mtime);
if (!etag.empty()) {
s->formatter->dump_string("ETag", etag);
void RGWGetACLs_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this, "application/xml");
dump_start(s);
void RGWPutACLs_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this, "application/xml");
dump_start(s);
void RGWGetCORS_ObjStore_S3::send_response()
{
- if (ret) {
- if (ret == -ENOENT)
+ if (op_ret) {
+ if (op_ret == -ENOENT)
set_req_state_err(s, ERR_NOT_FOUND);
- else
- set_req_state_err(s, ret);
+ else
+ set_req_state_err(s, op_ret);
}
dump_errno(s);
end_header(s, NULL, "application/xml");
dump_start(s);
- if (!ret) {
+ if (! op_ret) {
string cors;
RGWCORSConfiguration_S3 *s3cors = static_cast<RGWCORSConfiguration_S3 *>(&bucket_cors);
stringstream ss;
void RGWPutCORS_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, NULL, "application/xml");
dump_start(s);
void RGWDeleteCORS_ObjStore_S3::send_response()
{
- int r = ret;
+ int r = op_ret;
if (!r || r == -ENOENT)
r = STATUS_NO_CONTENT;
/*EACCES means, there is no CORS registered yet for the bucket
*ENOENT means, there is no match of the Origin in the list of CORSRule
*/
- if (ret == -ENOENT)
- ret = -EACCES;
- if (ret < 0) {
- set_req_state_err(s, ret);
+ if (op_ret == -ENOENT)
+ op_ret = -EACCES;
+ if (op_ret < 0) {
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, NULL);
return;
void RGWSetRequestPayment_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s);
}
int RGWInitMultipart_ObjStore_S3::get_params()
{
RGWAccessControlPolicy_S3 s3policy(s->cct);
- ret = create_s3_policy(s, store, s3policy, s->owner);
- if (ret < 0)
- return ret;
+ op_ret = create_s3_policy(s, store, s3policy, s->owner);
+ if (op_ret < 0)
+ return op_ret;
policy = s3policy;
void RGWInitMultipart_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this, "application/xml");
- if (ret == 0) {
+ if (op_ret == 0) {
dump_start(s);
s->formatter->open_object_section_in_ns("InitiateMultipartUploadResult",
"http://s3.amazonaws.com/doc/2006-03-01/");
void RGWCompleteMultipart_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this, "application/xml");
- if (ret == 0) {
+ if (op_ret == 0) {
dump_start(s);
s->formatter->open_object_section_in_ns("CompleteMultipartUploadResult",
"http://s3.amazonaws.com/doc/2006-03-01/");
void RGWAbortMultipart_ObjStore_S3::send_response()
{
- int r = ret;
+ int r = op_ret;
if (!r)
r = STATUS_NO_CONTENT;
void RGWListMultipart_ObjStore_S3::send_response()
{
- if (ret)
- set_req_state_err(s, ret);
+ if (op_ret)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this, "application/xml");
- if (ret == 0) {
+ if (op_ret == 0) {
dump_start(s);
s->formatter->open_object_section_in_ns("ListPartsResult",
"http://s3.amazonaws.com/doc/2006-03-01/");
void RGWListBucketMultiparts_ObjStore_S3::send_response()
{
- if (ret < 0)
- set_req_state_err(s, ret);
+ if (op_ret < 0)
+ set_req_state_err(s, op_ret);
dump_errno(s);
end_header(s, this, "application/xml");
dump_start(s);
- if (ret < 0)
+ if (op_ret < 0)
return;
s->formatter->open_object_section("ListMultipartUploadsResult");
s->formatter->dump_string("Delimiter", delimiter);
s->formatter->dump_string("IsTruncated", (is_truncated ? "true" : "false"));
- if (ret >= 0) {
+ if (op_ret >= 0) {
vector<RGWMultipartUploadEntry>::iterator iter;
for (iter = uploads.begin(); iter != uploads.end(); ++iter) {
RGWMPObj& mp = iter->mp;
void RGWDeleteMultiObj_ObjStore_S3::send_status()
{
- if (!status_dumped) {
- if (ret < 0)
- set_req_state_err(s, ret);
+ if (! status_dumped) {
+ if (op_ret < 0)
+ set_req_state_err(s, op_ret);
dump_errno(s);
status_dumped = true;
}
const string& marker_version_id, int ret)
{
if (!key.empty()) {
- if (ret == 0 && !quiet) {
+ if (op_ret == 0 && !quiet) {
s->formatter->open_object_section("Deleted");
s->formatter->dump_string("Key", key.name);
if (!key.instance.empty()) {
s->formatter->dump_string("DeleteMarkerVersionId", marker_version_id);
}
s->formatter->close_section();
- } else if (ret < 0) {
+ } else if (op_ret < 0) {
struct rgw_http_errors r;
int err_no;
s->formatter->open_object_section("Error");
- err_no = -ret;
+ err_no = -op_ret;
rgw_get_errno_s3(&r, err_no);
s->formatter->dump_string("Key", key.name);