return ret;
}
+static void rgw_bucket_object_pre_exec(struct req_state *s)
+{
+ if (s->expect_cont)
+ dump_continue(s);
+
+ dump_bucket_from_state(s);
+}
+
int RGWGetObj::verify_permission()
{
obj.init(s->bucket, s->object_str);
public:
RGWGetObj_CB(RGWGetObj *_op) : op(_op) {}
virtual ~RGWGetObj_CB() {}
-
+
int handle_data(bufferlist& bl, off_t bl_ofs, off_t bl_len) {
return op->get_data_cb(bl, bl_ofs, bl_len);
}
return send_response_data(bl, bl_ofs, bl_len);
}
+void RGWGetObj::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWGetObj::execute()
{
void *handle = NULL;
return 0;
}
+void RGWStatBucket::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWStatBucket::execute()
{
RGWUserBuckets buckets;
return 0;
}
+void RGWListBucket::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWListBucket::execute()
{
string no_ns;
return 0;
}
+void RGWCreateBucket::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWCreateBucket::execute()
{
RGWAccessControlPolicy old_policy(s->cct);
* from a partial create by retrying it. */
ldout(s->cct, 20) << "rgw_create_bucket returned ret=" << ret << " bucket=" << s->bucket << dendl;
- if (ret && ret != -EEXIST)
+ if (ret && ret != -EEXIST)
return;
existed = (ret == -EEXIST);
return 0;
}
+void RGWDeleteBucket::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWDeleteBucket::execute()
{
ret = -EINVAL;
delete processor;
}
+void RGWPutObj::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWPutObj::execute()
{
RGWPutObjProcessor *processor = NULL;
delete processor;
}
+void RGWPostObj::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWPostObj::execute()
{
RGWPutObjProcessor *processor = NULL;
bufferlist bl, aclbl;
int len = 0;
- // read in the data from the POST form
+ // read in the data from the POST form
ret = get_params();
if (ret < 0)
goto done;
return 0;
}
+void RGWPutMetadata::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWPutMetadata::execute()
{
const char *meta_prefix = RGW_ATTR_META_PREFIX;
return 0;
}
+void RGWDeleteObj::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWDeleteObj::execute()
{
ret = -EINVAL;
last_ofs = ofs;
}
+void RGWCopyObj::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWCopyObj::execute()
{
rgw_obj src_obj, dst_obj;
return 0;
}
+void RGWGetACLs::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWGetACLs::execute()
{
stringstream ss;
RGWAccessControlPolicy *acl = (s->object ? s->object_acl : s->bucket_acl);
RGWAccessControlPolicy_S3 *s3policy = static_cast<RGWAccessControlPolicy_S3 *>(acl);
s3policy->to_xml(ss);
- acls = ss.str();
+ acls = ss.str();
}
return 0;
}
+void RGWPutACLs::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWPutACLs::execute()
{
bufferlist bl;
origin = s->info.env->get("HTTP_ORIGIN");
if (!origin) {
- dout(0) <<
+ dout(0) <<
"Preflight request without mandatory Origin header"
<< dendl;
ret = -EINVAL;
}
req_meth = s->info.env->get("HTTP_ACCESS_CONTROL_REQUEST_METHOD");
if (!req_meth) {
- dout(0) <<
+ dout(0) <<
"Preflight request without mandatory Access-control-request-method header"
<< dendl;
ret = -EINVAL;
return 0;
}
+void RGWInitMultipart::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWInitMultipart::execute()
{
bufferlist aclbl;
return 0;
}
+void RGWCompleteMultipart::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWCompleteMultipart::execute()
{
RGWMultiCompleteUpload *parts;
target_obj.init(s->bucket, s->object_str);
list<string> remove_objs; /* objects to be removed from index listing */
-
+
for (obj_iter = obj_parts.begin(); obj_iter != obj_parts.end(); ++obj_iter) {
RGWUploadPartInfo& obj_part = obj_iter->second;
string oid = mp.get_part(obj_iter->second.num);
return 0;
}
+void RGWAbortMultipart::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWAbortMultipart::execute()
{
ret = -EINVAL;
if (upload_id.empty() || s->object_str.empty())
return;
- mp.init(s->object_str, upload_id);
+ mp.init(s->object_str, upload_id);
meta_oid = mp.get_meta();
ret = get_multiparts_info(store, s, meta_oid, obj_parts, policy, attrs);
return 0;
}
+void RGWListMultipart::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWListMultipart::execute()
{
map<string, bufferlist> xattrs;
return 0;
}
+void RGWListBucketMultiparts::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWListBucketMultiparts::execute()
{
vector<RGWObjEnt> objs;
return 0;
}
+void RGWDeleteMultiObj::pre_exec()
+{
+ rgw_bucket_object_pre_exec(s);
+}
+
void RGWDeleteMultiObj::execute()
{
RGWMultiDelDelete *multi_delete;
virtual bool prefetch_data() { return false; }
virtual int verify_permission() = 0;
virtual int verify_op_mask();
+ virtual void pre_exec() {}
virtual void execute() = 0;
virtual void send_response() {}
virtual void complete() {
this->get_data = get_data;
}
int verify_permission();
+ void pre_exec();
void execute();
int read_user_manifest_part(rgw_bucket& bucket, RGWObjEnt& ent, RGWAccessControlPolicy *bucket_policy, off_t start_ofs, off_t end_ofs);
int iterate_user_manifest_parts(rgw_bucket& bucket, string& obj_prefix, RGWAccessControlPolicy *bucket_policy,
is_truncated = false;
}
int verify_permission();
+ void pre_exec();
void execute();
virtual int get_params() = 0;
~RGWStatBucket() {}
int verify_permission();
+ void pre_exec();
void execute();
virtual void send_response() = 0;
RGWCreateBucket() : ret(0) {}
int verify_permission();
+ void pre_exec();
void execute();
virtual void init(RGWRados *store, struct req_state *s, RGWHandler *h) {
RGWOp::init(store, s, h);
RGWDeleteBucket() : ret(0) {}
int verify_permission();
+ void pre_exec();
void execute();
virtual void send_response() = 0;
void dispose_processor(RGWPutObjProcessor *processor);
int verify_permission();
+ void pre_exec();
void execute();
virtual int get_params() = 0;
}
int verify_permission();
+ void pre_exec();
void execute();
RGWPutObjProcessor *select_processor();
policy.set_ctx(s->cct);
}
int verify_permission();
+ void pre_exec();
void execute();
virtual int get_params() = 0;
RGWDeleteObj() : ret(0) {}
int verify_permission();
+ void pre_exec();
void execute();
virtual void send_response() = 0;
dest_policy.set_ctx(s->cct);
}
int verify_permission();
+ void pre_exec();
void execute();
void progress_cb(off_t ofs);
RGWGetACLs() : ret(0) {}
int verify_permission();
+ void pre_exec();
void execute();
virtual void send_response() = 0;
}
int verify_permission();
+ void pre_exec();
void execute();
virtual int get_policy_from_state(RGWRados *store, struct req_state *s, stringstream& ss) { return 0; }
policy.set_ctx(s->cct);
}
int verify_permission();
+ void pre_exec();
void execute();
virtual int get_params() = 0;
}
int verify_permission();
+ void pre_exec();
void execute();
virtual int get_params() = 0;
RGWAbortMultipart() : ret(0) {}
int verify_permission();
+ void pre_exec();
void execute();
virtual void send_response() = 0;
policy = RGWAccessControlPolicy(s->cct);
}
int verify_permission();
+ void pre_exec();
void execute();
virtual int get_params() = 0;
}
int verify_permission();
+ void pre_exec();
void execute();
virtual int get_params() = 0;
status_dumped = false;
}
int verify_permission();
+ void pre_exec();
void execute();
virtual int get_params() = 0;