1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #include "cls/rgw/cls_rgw_ops.h"
6 #include "common/Formatter.h"
7 #include "common/ceph_json.h"
8 #include "include/utime.h"
10 void rgw_cls_tag_timeout_op::dump(Formatter
*f
) const
12 f
->dump_int("tag_timeout", tag_timeout
);
15 void rgw_cls_tag_timeout_op::generate_test_instances(list
<rgw_cls_tag_timeout_op
*>& ls
)
17 ls
.push_back(new rgw_cls_tag_timeout_op
);
18 ls
.push_back(new rgw_cls_tag_timeout_op
);
19 ls
.back()->tag_timeout
= 23323;
22 void cls_rgw_gc_set_entry_op::dump(Formatter
*f
) const
24 f
->dump_unsigned("expiration_secs", expiration_secs
);
25 f
->open_object_section("obj_info");
30 void cls_rgw_gc_set_entry_op::generate_test_instances(list
<cls_rgw_gc_set_entry_op
*>& ls
)
32 ls
.push_back(new cls_rgw_gc_set_entry_op
);
33 ls
.push_back(new cls_rgw_gc_set_entry_op
);
34 ls
.back()->expiration_secs
= 123;
37 void cls_rgw_gc_defer_entry_op::dump(Formatter
*f
) const
39 f
->dump_unsigned("expiration_secs", expiration_secs
);
40 f
->dump_string("tag", tag
);
43 void cls_rgw_gc_defer_entry_op::generate_test_instances(list
<cls_rgw_gc_defer_entry_op
*>& ls
)
45 ls
.push_back(new cls_rgw_gc_defer_entry_op
);
46 ls
.push_back(new cls_rgw_gc_defer_entry_op
);
47 ls
.back()->expiration_secs
= 123;
48 ls
.back()->tag
= "footag";
51 void cls_rgw_gc_list_op::dump(Formatter
*f
) const
53 f
->dump_string("marker", marker
);
54 f
->dump_unsigned("max", max
);
55 f
->dump_bool("expired_only", expired_only
);
58 void cls_rgw_gc_list_op::generate_test_instances(list
<cls_rgw_gc_list_op
*>& ls
)
60 ls
.push_back(new cls_rgw_gc_list_op
);
61 ls
.push_back(new cls_rgw_gc_list_op
);
62 ls
.back()->marker
= "mymarker";
63 ls
.back()->max
= 2312;
66 void cls_rgw_gc_list_ret::dump(Formatter
*f
) const
68 encode_json("entries", entries
, f
);
69 f
->dump_string("next_marker", next_marker
);
70 f
->dump_int("truncated", (int)truncated
);
73 void cls_rgw_gc_list_ret::generate_test_instances(list
<cls_rgw_gc_list_ret
*>& ls
)
75 ls
.push_back(new cls_rgw_gc_list_ret
);
76 ls
.push_back(new cls_rgw_gc_list_ret
);
77 ls
.back()->entries
.push_back(cls_rgw_gc_obj_info());
78 ls
.back()->truncated
= true;
82 void cls_rgw_gc_remove_op::dump(Formatter
*f
) const
84 encode_json("tags", tags
, f
);
87 void cls_rgw_gc_remove_op::generate_test_instances(list
<cls_rgw_gc_remove_op
*>& ls
)
89 ls
.push_back(new cls_rgw_gc_remove_op
);
90 ls
.push_back(new cls_rgw_gc_remove_op
);
91 ls
.back()->tags
.push_back("tag1");
92 ls
.back()->tags
.push_back("tag2");
95 void rgw_cls_obj_prepare_op::generate_test_instances(list
<rgw_cls_obj_prepare_op
*>& o
)
97 rgw_cls_obj_prepare_op
*op
= new rgw_cls_obj_prepare_op
;
98 op
->op
= CLS_RGW_OP_ADD
;
99 op
->key
.name
= "name";
101 op
->locator
= "locator";
103 o
.push_back(new rgw_cls_obj_prepare_op
);
106 void rgw_cls_obj_prepare_op::dump(Formatter
*f
) const
108 f
->dump_int("op", op
);
109 f
->dump_string("name", key
.name
);
110 f
->dump_string("tag", tag
);
111 f
->dump_string("locator", locator
);
112 f
->dump_bool("log_op", log_op
);
113 f
->dump_int("bilog_flags", bilog_flags
);
114 ::encode_json("zones_trace", zones_trace
, f
);
117 void rgw_cls_obj_complete_op::generate_test_instances(list
<rgw_cls_obj_complete_op
*>& o
)
119 rgw_cls_obj_complete_op
*op
= new rgw_cls_obj_complete_op
;
120 op
->op
= CLS_RGW_OP_DEL
;
121 op
->key
.name
= "name";
122 op
->locator
= "locator";
127 list
<rgw_bucket_dir_entry_meta
*> l
;
128 rgw_bucket_dir_entry_meta::generate_test_instances(l
);
129 list
<rgw_bucket_dir_entry_meta
*>::iterator iter
= l
.begin();
134 o
.push_back(new rgw_cls_obj_complete_op
);
137 void rgw_cls_obj_complete_op::dump(Formatter
*f
) const
139 f
->dump_int("op", (int)op
);
140 f
->dump_string("name", key
.name
);
141 f
->dump_string("instance", key
.instance
);
142 f
->dump_string("locator", locator
);
143 f
->open_object_section("ver");
146 f
->open_object_section("meta");
149 f
->dump_string("tag", tag
);
150 f
->dump_bool("log_op", log_op
);
151 f
->dump_int("bilog_flags", bilog_flags
);
152 ::encode_json("zones_trace", zones_trace
, f
);
155 void rgw_cls_link_olh_op::generate_test_instances(list
<rgw_cls_link_olh_op
*>& o
)
157 rgw_cls_link_olh_op
*op
= new rgw_cls_link_olh_op
;
158 op
->key
.name
= "name";
159 op
->olh_tag
= "olh_tag";
160 op
->delete_marker
= true;
161 op
->op_tag
= "op_tag";
163 list
<rgw_bucket_dir_entry_meta
*> l
;
164 rgw_bucket_dir_entry_meta::generate_test_instances(l
);
165 list
<rgw_bucket_dir_entry_meta
*>::iterator iter
= l
.begin();
171 o
.push_back(new rgw_cls_link_olh_op
);
174 void rgw_cls_link_olh_op::dump(Formatter
*f
) const
176 ::encode_json("key", key
, f
);
177 ::encode_json("olh_tag", olh_tag
, f
);
178 ::encode_json("delete_marker", delete_marker
, f
);
179 ::encode_json("op_tag", op_tag
, f
);
180 ::encode_json("meta", meta
, f
);
181 ::encode_json("olh_epoch", olh_epoch
, f
);
182 ::encode_json("log_op", log_op
, f
);
183 ::encode_json("bilog_flags", (uint32_t)bilog_flags
, f
);
184 utime_t
ut(unmod_since
);
185 ::encode_json("unmod_since", ut
, f
);
186 ::encode_json("high_precision_time", high_precision_time
, f
);
187 ::encode_json("zones_trace", zones_trace
, f
);
190 void rgw_cls_unlink_instance_op::generate_test_instances(list
<rgw_cls_unlink_instance_op
*>& o
)
192 rgw_cls_unlink_instance_op
*op
= new rgw_cls_unlink_instance_op
;
193 op
->key
.name
= "name";
194 op
->op_tag
= "op_tag";
200 o
.push_back(new rgw_cls_unlink_instance_op
);
203 void rgw_cls_unlink_instance_op::dump(Formatter
*f
) const
205 ::encode_json("key", key
, f
);
206 ::encode_json("op_tag", op_tag
, f
);
207 ::encode_json("olh_epoch", olh_epoch
, f
);
208 ::encode_json("log_op", log_op
, f
);
209 ::encode_json("bilog_flags", (uint32_t)bilog_flags
, f
);
210 ::encode_json("zones_trace", zones_trace
, f
);
213 void rgw_cls_read_olh_log_op::generate_test_instances(list
<rgw_cls_read_olh_log_op
*>& o
)
215 rgw_cls_read_olh_log_op
*op
= new rgw_cls_read_olh_log_op
;
216 op
->olh
.name
= "name";
217 op
->ver_marker
= 123;
218 op
->olh_tag
= "olh_tag";
222 o
.push_back(new rgw_cls_read_olh_log_op
);
225 void rgw_cls_read_olh_log_op::dump(Formatter
*f
) const
227 ::encode_json("olh", olh
, f
);
228 ::encode_json("ver_marker", ver_marker
, f
);
229 ::encode_json("olh_tag", olh_tag
, f
);
232 void rgw_cls_read_olh_log_ret::generate_test_instances(list
<rgw_cls_read_olh_log_ret
*>& o
)
234 rgw_cls_read_olh_log_ret
*r
= new rgw_cls_read_olh_log_ret
;
235 r
->is_truncated
= true;
236 list
<rgw_bucket_olh_log_entry
*> l
;
237 rgw_bucket_olh_log_entry::generate_test_instances(l
);
238 list
<rgw_bucket_olh_log_entry
*>::iterator iter
= l
.begin();
239 r
->log
[1].push_back(*(*iter
));
243 o
.push_back(new rgw_cls_read_olh_log_ret
);
246 void rgw_cls_read_olh_log_ret::dump(Formatter
*f
) const
248 ::encode_json("log", log
, f
);
249 ::encode_json("is_truncated", is_truncated
, f
);
252 void rgw_cls_trim_olh_log_op::generate_test_instances(list
<rgw_cls_trim_olh_log_op
*>& o
)
254 rgw_cls_trim_olh_log_op
*op
= new rgw_cls_trim_olh_log_op
;
255 op
->olh
.name
= "olh.name";
257 op
->olh_tag
= "olh_tag";
261 o
.push_back(new rgw_cls_trim_olh_log_op
);
264 void rgw_cls_trim_olh_log_op::dump(Formatter
*f
) const
266 ::encode_json("olh", olh
, f
);
267 ::encode_json("ver", ver
, f
);
268 ::encode_json("olh_tag", olh_tag
, f
);
271 void rgw_cls_bucket_clear_olh_op::generate_test_instances(list
<rgw_cls_bucket_clear_olh_op
*>& o
)
274 rgw_cls_bucket_clear_olh_op
*op
= new rgw_cls_bucket_clear_olh_op
;
275 op
->key
.name
= "key.name";
276 op
->olh_tag
= "olh_tag";
279 o
.push_back(new rgw_cls_bucket_clear_olh_op
);
282 void rgw_cls_bucket_clear_olh_op::dump(Formatter
*f
) const
284 ::encode_json("key", key
, f
);
285 ::encode_json("olh_tag", olh_tag
, f
);
288 void rgw_cls_list_op::generate_test_instances(list
<rgw_cls_list_op
*>& o
)
290 rgw_cls_list_op
*op
= new rgw_cls_list_op
;
291 op
->start_obj
.name
= "start_obj";
292 op
->num_entries
= 100;
293 op
->filter_prefix
= "filter_prefix";
295 o
.push_back(new rgw_cls_list_op
);
298 void rgw_cls_list_op::dump(Formatter
*f
) const
300 f
->dump_string("start_obj", start_obj
.name
);
301 f
->dump_unsigned("num_entries", num_entries
);
304 void rgw_cls_list_ret::generate_test_instances(list
<rgw_cls_list_ret
*>& o
)
306 list
<rgw_bucket_dir
*> l
;
307 rgw_bucket_dir::generate_test_instances(l
);
308 list
<rgw_bucket_dir
*>::iterator iter
;
309 for (iter
= l
.begin(); iter
!= l
.end(); ++iter
) {
310 rgw_bucket_dir
*d
= *iter
;
312 rgw_cls_list_ret
*ret
= new rgw_cls_list_ret
;
314 ret
->is_truncated
= true;
321 o
.push_back(new rgw_cls_list_ret
);
324 void rgw_cls_list_ret::dump(Formatter
*f
) const
326 f
->open_object_section("dir");
329 f
->dump_int("is_truncated", (int)is_truncated
);
332 void rgw_cls_check_index_ret::generate_test_instances(list
<rgw_cls_check_index_ret
*>& o
)
334 list
<rgw_bucket_dir_header
*> h
;
335 rgw_bucket_dir_header::generate_test_instances(h
);
336 rgw_cls_check_index_ret
*r
= new rgw_cls_check_index_ret
;
337 r
->existing_header
= *(h
.front());
338 r
->calculated_header
= *(h
.front());
341 for (list
<rgw_bucket_dir_header
*>::iterator iter
= h
.begin(); iter
!= h
.end(); ++iter
) {
344 o
.push_back(new rgw_cls_check_index_ret
);
347 void rgw_cls_check_index_ret::dump(Formatter
*f
) const
349 ::encode_json("existing_header", existing_header
, f
);
350 ::encode_json("calculated_header", calculated_header
, f
);
353 void rgw_cls_bucket_update_stats_op::generate_test_instances(list
<rgw_cls_bucket_update_stats_op
*>& o
)
355 rgw_cls_bucket_update_stats_op
*r
= new rgw_cls_bucket_update_stats_op
;
357 rgw_bucket_category_stats
& s
= r
->stats
[RGWObjCategory::None
];
359 s
.total_size_rounded
= 4096;
363 o
.push_back(new rgw_cls_bucket_update_stats_op
);
366 void rgw_cls_bucket_update_stats_op::dump(Formatter
*f
) const
368 ::encode_json("absolute", absolute
, f
);
369 map
<int, rgw_bucket_category_stats
> s
;
370 for (auto& entry
: stats
) {
371 s
[(int)entry
.first
] = entry
.second
;
373 ::encode_json("stats", s
, f
);
376 void cls_rgw_bi_log_list_op::dump(Formatter
*f
) const
378 f
->dump_string("marker", marker
);
379 f
->dump_unsigned("max", max
);
382 void cls_rgw_bi_log_list_op::generate_test_instances(list
<cls_rgw_bi_log_list_op
*>& ls
)
384 ls
.push_back(new cls_rgw_bi_log_list_op
);
385 ls
.push_back(new cls_rgw_bi_log_list_op
);
386 ls
.back()->marker
= "mark";
387 ls
.back()->max
= 123;
390 void cls_rgw_bi_log_trim_op::dump(Formatter
*f
) const
392 f
->dump_string("start_marker", start_marker
);
393 f
->dump_string("end_marker", end_marker
);
396 void cls_rgw_bi_log_trim_op::generate_test_instances(list
<cls_rgw_bi_log_trim_op
*>& ls
)
398 ls
.push_back(new cls_rgw_bi_log_trim_op
);
399 ls
.push_back(new cls_rgw_bi_log_trim_op
);
400 ls
.back()->start_marker
= "foo";
401 ls
.back()->end_marker
= "bar";
404 void cls_rgw_bi_log_list_ret::dump(Formatter
*f
) const
406 encode_json("entries", entries
, f
);
407 f
->dump_unsigned("truncated", (int)truncated
);
410 void cls_rgw_bi_log_list_ret::generate_test_instances(list
<cls_rgw_bi_log_list_ret
*>& ls
)
412 ls
.push_back(new cls_rgw_bi_log_list_ret
);
413 ls
.push_back(new cls_rgw_bi_log_list_ret
);
414 ls
.back()->entries
.push_back(rgw_bi_log_entry());
415 ls
.back()->truncated
= true;
418 void cls_rgw_reshard_add_op::generate_test_instances(list
<cls_rgw_reshard_add_op
*>& ls
)
420 ls
.push_back(new cls_rgw_reshard_add_op
);
421 ls
.push_back(new cls_rgw_reshard_add_op
);
422 list
<cls_rgw_reshard_entry
*> l
;
423 cls_rgw_reshard_entry::generate_test_instances(l
);
424 list
<cls_rgw_reshard_entry
*>::iterator iter
= l
.begin();
425 ls
.back()->entry
= *(*iter
);
428 void cls_rgw_reshard_add_op::dump(Formatter
*f
) const
430 ::encode_json("entry", entry
, f
);
433 void cls_rgw_reshard_list_op::generate_test_instances(list
<cls_rgw_reshard_list_op
*>& ls
)
435 ls
.push_back(new cls_rgw_reshard_list_op
);
436 ls
.push_back(new cls_rgw_reshard_list_op
);
437 ls
.back()->max
= 1000;
438 ls
.back()->marker
= "foo";
441 void cls_rgw_reshard_list_op::dump(Formatter
*f
) const
443 ::encode_json("max", max
, f
);
444 ::encode_json("marker", marker
, f
);
447 void cls_rgw_reshard_list_ret::generate_test_instances(list
<cls_rgw_reshard_list_ret
*>& ls
)
449 ls
.push_back(new cls_rgw_reshard_list_ret
);
450 ls
.push_back(new cls_rgw_reshard_list_ret
);
451 ls
.back()->entries
.push_back(cls_rgw_reshard_entry());
452 ls
.back()->is_truncated
= true;
455 void cls_rgw_reshard_list_ret::dump(Formatter
*f
) const
457 ::encode_json("entries", entries
, f
);
458 ::encode_json("is_truncated", is_truncated
, f
);
461 void cls_rgw_reshard_get_op::generate_test_instances(list
<cls_rgw_reshard_get_op
*>& ls
)
463 ls
.push_back(new cls_rgw_reshard_get_op
);
464 ls
.push_back(new cls_rgw_reshard_get_op
);
467 void cls_rgw_reshard_get_op::dump(Formatter
*f
) const
469 ::encode_json("entry", entry
, f
);
472 void cls_rgw_reshard_get_ret::generate_test_instances(list
<cls_rgw_reshard_get_ret
*>& ls
)
474 ls
.push_back(new cls_rgw_reshard_get_ret
);
475 ls
.push_back(new cls_rgw_reshard_get_ret
);
478 void cls_rgw_reshard_get_ret::dump(Formatter
*f
) const
480 ::encode_json("entry", entry
, f
);
483 void cls_rgw_reshard_remove_op::generate_test_instances(list
<cls_rgw_reshard_remove_op
*>& ls
)
485 ls
.push_back(new cls_rgw_reshard_remove_op
);
486 ls
.push_back(new cls_rgw_reshard_remove_op
);
487 ls
.back()->bucket_name
= "foo";
488 ls
.back()->bucket_id
= "bucket_id";
491 void cls_rgw_reshard_remove_op::dump(Formatter
*f
) const
493 ::encode_json("bucket_name", bucket_name
, f
);
494 ::encode_json("bucket_id", bucket_name
, f
);
498 void cls_rgw_set_bucket_resharding_op::generate_test_instances(
499 list
<cls_rgw_set_bucket_resharding_op
*>& ls
)
501 ls
.push_back(new cls_rgw_set_bucket_resharding_op
);
502 ls
.push_back(new cls_rgw_set_bucket_resharding_op
);
505 void cls_rgw_set_bucket_resharding_op::dump(Formatter
*f
) const
507 ::encode_json("entry", entry
, f
);
510 void cls_rgw_clear_bucket_resharding_op::generate_test_instances(
511 list
<cls_rgw_clear_bucket_resharding_op
*>& ls
)
513 ls
.push_back(new cls_rgw_clear_bucket_resharding_op
);
514 ls
.push_back(new cls_rgw_clear_bucket_resharding_op
);
517 void cls_rgw_clear_bucket_resharding_op::dump(Formatter
*f
) const
521 void cls_rgw_guard_bucket_resharding_op::generate_test_instances(
522 list
<cls_rgw_guard_bucket_resharding_op
*>& ls
)
524 ls
.push_back(new cls_rgw_guard_bucket_resharding_op
);
525 ls
.push_back(new cls_rgw_guard_bucket_resharding_op
);
528 void cls_rgw_guard_bucket_resharding_op::dump(Formatter
*f
) const
530 ::encode_json("ret_err", ret_err
, f
);
534 void cls_rgw_get_bucket_resharding_op::generate_test_instances(
535 list
<cls_rgw_get_bucket_resharding_op
*>& ls
)
537 ls
.push_back(new cls_rgw_get_bucket_resharding_op
);
538 ls
.push_back(new cls_rgw_get_bucket_resharding_op
);
541 void cls_rgw_get_bucket_resharding_op::dump(Formatter
*f
) const