From: Chang Liu Date: Sun, 5 May 2019 13:10:29 +0000 (+0800) Subject: rgw: declares bucket tagging op classes X-Git-Tag: v15.1.0~2575^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f7ea2bdbbed887fbe7f919cad7805091631e274a;p=ceph.git rgw: declares bucket tagging op classes Signed-off-by: Chang Liu --- diff --git a/src/rgw/rgw_op.h b/src/rgw/rgw_op.h index 912cf3c37196..6a3c78e8bf60 100644 --- a/src/rgw/rgw_op.h +++ b/src/rgw/rgw_op.h @@ -418,6 +418,46 @@ class RGWDeleteObjTags: public RGWOp { RGWOpType get_type() override { return RGW_OP_DELETE_OBJ_TAGGING;} }; +class RGWGetBucketTags : public RGWOp { +protected: + bufferlist tags_bl; + bool has_tags{false}; +public: + int verify_permission() override; + void execute() override; + void pre_exec() override; + + virtual void send_response_data(bufferlist& bl) = 0; + const char* name() const override { return "get_bucket_tags"; } + virtual uint32_t op_mask() override { return RGW_OP_TYPE_READ; } + RGWOpType get_type() override { return RGW_OP_GET_BUCKET_TAGGING; } +}; + +class RGWPutBucketTags : public RGWOp { +protected: + bufferlist tags_bl; +public: + int verify_permission() override; + void execute() override; + + virtual void send_response() override = 0; + virtual int get_params() = 0; + const char* name() const override { return "put_bucket_tags"; } + virtual uint32_t op_mask() override { return RGW_OP_TYPE_WRITE; } + RGWOpType get_type() override { return RGW_OP_PUT_BUCKET_TAGGING; } +}; + +class RGWDeleteBucketTags : public RGWOp { +public: + void pre_exec() override; + int verify_permission() override; + void execute() override; + + const char* name() const override { return "delete_bucket_tags"; } + virtual uint32_t op_mask() override { return RGW_OP_TYPE_DELETE; } + RGWOpType get_type() override { return RGW_OP_DELETE_BUCKET_TAGGING;} +}; + class RGWBulkDelete : public RGWOp { public: struct acct_path_t { diff --git a/src/rgw/rgw_rest.h b/src/rgw/rgw_rest.h index f873810e20ac..0e5808c5059c 100644 --- a/src/rgw/rgw_rest.h +++ b/src/rgw/rgw_rest.h @@ -183,6 +183,18 @@ public: ~RGWPutObjTags_ObjStore() {}; }; +class RGWGetBucketTags_ObjStore : public RGWGetBucketTags { +public: + RGWGetBucketTags_ObjStore() = default; + virtual ~RGWGetBucketTags_ObjStore() = default; +}; + +class RGWPutBucketTags_ObjStore: public RGWPutBucketTags { +public: + RGWPutBucketTags_ObjStore() = default; + virtual ~RGWPutBucketTags_ObjStore() = default; +}; + class RGWListBuckets_ObjStore : public RGWListBuckets { public: RGWListBuckets_ObjStore() {} diff --git a/src/rgw/rgw_rest_s3.h b/src/rgw/rgw_rest_s3.h index ffa7d7e7d4f9..3fd69598e46c 100644 --- a/src/rgw/rgw_rest_s3.h +++ b/src/rgw/rgw_rest_s3.h @@ -82,6 +82,33 @@ public: void send_response() override; }; +class RGWGetBucketTags_ObjStore_S3 : public RGWGetBucketTags_ObjStore +{ + bufferlist tags_bl; +public: + RGWGetBucketTags_ObjStore_S3() = default; + ~RGWGetBucketTags_ObjStore_S3() = default; + + void send_response_data(bufferlist &bl) override; +}; + +class RGWPutBucketTags_ObjStore_S3 : public RGWPutBucketTags_ObjStore +{ +public: + RGWPutBucketTags_ObjStore_S3() {} + ~RGWPutBucketTags_ObjStore_S3() {} + + int get_params() override; + void send_response() override; +}; + +class RGWDeleteBucketTags_ObjStore_S3 : public RGWDeleteBucketTags +{ +public: + ~RGWDeleteBucketTags_ObjStore_S3() override {} + void send_response() override; +}; + class RGWListBuckets_ObjStore_S3 : public RGWListBuckets_ObjStore { public: RGWListBuckets_ObjStore_S3() {}