From 0c83b5fec233b7fc63205233403e7df32139d039 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 12 Jul 2013 11:14:28 -0700 Subject: [PATCH] cls_rgw: add missing type tests Signed-off-by: Sage Weil --- src/cls/rgw/cls_rgw_ops.cc | 124 +++++++++++++++++++++++++++++++++++ src/cls/rgw/cls_rgw_ops.h | 26 ++++++++ src/cls/rgw/cls_rgw_types.cc | 23 +++++++ src/cls/rgw/cls_rgw_types.h | 44 ++++++++++++- src/test/encoding/types.h | 16 +++++ 5 files changed, 231 insertions(+), 2 deletions(-) diff --git a/src/cls/rgw/cls_rgw_ops.cc b/src/cls/rgw/cls_rgw_ops.cc index 3058083b274ad..2ffc53c92bec9 100644 --- a/src/cls/rgw/cls_rgw_ops.cc +++ b/src/cls/rgw/cls_rgw_ops.cc @@ -2,7 +2,90 @@ #include "cls/rgw/cls_rgw_ops.h" #include "common/Formatter.h" +#include "common/ceph_json.h" +void rgw_cls_tag_timeout_op::dump(Formatter *f) const +{ + f->dump_int("tag_timeout", tag_timeout); +} + +void rgw_cls_tag_timeout_op::generate_test_instances(list& ls) +{ + ls.push_back(new rgw_cls_tag_timeout_op); + ls.push_back(new rgw_cls_tag_timeout_op); + ls.back()->tag_timeout = 23323; +} + +void cls_rgw_gc_set_entry_op::dump(Formatter *f) const +{ + f->dump_unsigned("expiration_secs", expiration_secs); + f->open_object_section("obj_info"); + info.dump(f); + f->close_section(); +} + +void cls_rgw_gc_set_entry_op::generate_test_instances(list& ls) +{ + ls.push_back(new cls_rgw_gc_set_entry_op); + ls.push_back(new cls_rgw_gc_set_entry_op); + ls.back()->expiration_secs = 123; +} + +void cls_rgw_gc_defer_entry_op::dump(Formatter *f) const +{ + f->dump_unsigned("expiration_secs", expiration_secs); + f->dump_string("tag", tag); +} + +void cls_rgw_gc_defer_entry_op::generate_test_instances(list& ls) +{ + ls.push_back(new cls_rgw_gc_defer_entry_op); + ls.push_back(new cls_rgw_gc_defer_entry_op); + ls.back()->expiration_secs = 123; + ls.back()->tag = "footag"; +} + +void cls_rgw_gc_list_op::dump(Formatter *f) const +{ + f->dump_string("marker", marker); + f->dump_unsigned("max", max); +} + +void cls_rgw_gc_list_op::generate_test_instances(list& ls) +{ + ls.push_back(new cls_rgw_gc_list_op); + ls.push_back(new cls_rgw_gc_list_op); + ls.back()->marker = "mymarker"; + ls.back()->max = 2312; +} + +void cls_rgw_gc_list_ret::dump(Formatter *f) const +{ + encode_json("entries", entries, f); + f->dump_int("truncated", (int)truncated); +} + +void cls_rgw_gc_list_ret::generate_test_instances(list& ls) +{ + ls.push_back(new cls_rgw_gc_list_ret); + ls.push_back(new cls_rgw_gc_list_ret); + ls.back()->entries.push_back(cls_rgw_gc_obj_info()); + ls.back()->truncated = true; +} + + +void cls_rgw_gc_remove_op::dump(Formatter *f) const +{ + encode_json("tags", tags, f); +} + +void cls_rgw_gc_remove_op::generate_test_instances(list& ls) +{ + ls.push_back(new cls_rgw_gc_remove_op); + ls.push_back(new cls_rgw_gc_remove_op); + ls.back()->tags.push_back("tag1"); + ls.back()->tags.push_back("tag2"); +} void rgw_cls_obj_prepare_op::generate_test_instances(list& o) { @@ -101,3 +184,44 @@ void rgw_cls_list_ret::dump(Formatter *f) const f->dump_int("is_truncated", (int)is_truncated); } +void cls_rgw_bi_log_list_op::dump(Formatter *f) const +{ + f->dump_string("marker", marker); + f->dump_unsigned("max", max); +} + +void cls_rgw_bi_log_list_op::generate_test_instances(list& ls) +{ + ls.push_back(new cls_rgw_bi_log_list_op); + ls.push_back(new cls_rgw_bi_log_list_op); + ls.back()->marker = "mark"; + ls.back()->max = 123; +} + +void cls_rgw_bi_log_trim_op::dump(Formatter *f) const +{ + f->dump_string("start_marker", start_marker); + f->dump_string("end_marker", end_marker); +} + +void cls_rgw_bi_log_trim_op::generate_test_instances(list& ls) +{ + ls.push_back(new cls_rgw_bi_log_trim_op); + ls.push_back(new cls_rgw_bi_log_trim_op); + ls.back()->start_marker = "foo"; + ls.back()->end_marker = "bar"; +} + +void cls_rgw_bi_log_list_ret::dump(Formatter *f) const +{ + encode_json("entries", entries, f); + f->dump_unsigned("truncated", (int)truncated); +} + +void cls_rgw_bi_log_list_ret::generate_test_instances(list& ls) +{ + ls.push_back(new cls_rgw_bi_log_list_ret); + ls.push_back(new cls_rgw_bi_log_list_ret); + ls.back()->entries.push_back(rgw_bi_log_entry()); + ls.back()->truncated = true; +} diff --git a/src/cls/rgw/cls_rgw_ops.h b/src/cls/rgw/cls_rgw_ops.h index 850c6f94fb91a..8f0ecfbdd26cc 100644 --- a/src/cls/rgw/cls_rgw_ops.h +++ b/src/cls/rgw/cls_rgw_ops.h @@ -22,6 +22,8 @@ struct rgw_cls_tag_timeout_op ::decode(tag_timeout, bl); DECODE_FINISH(bl); } + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(rgw_cls_tag_timeout_op) @@ -310,6 +312,9 @@ struct cls_rgw_gc_set_entry_op { ::decode(info, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(cls_rgw_gc_set_entry_op) @@ -331,6 +336,9 @@ struct cls_rgw_gc_defer_entry_op { ::decode(tag, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(cls_rgw_gc_defer_entry_op) @@ -353,6 +361,9 @@ struct cls_rgw_gc_list_op { ::decode(max, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(cls_rgw_gc_list_op) @@ -375,6 +386,9 @@ struct cls_rgw_gc_list_ret { ::decode(truncated, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(cls_rgw_gc_list_ret) @@ -394,6 +408,9 @@ struct cls_rgw_gc_remove_op { ::decode(tags, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(cls_rgw_gc_remove_op) @@ -416,6 +433,9 @@ struct cls_rgw_bi_log_list_op { ::decode(max, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(cls_rgw_bi_log_list_op) @@ -438,6 +458,9 @@ struct cls_rgw_bi_log_trim_op { ::decode(end_marker, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(cls_rgw_bi_log_trim_op) @@ -460,6 +483,9 @@ struct cls_rgw_bi_log_list_ret { ::decode(truncated, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(cls_rgw_bi_log_list_ret) diff --git a/src/cls/rgw/cls_rgw_types.cc b/src/cls/rgw/cls_rgw_types.cc index 2adb78fd3f279..f1c50bec546f0 100644 --- a/src/cls/rgw/cls_rgw_types.cc +++ b/src/cls/rgw/cls_rgw_types.cc @@ -66,12 +66,22 @@ void rgw_bucket_dir_entry::generate_test_instances(list& } o.push_back(new rgw_bucket_dir_entry); } + void rgw_bucket_entry_ver::dump(Formatter *f) const { f->dump_int("pool", pool); f->dump_unsigned("epoch", epoch); } +void rgw_bucket_entry_ver::generate_test_instances(list& ls) +{ + ls.push_back(new rgw_bucket_entry_ver); + ls.push_back(new rgw_bucket_entry_ver); + ls.back()->pool = 123; + ls.back()->epoch = 12322; +} + + void rgw_bucket_dir_entry::dump(Formatter *f) const { f->dump_string("name", name); @@ -139,6 +149,19 @@ void rgw_bi_log_entry::dump(Formatter *f) const f->close_section(); } +void rgw_bi_log_entry::generate_test_instances(list& ls) +{ + ls.push_back(new rgw_bi_log_entry); + ls.push_back(new rgw_bi_log_entry); + ls.back()->id = "midf"; + ls.back()->object = "obj"; + ls.back()->timestamp = utime_t(2, 3); + ls.back()->index_ver = 4323; + ls.back()->tag = "tagasdfds"; + ls.back()->op = CLS_RGW_OP_DEL; + ls.back()->state = CLS_RGW_STATE_PENDING_MODIFY; +} + void rgw_bucket_category_stats::generate_test_instances(list& o) { rgw_bucket_category_stats *s = new rgw_bucket_category_stats; diff --git a/src/cls/rgw/cls_rgw_types.h b/src/cls/rgw/cls_rgw_types.h index 56433e8d42441..1ed56ba0da895 100644 --- a/src/cls/rgw/cls_rgw_types.h +++ b/src/cls/rgw/cls_rgw_types.h @@ -5,6 +5,7 @@ #include "include/types.h" #include "include/utime.h" +#include "common/Formatter.h" #define CEPH_RGW_REMOVE 'r' #define CEPH_RGW_UPDATE 'u' @@ -255,7 +256,7 @@ struct rgw_bi_log_entry { uint64_t index_ver; string tag; - rgw_bi_log_entry() : op(CLS_RGW_OP_UNKNOWN), index_ver(0) {} + rgw_bi_log_entry() : op(CLS_RGW_OP_UNKNOWN), state(CLS_RGW_STATE_PENDING_MODIFY), index_ver(0) {} void encode(bufferlist &bl) const { ENCODE_START(1, 1, bl); @@ -568,6 +569,19 @@ struct cls_rgw_obj { ::decode(key, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const { + f->dump_string("pool", pool); + f->dump_string("oid", oid); + f->dump_string("key", key); + } + static void generate_test_instances(list& ls) { + ls.push_back(new cls_rgw_obj); + ls.push_back(new cls_rgw_obj); + ls.back()->pool = "mypool"; + ls.back()->oid = "myoid"; + ls.back()->key = "mykey"; + } }; WRITE_CLASS_ENCODER(cls_rgw_obj) @@ -595,6 +609,19 @@ struct cls_rgw_obj_chain { ::decode(objs, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const { + f->open_array_section("objs"); + for (list::const_iterator p = objs.begin(); p != objs.end(); ++p) { + f->open_object_section("obj"); + p->dump(f); + f->close_section(); + } + f->close_section(); + } + static void generate_test_instances(list& ls) { + ls.push_back(new cls_rgw_obj_chain); + } }; WRITE_CLASS_ENCODER(cls_rgw_obj_chain) @@ -606,7 +633,6 @@ struct cls_rgw_gc_obj_info cls_rgw_gc_obj_info() {} - void encode(bufferlist& bl) const { ENCODE_START(1, 1, bl); ::encode(tag, bl); @@ -622,6 +648,20 @@ struct cls_rgw_gc_obj_info ::decode(time, bl); DECODE_FINISH(bl); } + + void dump(Formatter *f) const { + f->dump_string("tag", tag); + f->open_object_section("chain"); + chain.dump(f); + f->close_section(); + f->dump_stream("time") << time; + } + static void generate_test_instances(list& ls) { + ls.push_back(new cls_rgw_gc_obj_info); + ls.push_back(new cls_rgw_gc_obj_info); + ls.back()->tag = "footag"; + ls.back()->time = utime_t(21, 32); + } }; WRITE_CLASS_ENCODER(cls_rgw_gc_obj_info) diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index ee389d653d212..fd10d28f11952 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -201,12 +201,28 @@ TYPE(rgw_bucket_dir_entry) TYPE(rgw_bucket_category_stats) TYPE(rgw_bucket_dir_header) TYPE(rgw_bucket_dir) +TYPE(rgw_bucket_entry_ver) #include "cls/rgw/cls_rgw_ops.h" TYPE(rgw_cls_obj_prepare_op) TYPE(rgw_cls_obj_complete_op) TYPE(rgw_cls_list_op) TYPE(rgw_cls_list_ret) +TYPE(cls_rgw_gc_defer_entry_op) +TYPE(cls_rgw_gc_list_op) +TYPE(cls_rgw_gc_list_ret) +TYPE(cls_rgw_gc_obj_info) +TYPE(cls_rgw_gc_remove_op) +TYPE(cls_rgw_gc_set_entry_op) +TYPE(cls_rgw_obj) +TYPE(cls_rgw_obj_chain) +TYPE(rgw_cls_tag_timeout_op) +TYPE(cls_rgw_bi_log_list_op) +TYPE(cls_rgw_bi_log_trim_op) +TYPE(cls_rgw_bi_log_list_ret) + +#include "cls/rgw/cls_rgw_client.h" +TYPE(rgw_bi_log_entry) #include "rgw/rgw_common.h" TYPE(RGWAccessKey); -- 2.39.5