2 #include "cls/rgw/cls_rgw_ops.h"
4 #include "common/Formatter.h"
5 #include "common/ceph_json.h"
6 #include "include/utime.h"
8 void rgw_cls_tag_timeout_op::dump(Formatter
*f
) const
10 f
->dump_int("tag_timeout", tag_timeout
);
13 void rgw_cls_tag_timeout_op::generate_test_instances(list
<rgw_cls_tag_timeout_op
*>& ls
)
15 ls
.push_back(new rgw_cls_tag_timeout_op
);
16 ls
.push_back(new rgw_cls_tag_timeout_op
);
17 ls
.back()->tag_timeout
= 23323;
20 void cls_rgw_gc_set_entry_op::dump(Formatter
*f
) const
22 f
->dump_unsigned("expiration_secs", expiration_secs
);
23 f
->open_object_section("obj_info");
28 void cls_rgw_gc_set_entry_op::generate_test_instances(list
<cls_rgw_gc_set_entry_op
*>& ls
)
30 ls
.push_back(new cls_rgw_gc_set_entry_op
);
31 ls
.push_back(new cls_rgw_gc_set_entry_op
);
32 ls
.back()->expiration_secs
= 123;
35 void cls_rgw_gc_defer_entry_op::dump(Formatter
*f
) const
37 f
->dump_unsigned("expiration_secs", expiration_secs
);
38 f
->dump_string("tag", tag
);
41 void cls_rgw_gc_defer_entry_op::generate_test_instances(list
<cls_rgw_gc_defer_entry_op
*>& ls
)
43 ls
.push_back(new cls_rgw_gc_defer_entry_op
);
44 ls
.push_back(new cls_rgw_gc_defer_entry_op
);
45 ls
.back()->expiration_secs
= 123;
46 ls
.back()->tag
= "footag";
49 void cls_rgw_gc_list_op::dump(Formatter
*f
) const
51 f
->dump_string("marker", marker
);
52 f
->dump_unsigned("max", max
);
53 f
->dump_bool("expired_only", expired_only
);
56 void cls_rgw_gc_list_op::generate_test_instances(list
<cls_rgw_gc_list_op
*>& ls
)
58 ls
.push_back(new cls_rgw_gc_list_op
);
59 ls
.push_back(new cls_rgw_gc_list_op
);
60 ls
.back()->marker
= "mymarker";
61 ls
.back()->max
= 2312;
64 void cls_rgw_gc_list_ret::dump(Formatter
*f
) const
66 encode_json("entries", entries
, f
);
67 f
->dump_string("next_marker", next_marker
);
68 f
->dump_int("truncated", (int)truncated
);
71 void cls_rgw_gc_list_ret::generate_test_instances(list
<cls_rgw_gc_list_ret
*>& ls
)
73 ls
.push_back(new cls_rgw_gc_list_ret
);
74 ls
.push_back(new cls_rgw_gc_list_ret
);
75 ls
.back()->entries
.push_back(cls_rgw_gc_obj_info());
76 ls
.back()->truncated
= true;
80 void cls_rgw_gc_remove_op::dump(Formatter
*f
) const
82 encode_json("tags", tags
, f
);
85 void cls_rgw_gc_remove_op::generate_test_instances(list
<cls_rgw_gc_remove_op
*>& ls
)
87 ls
.push_back(new cls_rgw_gc_remove_op
);
88 ls
.push_back(new cls_rgw_gc_remove_op
);
89 ls
.back()->tags
.push_back("tag1");
90 ls
.back()->tags
.push_back("tag2");
93 void rgw_cls_obj_prepare_op::generate_test_instances(list
<rgw_cls_obj_prepare_op
*>& o
)
95 rgw_cls_obj_prepare_op
*op
= new rgw_cls_obj_prepare_op
;
96 op
->op
= CLS_RGW_OP_ADD
;
97 op
->key
.name
= "name";
99 op
->locator
= "locator";
101 o
.push_back(new rgw_cls_obj_prepare_op
);
104 void rgw_cls_obj_prepare_op::dump(Formatter
*f
) const
106 f
->dump_int("op", op
);
107 f
->dump_string("name", key
.name
);
108 f
->dump_string("tag", tag
);
109 f
->dump_string("locator", locator
);
110 f
->dump_bool("log_op", log_op
);
111 f
->dump_int("bilog_flags", bilog_flags
);
112 ::encode_json("zones_trace", zones_trace
, f
);
115 void rgw_cls_obj_complete_op::generate_test_instances(list
<rgw_cls_obj_complete_op
*>& o
)
117 rgw_cls_obj_complete_op
*op
= new rgw_cls_obj_complete_op
;
118 op
->op
= CLS_RGW_OP_DEL
;
119 op
->key
.name
= "name";
120 op
->locator
= "locator";
125 list
<rgw_bucket_dir_entry_meta
*> l
;
126 rgw_bucket_dir_entry_meta::generate_test_instances(l
);
127 list
<rgw_bucket_dir_entry_meta
*>::iterator iter
= l
.begin();
132 o
.push_back(new rgw_cls_obj_complete_op
);
135 void rgw_cls_obj_complete_op::dump(Formatter
*f
) const
137 f
->dump_int("op", (int)op
);
138 f
->dump_string("name", key
.name
);
139 f
->dump_string("instance", key
.instance
);
140 f
->dump_string("locator", locator
);
141 f
->open_object_section("ver");
144 f
->open_object_section("meta");
147 f
->dump_string("tag", tag
);
148 f
->dump_bool("log_op", log_op
);
149 f
->dump_int("bilog_flags", bilog_flags
);
150 ::encode_json("zones_trace", zones_trace
, f
);
153 void rgw_cls_link_olh_op::generate_test_instances(list
<rgw_cls_link_olh_op
*>& o
)
155 rgw_cls_link_olh_op
*op
= new rgw_cls_link_olh_op
;
156 op
->key
.name
= "name";
157 op
->olh_tag
= "olh_tag";
158 op
->delete_marker
= true;
159 op
->op_tag
= "op_tag";
161 list
<rgw_bucket_dir_entry_meta
*> l
;
162 rgw_bucket_dir_entry_meta::generate_test_instances(l
);
163 list
<rgw_bucket_dir_entry_meta
*>::iterator iter
= l
.begin();
169 o
.push_back(new rgw_cls_link_olh_op
);
172 void rgw_cls_link_olh_op::dump(Formatter
*f
) const
174 ::encode_json("key", key
, f
);
175 ::encode_json("olh_tag", olh_tag
, f
);
176 ::encode_json("delete_marker", delete_marker
, f
);
177 ::encode_json("op_tag", op_tag
, f
);
178 ::encode_json("meta", meta
, f
);
179 ::encode_json("olh_epoch", olh_epoch
, f
);
180 ::encode_json("log_op", log_op
, f
);
181 ::encode_json("bilog_flags", (uint32_t)bilog_flags
, f
);
182 utime_t
ut(unmod_since
);
183 ::encode_json("unmod_since", ut
, f
);
184 ::encode_json("high_precision_time", high_precision_time
, f
);
185 ::encode_json("zones_trace", zones_trace
, f
);
188 void rgw_cls_unlink_instance_op::generate_test_instances(list
<rgw_cls_unlink_instance_op
*>& o
)
190 rgw_cls_unlink_instance_op
*op
= new rgw_cls_unlink_instance_op
;
191 op
->key
.name
= "name";
192 op
->op_tag
= "op_tag";
198 o
.push_back(new rgw_cls_unlink_instance_op
);
201 void rgw_cls_unlink_instance_op::dump(Formatter
*f
) const
203 ::encode_json("key", key
, f
);
204 ::encode_json("op_tag", op_tag
, f
);
205 ::encode_json("olh_epoch", olh_epoch
, f
);
206 ::encode_json("log_op", log_op
, f
);
207 ::encode_json("bilog_flags", (uint32_t)bilog_flags
, f
);
208 ::encode_json("zones_trace", zones_trace
, f
);
211 void rgw_cls_read_olh_log_op::generate_test_instances(list
<rgw_cls_read_olh_log_op
*>& o
)
213 rgw_cls_read_olh_log_op
*op
= new rgw_cls_read_olh_log_op
;
214 op
->olh
.name
= "name";
215 op
->ver_marker
= 123;
216 op
->olh_tag
= "olh_tag";
220 o
.push_back(new rgw_cls_read_olh_log_op
);
223 void rgw_cls_read_olh_log_op::dump(Formatter
*f
) const
225 ::encode_json("olh", olh
, f
);
226 ::encode_json("ver_marker", ver_marker
, f
);
227 ::encode_json("olh_tag", olh_tag
, f
);
230 void rgw_cls_read_olh_log_ret::generate_test_instances(list
<rgw_cls_read_olh_log_ret
*>& o
)
232 rgw_cls_read_olh_log_ret
*r
= new rgw_cls_read_olh_log_ret
;
233 r
->is_truncated
= true;
234 list
<rgw_bucket_olh_log_entry
*> l
;
235 rgw_bucket_olh_log_entry::generate_test_instances(l
);
236 list
<rgw_bucket_olh_log_entry
*>::iterator iter
= l
.begin();
237 r
->log
[1].push_back(*(*iter
));
241 o
.push_back(new rgw_cls_read_olh_log_ret
);
244 void rgw_cls_read_olh_log_ret::dump(Formatter
*f
) const
246 ::encode_json("log", log
, f
);
247 ::encode_json("is_truncated", is_truncated
, f
);
250 void rgw_cls_trim_olh_log_op::generate_test_instances(list
<rgw_cls_trim_olh_log_op
*>& o
)
252 rgw_cls_trim_olh_log_op
*op
= new rgw_cls_trim_olh_log_op
;
253 op
->olh
.name
= "olh.name";
255 op
->olh_tag
= "olh_tag";
259 o
.push_back(new rgw_cls_trim_olh_log_op
);
262 void rgw_cls_trim_olh_log_op::dump(Formatter
*f
) const
264 ::encode_json("olh", olh
, f
);
265 ::encode_json("ver", ver
, f
);
266 ::encode_json("olh_tag", olh_tag
, f
);
269 void rgw_cls_bucket_clear_olh_op::generate_test_instances(list
<rgw_cls_bucket_clear_olh_op
*>& o
)
272 rgw_cls_bucket_clear_olh_op
*op
= new rgw_cls_bucket_clear_olh_op
;
273 op
->key
.name
= "key.name";
274 op
->olh_tag
= "olh_tag";
277 o
.push_back(new rgw_cls_bucket_clear_olh_op
);
280 void rgw_cls_bucket_clear_olh_op::dump(Formatter
*f
) const
282 ::encode_json("key", key
, f
);
283 ::encode_json("olh_tag", olh_tag
, f
);
286 void rgw_cls_list_op::generate_test_instances(list
<rgw_cls_list_op
*>& o
)
288 rgw_cls_list_op
*op
= new rgw_cls_list_op
;
289 op
->start_obj
.name
= "start_obj";
290 op
->num_entries
= 100;
291 op
->filter_prefix
= "filter_prefix";
293 o
.push_back(new rgw_cls_list_op
);
296 void rgw_cls_list_op::dump(Formatter
*f
) const
298 f
->dump_string("start_obj", start_obj
.name
);
299 f
->dump_unsigned("num_entries", num_entries
);
302 void rgw_cls_list_ret::generate_test_instances(list
<rgw_cls_list_ret
*>& o
)
304 list
<rgw_bucket_dir
*> l
;
305 rgw_bucket_dir::generate_test_instances(l
);
306 list
<rgw_bucket_dir
*>::iterator iter
;
307 for (iter
= l
.begin(); iter
!= l
.end(); ++iter
) {
308 rgw_bucket_dir
*d
= *iter
;
310 rgw_cls_list_ret
*ret
= new rgw_cls_list_ret
;
312 ret
->is_truncated
= true;
319 o
.push_back(new rgw_cls_list_ret
);
322 void rgw_cls_list_ret::dump(Formatter
*f
) const
324 f
->open_object_section("dir");
327 f
->dump_int("is_truncated", (int)is_truncated
);
330 void rgw_cls_check_index_ret::generate_test_instances(list
<rgw_cls_check_index_ret
*>& o
)
332 list
<rgw_bucket_dir_header
*> h
;
333 rgw_bucket_dir_header::generate_test_instances(h
);
334 rgw_cls_check_index_ret
*r
= new rgw_cls_check_index_ret
;
335 r
->existing_header
= *(h
.front());
336 r
->calculated_header
= *(h
.front());
339 for (list
<rgw_bucket_dir_header
*>::iterator iter
= h
.begin(); iter
!= h
.end(); ++iter
) {
342 o
.push_back(new rgw_cls_check_index_ret
);
345 void rgw_cls_check_index_ret::dump(Formatter
*f
) const
347 ::encode_json("existing_header", existing_header
, f
);
348 ::encode_json("calculated_header", calculated_header
, f
);
351 void rgw_cls_bucket_update_stats_op::generate_test_instances(list
<rgw_cls_bucket_update_stats_op
*>& o
)
353 rgw_cls_bucket_update_stats_op
*r
= new rgw_cls_bucket_update_stats_op
;
355 rgw_bucket_category_stats
& s
= r
->stats
[0];
357 s
.total_size_rounded
= 4096;
361 o
.push_back(new rgw_cls_bucket_update_stats_op
);
364 void rgw_cls_bucket_update_stats_op::dump(Formatter
*f
) const
366 ::encode_json("absolute", absolute
, f
);
367 map
<int, rgw_bucket_category_stats
> s
;
368 for (auto& entry
: stats
) {
369 s
[(int)entry
.first
] = entry
.second
;
371 ::encode_json("stats", s
, f
);
374 void cls_rgw_bi_log_list_op::dump(Formatter
*f
) const
376 f
->dump_string("marker", marker
);
377 f
->dump_unsigned("max", max
);
380 void cls_rgw_bi_log_list_op::generate_test_instances(list
<cls_rgw_bi_log_list_op
*>& ls
)
382 ls
.push_back(new cls_rgw_bi_log_list_op
);
383 ls
.push_back(new cls_rgw_bi_log_list_op
);
384 ls
.back()->marker
= "mark";
385 ls
.back()->max
= 123;
388 void cls_rgw_bi_log_trim_op::dump(Formatter
*f
) const
390 f
->dump_string("start_marker", start_marker
);
391 f
->dump_string("end_marker", end_marker
);
394 void cls_rgw_bi_log_trim_op::generate_test_instances(list
<cls_rgw_bi_log_trim_op
*>& ls
)
396 ls
.push_back(new cls_rgw_bi_log_trim_op
);
397 ls
.push_back(new cls_rgw_bi_log_trim_op
);
398 ls
.back()->start_marker
= "foo";
399 ls
.back()->end_marker
= "bar";
402 void cls_rgw_bi_log_list_ret::dump(Formatter
*f
) const
404 encode_json("entries", entries
, f
);
405 f
->dump_unsigned("truncated", (int)truncated
);
408 void cls_rgw_bi_log_list_ret::generate_test_instances(list
<cls_rgw_bi_log_list_ret
*>& ls
)
410 ls
.push_back(new cls_rgw_bi_log_list_ret
);
411 ls
.push_back(new cls_rgw_bi_log_list_ret
);
412 ls
.back()->entries
.push_back(rgw_bi_log_entry());
413 ls
.back()->truncated
= true;
416 void cls_rgw_reshard_add_op::generate_test_instances(list
<cls_rgw_reshard_add_op
*>& ls
)
418 ls
.push_back(new cls_rgw_reshard_add_op
);
419 ls
.push_back(new cls_rgw_reshard_add_op
);
420 list
<cls_rgw_reshard_entry
*> l
;
421 cls_rgw_reshard_entry::generate_test_instances(l
);
422 list
<cls_rgw_reshard_entry
*>::iterator iter
= l
.begin();
423 ls
.back()->entry
= *(*iter
);
426 void cls_rgw_reshard_add_op::dump(Formatter
*f
) const
428 ::encode_json("entry", entry
, f
);
431 void cls_rgw_reshard_list_op::generate_test_instances(list
<cls_rgw_reshard_list_op
*>& ls
)
433 ls
.push_back(new cls_rgw_reshard_list_op
);
434 ls
.push_back(new cls_rgw_reshard_list_op
);
435 ls
.back()->max
= 1000;
436 ls
.back()->marker
= "foo";
439 void cls_rgw_reshard_list_op::dump(Formatter
*f
) const
441 ::encode_json("max", max
, f
);
442 ::encode_json("marker", marker
, f
);
445 void cls_rgw_reshard_list_ret::generate_test_instances(list
<cls_rgw_reshard_list_ret
*>& ls
)
447 ls
.push_back(new cls_rgw_reshard_list_ret
);
448 ls
.push_back(new cls_rgw_reshard_list_ret
);
449 ls
.back()->entries
.push_back(cls_rgw_reshard_entry());
450 ls
.back()->is_truncated
= true;
453 void cls_rgw_reshard_list_ret::dump(Formatter
*f
) const
455 ::encode_json("entries", entries
, f
);
456 ::encode_json("is_truncated", is_truncated
, f
);
459 void cls_rgw_reshard_get_op::generate_test_instances(list
<cls_rgw_reshard_get_op
*>& ls
)
461 ls
.push_back(new cls_rgw_reshard_get_op
);
462 ls
.push_back(new cls_rgw_reshard_get_op
);
465 void cls_rgw_reshard_get_op::dump(Formatter
*f
) const
467 ::encode_json("entry", entry
, f
);
470 void cls_rgw_reshard_get_ret::generate_test_instances(list
<cls_rgw_reshard_get_ret
*>& ls
)
472 ls
.push_back(new cls_rgw_reshard_get_ret
);
473 ls
.push_back(new cls_rgw_reshard_get_ret
);
476 void cls_rgw_reshard_get_ret::dump(Formatter
*f
) const
478 ::encode_json("entry", entry
, f
);
481 void cls_rgw_reshard_remove_op::generate_test_instances(list
<cls_rgw_reshard_remove_op
*>& ls
)
483 ls
.push_back(new cls_rgw_reshard_remove_op
);
484 ls
.push_back(new cls_rgw_reshard_remove_op
);
485 ls
.back()->bucket_name
= "foo";
486 ls
.back()->bucket_id
= "bucket_id";
489 void cls_rgw_reshard_remove_op::dump(Formatter
*f
) const
491 ::encode_json("bucket_name", bucket_name
, f
);
492 ::encode_json("bucket_id", bucket_name
, f
);
496 void cls_rgw_set_bucket_resharding_op::generate_test_instances(
497 list
<cls_rgw_set_bucket_resharding_op
*>& ls
)
499 ls
.push_back(new cls_rgw_set_bucket_resharding_op
);
500 ls
.push_back(new cls_rgw_set_bucket_resharding_op
);
503 void cls_rgw_set_bucket_resharding_op::dump(Formatter
*f
) const
505 ::encode_json("entry", entry
, f
);
508 void cls_rgw_clear_bucket_resharding_op::generate_test_instances(
509 list
<cls_rgw_clear_bucket_resharding_op
*>& ls
)
511 ls
.push_back(new cls_rgw_clear_bucket_resharding_op
);
512 ls
.push_back(new cls_rgw_clear_bucket_resharding_op
);
515 void cls_rgw_clear_bucket_resharding_op::dump(Formatter
*f
) const
519 void cls_rgw_guard_bucket_resharding_op::generate_test_instances(
520 list
<cls_rgw_guard_bucket_resharding_op
*>& ls
)
522 ls
.push_back(new cls_rgw_guard_bucket_resharding_op
);
523 ls
.push_back(new cls_rgw_guard_bucket_resharding_op
);
526 void cls_rgw_guard_bucket_resharding_op::dump(Formatter
*f
) const
528 ::encode_json("ret_err", ret_err
, f
);
532 void cls_rgw_get_bucket_resharding_op::generate_test_instances(
533 list
<cls_rgw_get_bucket_resharding_op
*>& ls
)
535 ls
.push_back(new cls_rgw_get_bucket_resharding_op
);
536 ls
.push_back(new cls_rgw_get_bucket_resharding_op
);
539 void cls_rgw_get_bucket_resharding_op::dump(Formatter
*f
) const