]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-dencoder: add support for RGWLifecycleConfiguration 18959/head
authorwangsongbo <wangsongbo@cloudin.cn>
Thu, 16 Nov 2017 03:38:58 +0000 (11:38 +0800)
committerwangsongbo <wangsongbo@cloudin.cn>
Mon, 27 Nov 2017 07:08:58 +0000 (15:08 +0800)
Signed-off-by: Songbo Wang wangsongbo@cloudin.cn
src/rgw/rgw_json_enc.cc
src/rgw/rgw_lc.cc
src/rgw/rgw_lc.h
src/test/encoding/types.h

index ad7b941bf3ad53f9906bcadd9157d6832afc674e..362db8a854f621c3e67f770a7deb5a34b912628b 100644 (file)
@@ -1494,3 +1494,74 @@ void RGWOrphanSearchState::dump(Formatter *f) const
   encode_json("stage", stage, f);
   f->close_section();
 }
+
+void RGWObjTags::dump(Formatter *f) const
+{
+  for (auto& tag: tag_map){
+    f->open_object_section("tag_map");
+    f->dump_string("key", tag.first);
+    f->dump_string("value", tag.second);
+    f->close_section();
+  }
+}
+
+void lc_op::dump(Formatter *f) const
+{
+  f->dump_bool("status", status);
+  f->dump_bool("dm_expiration", dm_expiration);
+
+  f->dump_int("expiration", expiration);
+  f->dump_int("noncur_expiration", noncur_expiration);
+  f->dump_int("mp_expiration", mp_expiration);
+  if (expiration_date) {
+    utime_t ut(*expiration_date);
+    f->dump_stream("expiration_date") << ut;
+  }
+  if (obj_tags) {
+    f->dump_object("obj_tags", *obj_tags);
+  }
+}
+
+void LCFilter::dump(Formatter *f) const
+{
+  f->dump_string("prefix", prefix);
+  f->dump_object("obj_tags", obj_tags);
+}
+
+void LCExpiration::dump(Formatter *f) const
+{
+  f->dump_string("days", days);
+  f->dump_string("date", date);
+}
+
+void LCRule::dump(Formatter *f) const
+{
+  f->dump_string("id", id);
+  f->dump_string("prefix", prefix);
+  f->dump_string("status", status);
+  f->dump_object("expiration", expiration);
+  f->dump_object("noncur_expiration", noncur_expiration);
+  f->dump_object("mp_expiration", mp_expiration);
+  f->dump_object("filter", filter);
+  f->dump_bool("dm_expiration", dm_expiration);
+}
+
+void RGWLifecycleConfiguration::dump(Formatter *f) const
+{
+  f->open_object_section("prefix_map");
+  for (auto& prefix : prefix_map) {
+    f->dump_object(prefix.first.c_str(), prefix.second);
+  }
+  f->close_section();
+
+  f->open_array_section("rule_map");
+  for (auto& rule : rule_map) {
+    f->open_object_section("entry");
+    f->dump_string("id", rule.first);
+    f->open_object_section("rule");
+    rule.second.dump(f);
+    f->close_section();
+    f->close_section();
+  }
+  f->close_section();
+}
index a742ca309b4e29d16bfe02a764f9cee4fd0f2759..b9ccc754fa56537dd8a9eb214abc263b14a267f1 100644 (file)
@@ -809,3 +809,8 @@ int RGWLC::LCWorker::schedule_next_start_time(utime_t &start, utime_t& now)
   return (nt+24*60*60 - tt);
 }
 
+void RGWLifecycleConfiguration::generate_test_instances(list<RGWLifecycleConfiguration*>& o)
+{
+  o.push_back(new RGWLifecycleConfiguration);
+}
+
index 8aab59d94b60be8cc779763000e8000e199f24a1..2cbd070a053ff08cd4cb0e0f45d80b0c0c54f246 100644 (file)
@@ -144,6 +144,7 @@ class LCFilter
     }
     DECODE_FINISH(bl);
   }
+  void dump(Formatter *f) const;
 };
 WRITE_CLASS_ENCODER(LCFilter);
 
@@ -261,6 +262,7 @@ public:
      }
      DECODE_FINISH(bl);
    }
+  void dump(Formatter *f) const;
 
 };
 WRITE_CLASS_ENCODER(LCRule)
@@ -276,6 +278,7 @@ struct lc_op
   boost::optional<RGWObjTags> obj_tags;
   lc_op() : status(false), dm_expiration(false), expiration(0), noncur_expiration(0), mp_expiration(0) {}
   
+  void dump(Formatter *f) const;
 };
 
 class RGWLifecycleConfiguration
@@ -314,7 +317,7 @@ public:
     DECODE_FINISH(bl);
   }
   void dump(Formatter *f) const;
-//  static void generate_test_instances(list<RGWAccessControlList*>& o);
+  static void generate_test_instances(list<RGWLifecycleConfiguration*>& o);
 
   void add_rule(LCRule* rule);
 
index 5a0f8b7fe8d4f00496f1e0f96e8294e0804695e8..5690a056e77ad65bee33e45fa5a097f36ab22337 100644 (file)
@@ -306,6 +306,9 @@ TYPE(ObjectMetaInfo)
 TYPE(ObjectCacheInfo)
 TYPE(RGWCacheNotifyInfo)
 
+#include "rgw/rgw_lc.h"
+TYPE(RGWLifecycleConfiguration)
+
 #include "cls/rgw/cls_rgw_types.h"
 TYPE(rgw_bucket_pending_info)
 TYPE(rgw_bucket_dir_entry_meta)