]> git.proxmox.com Git - ceph.git/blob - ceph/src/cls/rgw/cls_rgw_ops.cc
update sources to v12.1.0
[ceph.git] / ceph / src / cls / rgw / cls_rgw_ops.cc
1
2 #include "cls/rgw/cls_rgw_ops.h"
3
4 #include "common/Formatter.h"
5 #include "common/ceph_json.h"
6 #include "include/utime.h"
7
8 void rgw_cls_tag_timeout_op::dump(Formatter *f) const
9 {
10 f->dump_int("tag_timeout", tag_timeout);
11 }
12
13 void rgw_cls_tag_timeout_op::generate_test_instances(list<rgw_cls_tag_timeout_op*>& ls)
14 {
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;
18 }
19
20 void cls_rgw_gc_set_entry_op::dump(Formatter *f) const
21 {
22 f->dump_unsigned("expiration_secs", expiration_secs);
23 f->open_object_section("obj_info");
24 info.dump(f);
25 f->close_section();
26 }
27
28 void cls_rgw_gc_set_entry_op::generate_test_instances(list<cls_rgw_gc_set_entry_op*>& ls)
29 {
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;
33 }
34
35 void cls_rgw_gc_defer_entry_op::dump(Formatter *f) const
36 {
37 f->dump_unsigned("expiration_secs", expiration_secs);
38 f->dump_string("tag", tag);
39 }
40
41 void cls_rgw_gc_defer_entry_op::generate_test_instances(list<cls_rgw_gc_defer_entry_op*>& ls)
42 {
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";
47 }
48
49 void cls_rgw_gc_list_op::dump(Formatter *f) const
50 {
51 f->dump_string("marker", marker);
52 f->dump_unsigned("max", max);
53 f->dump_bool("expired_only", expired_only);
54 }
55
56 void cls_rgw_gc_list_op::generate_test_instances(list<cls_rgw_gc_list_op*>& ls)
57 {
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;
62 }
63
64 void cls_rgw_gc_list_ret::dump(Formatter *f) const
65 {
66 encode_json("entries", entries, f);
67 f->dump_string("next_marker", next_marker);
68 f->dump_int("truncated", (int)truncated);
69 }
70
71 void cls_rgw_gc_list_ret::generate_test_instances(list<cls_rgw_gc_list_ret*>& ls)
72 {
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;
77 }
78
79
80 void cls_rgw_gc_remove_op::dump(Formatter *f) const
81 {
82 encode_json("tags", tags, f);
83 }
84
85 void cls_rgw_gc_remove_op::generate_test_instances(list<cls_rgw_gc_remove_op*>& ls)
86 {
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");
91 }
92
93 void rgw_cls_obj_prepare_op::generate_test_instances(list<rgw_cls_obj_prepare_op*>& o)
94 {
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";
98 op->tag = "tag";
99 op->locator = "locator";
100 o.push_back(op);
101 o.push_back(new rgw_cls_obj_prepare_op);
102 }
103
104 void rgw_cls_obj_prepare_op::dump(Formatter *f) const
105 {
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);
113 }
114
115 void rgw_cls_obj_complete_op::generate_test_instances(list<rgw_cls_obj_complete_op*>& o)
116 {
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";
121 op->ver.pool = 2;
122 op->ver.epoch = 100;
123 op->tag = "tag";
124
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();
128 op->meta = *(*iter);
129
130 o.push_back(op);
131
132 o.push_back(new rgw_cls_obj_complete_op);
133 }
134
135 void rgw_cls_obj_complete_op::dump(Formatter *f) const
136 {
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");
142 ver.dump(f);
143 f->close_section();
144 f->open_object_section("meta");
145 meta.dump(f);
146 f->close_section();
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);
151 }
152
153 void rgw_cls_link_olh_op::generate_test_instances(list<rgw_cls_link_olh_op*>& o)
154 {
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";
160 op->olh_epoch = 123;
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();
164 op->meta = *(*iter);
165 op->log_op = true;
166
167 o.push_back(op);
168
169 o.push_back(new rgw_cls_link_olh_op);
170 }
171
172 void rgw_cls_link_olh_op::dump(Formatter *f) const
173 {
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);
186 }
187
188 void rgw_cls_unlink_instance_op::generate_test_instances(list<rgw_cls_unlink_instance_op*>& o)
189 {
190 rgw_cls_unlink_instance_op *op = new rgw_cls_unlink_instance_op;
191 op->key.name = "name";
192 op->op_tag = "op_tag";
193 op->olh_epoch = 124;
194 op->log_op = true;
195
196 o.push_back(op);
197
198 o.push_back(new rgw_cls_unlink_instance_op);
199 }
200
201 void rgw_cls_unlink_instance_op::dump(Formatter *f) const
202 {
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);
209 }
210
211 void rgw_cls_read_olh_log_op::generate_test_instances(list<rgw_cls_read_olh_log_op*>& o)
212 {
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";
217
218 o.push_back(op);
219
220 o.push_back(new rgw_cls_read_olh_log_op);
221 }
222
223 void rgw_cls_read_olh_log_op::dump(Formatter *f) const
224 {
225 ::encode_json("olh", olh, f);
226 ::encode_json("ver_marker", ver_marker, f);
227 ::encode_json("olh_tag", olh_tag, f);
228 }
229
230 void rgw_cls_read_olh_log_ret::generate_test_instances(list<rgw_cls_read_olh_log_ret*>& o)
231 {
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));
238
239 o.push_back(r);
240
241 o.push_back(new rgw_cls_read_olh_log_ret);
242 }
243
244 void rgw_cls_read_olh_log_ret::dump(Formatter *f) const
245 {
246 ::encode_json("log", log, f);
247 ::encode_json("is_truncated", is_truncated, f);
248 }
249
250 void rgw_cls_trim_olh_log_op::generate_test_instances(list<rgw_cls_trim_olh_log_op*>& o)
251 {
252 rgw_cls_trim_olh_log_op *op = new rgw_cls_trim_olh_log_op;
253 op->olh.name = "olh.name";
254 op->ver = 100;
255 op->olh_tag = "olh_tag";
256
257 o.push_back(op);
258
259 o.push_back(new rgw_cls_trim_olh_log_op);
260 }
261
262 void rgw_cls_trim_olh_log_op::dump(Formatter *f) const
263 {
264 ::encode_json("olh", olh, f);
265 ::encode_json("ver", ver, f);
266 ::encode_json("olh_tag", olh_tag, f);
267 }
268
269 void rgw_cls_bucket_clear_olh_op::generate_test_instances(list<rgw_cls_bucket_clear_olh_op *>& o)
270 {
271
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";
275
276 o.push_back(op);
277 o.push_back(new rgw_cls_bucket_clear_olh_op);
278 }
279
280 void rgw_cls_bucket_clear_olh_op::dump(Formatter *f) const
281 {
282 ::encode_json("key", key, f);
283 ::encode_json("olh_tag", olh_tag, f);
284 }
285
286 void rgw_cls_list_op::generate_test_instances(list<rgw_cls_list_op*>& o)
287 {
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";
292 o.push_back(op);
293 o.push_back(new rgw_cls_list_op);
294 }
295
296 void rgw_cls_list_op::dump(Formatter *f) const
297 {
298 f->dump_string("start_obj", start_obj.name);
299 f->dump_unsigned("num_entries", num_entries);
300 }
301
302 void rgw_cls_list_ret::generate_test_instances(list<rgw_cls_list_ret*>& o)
303 {
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;
309
310 rgw_cls_list_ret *ret = new rgw_cls_list_ret;
311 ret->dir = *d;
312 ret->is_truncated = true;
313
314 o.push_back(ret);
315
316 delete d;
317 }
318
319 o.push_back(new rgw_cls_list_ret);
320 }
321
322 void rgw_cls_list_ret::dump(Formatter *f) const
323 {
324 f->open_object_section("dir");
325 dir.dump(f);
326 f->close_section();
327 f->dump_int("is_truncated", (int)is_truncated);
328 }
329
330 void rgw_cls_check_index_ret::generate_test_instances(list<rgw_cls_check_index_ret*>& o)
331 {
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());
337 o.push_back(r);
338
339 for (list<rgw_bucket_dir_header *>::iterator iter = h.begin(); iter != h.end(); ++iter) {
340 delete *iter;
341 }
342 o.push_back(new rgw_cls_check_index_ret);
343 }
344
345 void rgw_cls_check_index_ret::dump(Formatter *f) const
346 {
347 ::encode_json("existing_header", existing_header, f);
348 ::encode_json("calculated_header", calculated_header, f);
349 }
350
351 void rgw_cls_bucket_update_stats_op::generate_test_instances(list<rgw_cls_bucket_update_stats_op*>& o)
352 {
353 rgw_cls_bucket_update_stats_op *r = new rgw_cls_bucket_update_stats_op;
354 r->absolute = true;
355 rgw_bucket_category_stats& s = r->stats[0];
356 s.total_size = 1;
357 s.total_size_rounded = 4096;
358 s.num_entries = 1;
359 o.push_back(r);
360
361 o.push_back(new rgw_cls_bucket_update_stats_op);
362 }
363
364 void rgw_cls_bucket_update_stats_op::dump(Formatter *f) const
365 {
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;
370 }
371 ::encode_json("stats", s, f);
372 }
373
374 void cls_rgw_bi_log_list_op::dump(Formatter *f) const
375 {
376 f->dump_string("marker", marker);
377 f->dump_unsigned("max", max);
378 }
379
380 void cls_rgw_bi_log_list_op::generate_test_instances(list<cls_rgw_bi_log_list_op*>& ls)
381 {
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;
386 }
387
388 void cls_rgw_bi_log_trim_op::dump(Formatter *f) const
389 {
390 f->dump_string("start_marker", start_marker);
391 f->dump_string("end_marker", end_marker);
392 }
393
394 void cls_rgw_bi_log_trim_op::generate_test_instances(list<cls_rgw_bi_log_trim_op*>& ls)
395 {
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";
400 }
401
402 void cls_rgw_bi_log_list_ret::dump(Formatter *f) const
403 {
404 encode_json("entries", entries, f);
405 f->dump_unsigned("truncated", (int)truncated);
406 }
407
408 void cls_rgw_bi_log_list_ret::generate_test_instances(list<cls_rgw_bi_log_list_ret*>& ls)
409 {
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;
414 }
415
416 void cls_rgw_reshard_add_op::generate_test_instances(list<cls_rgw_reshard_add_op*>& ls)
417 {
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);
424 }
425
426 void cls_rgw_reshard_add_op::dump(Formatter *f) const
427 {
428 ::encode_json("entry", entry, f);
429 }
430
431 void cls_rgw_reshard_list_op::generate_test_instances(list<cls_rgw_reshard_list_op*>& ls)
432 {
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";
437 }
438
439 void cls_rgw_reshard_list_op::dump(Formatter *f) const
440 {
441 ::encode_json("max", max, f);
442 ::encode_json("marker", marker, f);
443 }
444
445 void cls_rgw_reshard_list_ret::generate_test_instances(list<cls_rgw_reshard_list_ret*>& ls)
446 {
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;
451 }
452
453 void cls_rgw_reshard_list_ret::dump(Formatter *f) const
454 {
455 ::encode_json("entries", entries, f);
456 ::encode_json("is_truncated", is_truncated, f);
457 }
458
459 void cls_rgw_reshard_get_op::generate_test_instances(list<cls_rgw_reshard_get_op*>& ls)
460 {
461 ls.push_back(new cls_rgw_reshard_get_op);
462 ls.push_back(new cls_rgw_reshard_get_op);
463 }
464
465 void cls_rgw_reshard_get_op::dump(Formatter *f) const
466 {
467 ::encode_json("entry", entry, f);
468 }
469
470 void cls_rgw_reshard_get_ret::generate_test_instances(list<cls_rgw_reshard_get_ret*>& ls)
471 {
472 ls.push_back(new cls_rgw_reshard_get_ret);
473 ls.push_back(new cls_rgw_reshard_get_ret);
474 }
475
476 void cls_rgw_reshard_get_ret::dump(Formatter *f) const
477 {
478 ::encode_json("entry", entry, f);
479 }
480
481 void cls_rgw_reshard_remove_op::generate_test_instances(list<cls_rgw_reshard_remove_op*>& ls)
482 {
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";
487 }
488
489 void cls_rgw_reshard_remove_op::dump(Formatter *f) const
490 {
491 ::encode_json("bucket_name", bucket_name, f);
492 ::encode_json("bucket_id", bucket_name, f);
493 }
494
495
496 void cls_rgw_set_bucket_resharding_op::generate_test_instances(
497 list<cls_rgw_set_bucket_resharding_op*>& ls)
498 {
499 ls.push_back(new cls_rgw_set_bucket_resharding_op);
500 ls.push_back(new cls_rgw_set_bucket_resharding_op);
501 }
502
503 void cls_rgw_set_bucket_resharding_op::dump(Formatter *f) const
504 {
505 ::encode_json("entry", entry, f);
506 }
507
508 void cls_rgw_clear_bucket_resharding_op::generate_test_instances(
509 list<cls_rgw_clear_bucket_resharding_op*>& ls)
510 {
511 ls.push_back(new cls_rgw_clear_bucket_resharding_op);
512 ls.push_back(new cls_rgw_clear_bucket_resharding_op);
513 }
514
515 void cls_rgw_clear_bucket_resharding_op::dump(Formatter *f) const
516 {
517 }
518
519 void cls_rgw_guard_bucket_resharding_op::generate_test_instances(
520 list<cls_rgw_guard_bucket_resharding_op*>& ls)
521 {
522 ls.push_back(new cls_rgw_guard_bucket_resharding_op);
523 ls.push_back(new cls_rgw_guard_bucket_resharding_op);
524 }
525
526 void cls_rgw_guard_bucket_resharding_op::dump(Formatter *f) const
527 {
528 ::encode_json("ret_err", ret_err, f);
529 }
530
531
532 void cls_rgw_get_bucket_resharding_op::generate_test_instances(
533 list<cls_rgw_get_bucket_resharding_op*>& ls)
534 {
535 ls.push_back(new cls_rgw_get_bucket_resharding_op);
536 ls.push_back(new cls_rgw_get_bucket_resharding_op);
537 }
538
539 void cls_rgw_get_bucket_resharding_op::dump(Formatter *f) const
540 {
541 }
542
543
544
545
546