]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: declares bucket tagging op classes
authorChang Liu <liuchang0812@gmail.com>
Sun, 5 May 2019 13:10:29 +0000 (21:10 +0800)
committerChang Liu <liuchang0812@gmail.com>
Tue, 4 Jun 2019 02:36:31 +0000 (10:36 +0800)
Signed-off-by: Chang Liu <liuchang0812@gmail.com>
src/rgw/rgw_op.h
src/rgw/rgw_rest.h
src/rgw/rgw_rest_s3.h

index 912cf3c3719601f282d1e629f0c550517b8f9d21..6a3c78e8bf6069912164ea36b818381394527386 100644 (file)
@@ -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 {
index f873810e20ac4b61f32ca07667aa73c2d18c9edd..0e5808c5059c4723494b2d3ff0ab0d37b0f56dda 100644 (file)
@@ -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() {}
index ffa7d7e7d4f99591c870c488f9d12c3600002d40..3fd69598e46cc22b130c31234466daff9d867ebb 100644 (file)
@@ -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() {}