1 #ifndef CEPH_CLS_RGW_OPS_H
2 #define CEPH_CLS_RGW_OPS_H
4 #include "cls/rgw/cls_rgw_types.h"
6 struct rgw_cls_tag_timeout_op
10 rgw_cls_tag_timeout_op() : tag_timeout(0) {}
12 void encode(bufferlist
&bl
) const {
13 ENCODE_START(1, 1, bl
);
14 encode(tag_timeout
, bl
);
17 void decode(bufferlist::const_iterator
&bl
) {
19 decode(tag_timeout
, bl
);
22 void dump(Formatter
*f
) const;
23 static void generate_test_instances(list
<rgw_cls_tag_timeout_op
*>& ls
);
25 WRITE_CLASS_ENCODER(rgw_cls_tag_timeout_op
)
27 struct rgw_cls_obj_prepare_op
35 rgw_zone_set zones_trace
;
37 rgw_cls_obj_prepare_op() : op(CLS_RGW_OP_UNKNOWN
), log_op(false), bilog_flags(0) {}
39 void encode(bufferlist
&bl
) const {
40 ENCODE_START(7, 5, bl
);
41 uint8_t c
= (uint8_t)op
;
47 encode(bilog_flags
, bl
);
48 encode(zones_trace
, bl
);
51 void decode(bufferlist::const_iterator
&bl
) {
52 DECODE_START_LEGACY_COMPAT_LEN(7, 3, 3, bl
);
70 decode(bilog_flags
, bl
);
73 decode(zones_trace
, bl
);
77 void dump(Formatter
*f
) const;
78 static void generate_test_instances(list
<rgw_cls_obj_prepare_op
*>& o
);
80 WRITE_CLASS_ENCODER(rgw_cls_obj_prepare_op
)
82 struct rgw_cls_obj_complete_op
87 rgw_bucket_entry_ver ver
;
88 rgw_bucket_dir_entry_meta meta
;
93 list
<cls_rgw_obj_key
> remove_objs
;
94 rgw_zone_set zones_trace
;
96 rgw_cls_obj_complete_op() : op(CLS_RGW_OP_ADD
), log_op(false), bilog_flags(0) {}
98 void encode(bufferlist
&bl
) const {
99 ENCODE_START(9, 7, bl
);
100 uint8_t c
= (uint8_t)op
;
102 encode(ver
.epoch
, bl
);
106 encode(remove_objs
, bl
);
110 encode(bilog_flags
, bl
);
111 encode(zones_trace
, bl
);
114 void decode(bufferlist::const_iterator
&bl
) {
115 DECODE_START_LEGACY_COMPAT_LEN(9, 3, 3, bl
);
120 decode(key
.name
, bl
);
122 decode(ver
.epoch
, bl
);
128 if (struct_v
>= 4 && struct_v
< 7) {
129 list
<string
> old_remove_objs
;
130 decode(old_remove_objs
, bl
);
132 for (list
<string
>::iterator iter
= old_remove_objs
.begin();
133 iter
!= old_remove_objs
.end(); ++iter
) {
136 remove_objs
.push_back(k
);
139 decode(remove_objs
, bl
);
153 decode(bilog_flags
, bl
);
156 decode(zones_trace
, bl
);
160 void dump(Formatter
*f
) const;
161 static void generate_test_instances(list
<rgw_cls_obj_complete_op
*>& o
);
163 WRITE_CLASS_ENCODER(rgw_cls_obj_complete_op
)
165 struct rgw_cls_link_olh_op
{
170 rgw_bucket_dir_entry_meta meta
;
173 uint16_t bilog_flags
;
174 real_time unmod_since
; /* only create delete marker if newer then this */
175 bool high_precision_time
;
176 rgw_zone_set zones_trace
;
178 rgw_cls_link_olh_op() : delete_marker(false), olh_epoch(0), log_op(false), bilog_flags(0), high_precision_time(false) {}
180 void encode(bufferlist
& bl
) const {
181 ENCODE_START(5, 1, bl
);
184 encode(delete_marker
, bl
);
187 encode(olh_epoch
, bl
);
189 encode(bilog_flags
, bl
);
190 uint64_t t
= ceph::real_clock::to_time_t(unmod_since
);
192 encode(unmod_since
, bl
);
193 encode(high_precision_time
, bl
);
194 encode(zones_trace
, bl
);
198 void decode(bufferlist::const_iterator
& bl
) {
202 decode(delete_marker
, bl
);
205 decode(olh_epoch
, bl
);
207 decode(bilog_flags
, bl
);
211 unmod_since
= ceph::real_clock::from_time_t(static_cast<time_t>(t
));
216 decode(unmod_since
, bl
);
219 decode(high_precision_time
, bl
);
222 decode(zones_trace
, bl
);
227 static void generate_test_instances(list
<rgw_cls_link_olh_op
*>& o
);
228 void dump(Formatter
*f
) const;
230 WRITE_CLASS_ENCODER(rgw_cls_link_olh_op
)
232 struct rgw_cls_unlink_instance_op
{
237 uint16_t bilog_flags
;
239 rgw_zone_set zones_trace
;
241 rgw_cls_unlink_instance_op() : olh_epoch(0), log_op(false), bilog_flags(0) {}
243 void encode(bufferlist
& bl
) const {
244 ENCODE_START(3, 1, bl
);
247 encode(olh_epoch
, bl
);
249 encode(bilog_flags
, bl
);
251 encode(zones_trace
, bl
);
255 void decode(bufferlist::const_iterator
& bl
) {
259 decode(olh_epoch
, bl
);
261 decode(bilog_flags
, bl
);
266 decode(zones_trace
, bl
);
271 static void generate_test_instances(list
<rgw_cls_unlink_instance_op
*>& o
);
272 void dump(Formatter
*f
) const;
274 WRITE_CLASS_ENCODER(rgw_cls_unlink_instance_op
)
276 struct rgw_cls_read_olh_log_op
282 rgw_cls_read_olh_log_op() : ver_marker(0) {}
284 void encode(bufferlist
&bl
) const {
285 ENCODE_START(1, 1, bl
);
287 encode(ver_marker
, bl
);
291 void decode(bufferlist::const_iterator
&bl
) {
294 decode(ver_marker
, bl
);
298 static void generate_test_instances(list
<rgw_cls_read_olh_log_op
*>& o
);
299 void dump(Formatter
*f
) const;
301 WRITE_CLASS_ENCODER(rgw_cls_read_olh_log_op
)
304 struct rgw_cls_read_olh_log_ret
306 map
<uint64_t, vector
<rgw_bucket_olh_log_entry
> > log
;
309 rgw_cls_read_olh_log_ret() : is_truncated(false) {}
311 void encode(bufferlist
&bl
) const {
312 ENCODE_START(1, 1, bl
);
314 encode(is_truncated
, bl
);
317 void decode(bufferlist::const_iterator
&bl
) {
320 decode(is_truncated
, bl
);
323 static void generate_test_instances(list
<rgw_cls_read_olh_log_ret
*>& o
);
324 void dump(Formatter
*f
) const;
326 WRITE_CLASS_ENCODER(rgw_cls_read_olh_log_ret
)
328 struct rgw_cls_trim_olh_log_op
334 rgw_cls_trim_olh_log_op() : ver(0) {}
336 void encode(bufferlist
&bl
) const {
337 ENCODE_START(1, 1, bl
);
343 void decode(bufferlist::const_iterator
&bl
) {
350 static void generate_test_instances(list
<rgw_cls_trim_olh_log_op
*>& o
);
351 void dump(Formatter
*f
) const;
353 WRITE_CLASS_ENCODER(rgw_cls_trim_olh_log_op
)
355 struct rgw_cls_bucket_clear_olh_op
{
359 rgw_cls_bucket_clear_olh_op() {}
361 void encode(bufferlist
& bl
) const {
362 ENCODE_START(1, 1, bl
);
368 void decode(bufferlist::const_iterator
& bl
) {
375 static void generate_test_instances(list
<rgw_cls_bucket_clear_olh_op
*>& o
);
376 void dump(Formatter
*f
) const;
378 WRITE_CLASS_ENCODER(rgw_cls_bucket_clear_olh_op
)
380 struct rgw_cls_list_op
382 cls_rgw_obj_key start_obj
;
383 uint32_t num_entries
;
384 string filter_prefix
;
387 rgw_cls_list_op() : num_entries(0), list_versions(false) {}
389 void encode(bufferlist
&bl
) const {
390 ENCODE_START(5, 4, bl
);
391 encode(num_entries
, bl
);
392 encode(filter_prefix
, bl
);
393 encode(start_obj
, bl
);
394 encode(list_versions
, bl
);
397 void decode(bufferlist::const_iterator
&bl
) {
398 DECODE_START_LEGACY_COMPAT_LEN(5, 2, 2, bl
);
400 decode(start_obj
.name
, bl
);
402 decode(num_entries
, bl
);
404 decode(filter_prefix
, bl
);
406 decode(start_obj
, bl
);
408 decode(list_versions
, bl
);
411 void dump(Formatter
*f
) const;
412 static void generate_test_instances(list
<rgw_cls_list_op
*>& o
);
414 WRITE_CLASS_ENCODER(rgw_cls_list_op
)
416 struct rgw_cls_list_ret
{
420 rgw_cls_list_ret() : is_truncated(false) {}
422 void encode(bufferlist
&bl
) const {
423 ENCODE_START(2, 2, bl
);
425 encode(is_truncated
, bl
);
428 void decode(bufferlist::const_iterator
&bl
) {
429 DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl
);
431 decode(is_truncated
, bl
);
434 void dump(Formatter
*f
) const;
435 static void generate_test_instances(list
<rgw_cls_list_ret
*>& o
);
437 WRITE_CLASS_ENCODER(rgw_cls_list_ret
)
439 struct rgw_cls_check_index_ret
441 rgw_bucket_dir_header existing_header
;
442 rgw_bucket_dir_header calculated_header
;
444 rgw_cls_check_index_ret() {}
446 void encode(bufferlist
&bl
) const {
447 ENCODE_START(1, 1, bl
);
448 encode(existing_header
, bl
);
449 encode(calculated_header
, bl
);
452 void decode(bufferlist::const_iterator
&bl
) {
454 decode(existing_header
, bl
);
455 decode(calculated_header
, bl
);
458 void dump(Formatter
*f
) const;
459 static void generate_test_instances(list
<rgw_cls_check_index_ret
*>& o
);
461 WRITE_CLASS_ENCODER(rgw_cls_check_index_ret
)
463 struct rgw_cls_bucket_update_stats_op
465 bool absolute
{false};
466 map
<RGWObjCategory
, rgw_bucket_category_stats
> stats
;
468 rgw_cls_bucket_update_stats_op() {}
470 void encode(bufferlist
&bl
) const {
471 ENCODE_START(1, 1, bl
);
472 encode(absolute
, bl
);
476 void decode(bufferlist::const_iterator
&bl
) {
478 decode(absolute
, bl
);
482 void dump(Formatter
*f
) const;
483 static void generate_test_instances(list
<rgw_cls_bucket_update_stats_op
*>& o
);
485 WRITE_CLASS_ENCODER(rgw_cls_bucket_update_stats_op
)
487 struct rgw_cls_obj_remove_op
{
488 list
<string
> keep_attr_prefixes
;
490 void encode(bufferlist
& bl
) const {
491 ENCODE_START(1, 1, bl
);
492 encode(keep_attr_prefixes
, bl
);
496 void decode(bufferlist::const_iterator
& bl
) {
498 decode(keep_attr_prefixes
, bl
);
502 WRITE_CLASS_ENCODER(rgw_cls_obj_remove_op
)
504 struct rgw_cls_obj_store_pg_ver_op
{
507 void encode(bufferlist
& bl
) const {
508 ENCODE_START(1, 1, bl
);
513 void decode(bufferlist::const_iterator
& bl
) {
519 WRITE_CLASS_ENCODER(rgw_cls_obj_store_pg_ver_op
)
521 struct rgw_cls_obj_check_attrs_prefix
{
525 rgw_cls_obj_check_attrs_prefix() : fail_if_exist(false) {}
527 void encode(bufferlist
& bl
) const {
528 ENCODE_START(1, 1, bl
);
529 encode(check_prefix
, bl
);
530 encode(fail_if_exist
, bl
);
534 void decode(bufferlist::const_iterator
& bl
) {
536 decode(check_prefix
, bl
);
537 decode(fail_if_exist
, bl
);
541 WRITE_CLASS_ENCODER(rgw_cls_obj_check_attrs_prefix
)
543 struct rgw_cls_obj_check_mtime
{
544 ceph::real_time mtime
;
545 RGWCheckMTimeType type
;
546 bool high_precision_time
;
548 rgw_cls_obj_check_mtime() : type(CLS_RGW_CHECK_TIME_MTIME_EQ
), high_precision_time(false) {}
550 void encode(bufferlist
& bl
) const {
551 ENCODE_START(2, 1, bl
);
553 encode((uint8_t)type
, bl
);
554 encode(high_precision_time
, bl
);
558 void decode(bufferlist::const_iterator
& bl
) {
563 type
= (RGWCheckMTimeType
)c
;
565 decode(high_precision_time
, bl
);
570 WRITE_CLASS_ENCODER(rgw_cls_obj_check_mtime
)
572 struct rgw_cls_usage_log_add_op
{
573 rgw_usage_log_info info
;
576 void encode(bufferlist
& bl
) const {
577 ENCODE_START(2, 1, bl
);
579 encode(user
.to_str(), bl
);
583 void decode(bufferlist::const_iterator
& bl
) {
594 WRITE_CLASS_ENCODER(rgw_cls_usage_log_add_op
)
596 struct rgw_cls_bi_get_op
{
598 BIIndexType type
; /* namespace: plain, instance, olh */
600 rgw_cls_bi_get_op() : type(BIIndexType::Plain
) {}
602 void encode(bufferlist
& bl
) const {
603 ENCODE_START(1, 1, bl
);
605 encode((uint8_t)type
, bl
);
609 void decode(bufferlist::const_iterator
& bl
) {
614 type
= (BIIndexType
)c
;
618 WRITE_CLASS_ENCODER(rgw_cls_bi_get_op
)
620 struct rgw_cls_bi_get_ret
{
621 rgw_cls_bi_entry entry
;
623 rgw_cls_bi_get_ret() {}
625 void encode(bufferlist
& bl
) const {
626 ENCODE_START(1, 1, bl
);
631 void decode(bufferlist::const_iterator
& bl
) {
637 WRITE_CLASS_ENCODER(rgw_cls_bi_get_ret
)
639 struct rgw_cls_bi_put_op
{
640 rgw_cls_bi_entry entry
;
642 rgw_cls_bi_put_op() {}
644 void encode(bufferlist
& bl
) const {
645 ENCODE_START(1, 1, bl
);
650 void decode(bufferlist::const_iterator
& bl
) {
656 WRITE_CLASS_ENCODER(rgw_cls_bi_put_op
)
658 struct rgw_cls_bi_list_op
{
663 rgw_cls_bi_list_op() : max(0) {}
665 void encode(bufferlist
& bl
) const {
666 ENCODE_START(1, 1, bl
);
673 void decode(bufferlist::const_iterator
& bl
) {
681 WRITE_CLASS_ENCODER(rgw_cls_bi_list_op
)
683 struct rgw_cls_bi_list_ret
{
684 list
<rgw_cls_bi_entry
> entries
;
687 rgw_cls_bi_list_ret() : is_truncated(false) {}
689 void encode(bufferlist
& bl
) const {
690 ENCODE_START(1, 1, bl
);
692 encode(is_truncated
, bl
);
696 void decode(bufferlist::const_iterator
& bl
) {
699 decode(is_truncated
, bl
);
703 WRITE_CLASS_ENCODER(rgw_cls_bi_list_ret
)
705 struct rgw_cls_usage_log_read_op
{
706 uint64_t start_epoch
;
711 string iter
; // should be empty for the first call, non empty for subsequent calls
712 uint32_t max_entries
;
714 void encode(bufferlist
& bl
) const {
715 ENCODE_START(2, 1, bl
);
716 encode(start_epoch
, bl
);
717 encode(end_epoch
, bl
);
720 encode(max_entries
, bl
);
725 void decode(bufferlist::const_iterator
& bl
) {
727 decode(start_epoch
, bl
);
728 decode(end_epoch
, bl
);
731 decode(max_entries
, bl
);
738 WRITE_CLASS_ENCODER(rgw_cls_usage_log_read_op
)
740 struct rgw_cls_usage_log_read_ret
{
741 map
<rgw_user_bucket
, rgw_usage_log_entry
> usage
;
745 void encode(bufferlist
& bl
) const {
746 ENCODE_START(1, 1, bl
);
748 encode(truncated
, bl
);
749 encode(next_iter
, bl
);
753 void decode(bufferlist::const_iterator
& bl
) {
756 decode(truncated
, bl
);
757 decode(next_iter
, bl
);
761 WRITE_CLASS_ENCODER(rgw_cls_usage_log_read_ret
)
763 struct rgw_cls_usage_log_trim_op
{
764 uint64_t start_epoch
;
769 void encode(bufferlist
& bl
) const {
770 ENCODE_START(3, 2, bl
);
771 encode(start_epoch
, bl
);
772 encode(end_epoch
, bl
);
778 void decode(bufferlist::const_iterator
& bl
) {
780 decode(start_epoch
, bl
);
781 decode(end_epoch
, bl
);
789 WRITE_CLASS_ENCODER(rgw_cls_usage_log_trim_op
)
791 struct cls_rgw_gc_set_entry_op
{
792 uint32_t expiration_secs
;
793 cls_rgw_gc_obj_info info
;
794 cls_rgw_gc_set_entry_op() : expiration_secs(0) {}
796 void encode(bufferlist
& bl
) const {
797 ENCODE_START(1, 1, bl
);
798 encode(expiration_secs
, bl
);
803 void decode(bufferlist::const_iterator
& bl
) {
805 decode(expiration_secs
, bl
);
810 void dump(Formatter
*f
) const;
811 static void generate_test_instances(list
<cls_rgw_gc_set_entry_op
*>& ls
);
813 WRITE_CLASS_ENCODER(cls_rgw_gc_set_entry_op
)
815 struct cls_rgw_gc_defer_entry_op
{
816 uint32_t expiration_secs
;
818 cls_rgw_gc_defer_entry_op() : expiration_secs(0) {}
820 void encode(bufferlist
& bl
) const {
821 ENCODE_START(1, 1, bl
);
822 encode(expiration_secs
, bl
);
827 void decode(bufferlist::const_iterator
& bl
) {
829 decode(expiration_secs
, bl
);
834 void dump(Formatter
*f
) const;
835 static void generate_test_instances(list
<cls_rgw_gc_defer_entry_op
*>& ls
);
837 WRITE_CLASS_ENCODER(cls_rgw_gc_defer_entry_op
)
839 struct cls_rgw_gc_list_op
{
844 cls_rgw_gc_list_op() : max(0), expired_only(true) {}
846 void encode(bufferlist
& bl
) const {
847 ENCODE_START(2, 1, bl
);
850 encode(expired_only
, bl
);
854 void decode(bufferlist::const_iterator
& bl
) {
859 decode(expired_only
, bl
);
864 void dump(Formatter
*f
) const;
865 static void generate_test_instances(list
<cls_rgw_gc_list_op
*>& ls
);
867 WRITE_CLASS_ENCODER(cls_rgw_gc_list_op
)
869 struct cls_rgw_gc_list_ret
{
870 list
<cls_rgw_gc_obj_info
> entries
;
874 cls_rgw_gc_list_ret() : truncated(false) {}
876 void encode(bufferlist
& bl
) const {
877 ENCODE_START(2, 1, bl
);
879 encode(next_marker
, bl
);
880 encode(truncated
, bl
);
884 void decode(bufferlist::const_iterator
& bl
) {
888 decode(next_marker
, bl
);
889 decode(truncated
, bl
);
893 void dump(Formatter
*f
) const;
894 static void generate_test_instances(list
<cls_rgw_gc_list_ret
*>& ls
);
896 WRITE_CLASS_ENCODER(cls_rgw_gc_list_ret
)
898 struct cls_rgw_gc_remove_op
{
901 cls_rgw_gc_remove_op() {}
903 void encode(bufferlist
& bl
) const {
904 ENCODE_START(1, 1, bl
);
909 void decode(bufferlist::const_iterator
& bl
) {
915 void dump(Formatter
*f
) const;
916 static void generate_test_instances(list
<cls_rgw_gc_remove_op
*>& ls
);
918 WRITE_CLASS_ENCODER(cls_rgw_gc_remove_op
)
920 struct cls_rgw_bi_log_list_op
{
924 cls_rgw_bi_log_list_op() : max(0) {}
926 void encode(bufferlist
& bl
) const {
927 ENCODE_START(1, 1, bl
);
933 void decode(bufferlist::const_iterator
& bl
) {
940 void dump(Formatter
*f
) const;
941 static void generate_test_instances(list
<cls_rgw_bi_log_list_op
*>& ls
);
943 WRITE_CLASS_ENCODER(cls_rgw_bi_log_list_op
)
945 struct cls_rgw_bi_log_trim_op
{
949 cls_rgw_bi_log_trim_op() {}
951 void encode(bufferlist
& bl
) const {
952 ENCODE_START(1, 1, bl
);
953 encode(start_marker
, bl
);
954 encode(end_marker
, bl
);
958 void decode(bufferlist::const_iterator
& bl
) {
960 decode(start_marker
, bl
);
961 decode(end_marker
, bl
);
965 void dump(Formatter
*f
) const;
966 static void generate_test_instances(list
<cls_rgw_bi_log_trim_op
*>& ls
);
968 WRITE_CLASS_ENCODER(cls_rgw_bi_log_trim_op
)
970 struct cls_rgw_bi_log_list_ret
{
971 list
<rgw_bi_log_entry
> entries
;
974 cls_rgw_bi_log_list_ret() : truncated(false) {}
976 void encode(bufferlist
& bl
) const {
977 ENCODE_START(1, 1, bl
);
979 encode(truncated
, bl
);
983 void decode(bufferlist::const_iterator
& bl
) {
986 decode(truncated
, bl
);
990 void dump(Formatter
*f
) const;
991 static void generate_test_instances(list
<cls_rgw_bi_log_list_ret
*>& ls
);
993 WRITE_CLASS_ENCODER(cls_rgw_bi_log_list_ret
)
995 struct cls_rgw_lc_get_next_entry_op
{
997 cls_rgw_lc_get_next_entry_op() {}
999 void encode(bufferlist
& bl
) const {
1000 ENCODE_START(1, 1, bl
);
1005 void decode(bufferlist::const_iterator
& bl
) {
1006 DECODE_START(1, bl
);
1011 WRITE_CLASS_ENCODER(cls_rgw_lc_get_next_entry_op
)
1013 using rgw_lc_entry_t
= std::pair
<std::string
, int>;
1015 struct cls_rgw_lc_get_next_entry_ret
{
1016 rgw_lc_entry_t entry
;
1017 cls_rgw_lc_get_next_entry_ret() {}
1019 void encode(bufferlist
& bl
) const {
1020 ENCODE_START(1, 1, bl
);
1025 void decode(bufferlist::const_iterator
& bl
) {
1026 DECODE_START(1, bl
);
1032 WRITE_CLASS_ENCODER(cls_rgw_lc_get_next_entry_ret
)
1034 struct cls_rgw_lc_get_entry_op
{
1036 cls_rgw_lc_get_entry_op() {}
1037 cls_rgw_lc_get_entry_op(const std::string
& _marker
) : marker(_marker
) {}
1039 void encode(bufferlist
& bl
) const {
1040 ENCODE_START(1, 1, bl
);
1045 void decode(bufferlist::const_iterator
& bl
) {
1046 DECODE_START(1, bl
);
1051 WRITE_CLASS_ENCODER(cls_rgw_lc_get_entry_op
)
1053 struct cls_rgw_lc_get_entry_ret
{
1054 rgw_lc_entry_t entry
;
1055 cls_rgw_lc_get_entry_ret() {}
1056 cls_rgw_lc_get_entry_ret(rgw_lc_entry_t
&& _entry
) : entry(std::move(_entry
)) {}
1058 void encode(bufferlist
& bl
) const {
1059 ENCODE_START(1, 1, bl
);
1064 void decode(bufferlist::const_iterator
& bl
) {
1065 DECODE_START(1, bl
);
1071 WRITE_CLASS_ENCODER(cls_rgw_lc_get_entry_ret
)
1074 struct cls_rgw_lc_rm_entry_op
{
1075 rgw_lc_entry_t entry
;
1076 cls_rgw_lc_rm_entry_op() {}
1078 void encode(bufferlist
& bl
) const {
1079 ENCODE_START(1, 1, bl
);
1084 void decode(bufferlist::const_iterator
& bl
) {
1085 DECODE_START(1, bl
);
1090 WRITE_CLASS_ENCODER(cls_rgw_lc_rm_entry_op
)
1092 struct cls_rgw_lc_set_entry_op
{
1093 rgw_lc_entry_t entry
;
1094 cls_rgw_lc_set_entry_op() {}
1096 void encode(bufferlist
& bl
) const {
1097 ENCODE_START(1, 1, bl
);
1102 void decode(bufferlist::const_iterator
& bl
) {
1103 DECODE_START(1, bl
);
1108 WRITE_CLASS_ENCODER(cls_rgw_lc_set_entry_op
)
1110 struct cls_rgw_lc_put_head_op
{
1111 cls_rgw_lc_obj_head head
;
1114 cls_rgw_lc_put_head_op() {}
1116 void encode(bufferlist
& bl
) const {
1117 ENCODE_START(1, 1, bl
);
1122 void decode(bufferlist::const_iterator
& bl
) {
1123 DECODE_START(1, bl
);
1129 WRITE_CLASS_ENCODER(cls_rgw_lc_put_head_op
)
1131 struct cls_rgw_lc_get_head_ret
{
1132 cls_rgw_lc_obj_head head
;
1134 cls_rgw_lc_get_head_ret() {}
1136 void encode(bufferlist
& bl
) const {
1137 ENCODE_START(1, 1, bl
);
1142 void decode(bufferlist::const_iterator
& bl
) {
1143 DECODE_START(1, bl
);
1149 WRITE_CLASS_ENCODER(cls_rgw_lc_get_head_ret
)
1151 struct cls_rgw_lc_list_entries_op
{
1153 uint32_t max_entries
= 0;
1155 cls_rgw_lc_list_entries_op() {}
1157 void encode(bufferlist
& bl
) const {
1158 ENCODE_START(1, 1, bl
);
1160 encode(max_entries
, bl
);
1164 void decode(bufferlist::const_iterator
& bl
) {
1165 DECODE_START(1, bl
);
1167 decode(max_entries
, bl
);
1172 WRITE_CLASS_ENCODER(cls_rgw_lc_list_entries_op
)
1174 struct cls_rgw_lc_list_entries_ret
{
1175 map
<string
, int> entries
;
1176 bool is_truncated
{false};
1178 cls_rgw_lc_list_entries_ret() {}
1180 void encode(bufferlist
& bl
) const {
1181 ENCODE_START(2, 1, bl
);
1182 encode(entries
, bl
);
1183 encode(is_truncated
, bl
);
1187 void decode(bufferlist::const_iterator
& bl
) {
1188 DECODE_START(2, bl
);
1189 decode(entries
, bl
);
1190 if (struct_v
>= 2) {
1191 decode(is_truncated
, bl
);
1197 WRITE_CLASS_ENCODER(cls_rgw_lc_list_entries_ret
)
1199 struct cls_rgw_reshard_add_op
{
1200 cls_rgw_reshard_entry entry
;
1202 cls_rgw_reshard_add_op() {}
1204 void encode(bufferlist
& bl
) const {
1205 ENCODE_START(1, 1, bl
);
1210 void decode(bufferlist::const_iterator
& bl
) {
1211 DECODE_START(1, bl
);
1215 static void generate_test_instances(list
<cls_rgw_reshard_add_op
*>& o
);
1216 void dump(Formatter
*f
) const;
1218 WRITE_CLASS_ENCODER(cls_rgw_reshard_add_op
)
1220 struct cls_rgw_reshard_list_op
{
1224 cls_rgw_reshard_list_op() {}
1226 void encode(bufferlist
& bl
) const {
1227 ENCODE_START(1, 1, bl
);
1233 void decode(bufferlist::const_iterator
& bl
) {
1234 DECODE_START(1, bl
);
1239 static void generate_test_instances(list
<cls_rgw_reshard_list_op
*>& o
);
1240 void dump(Formatter
*f
) const;
1242 WRITE_CLASS_ENCODER(cls_rgw_reshard_list_op
)
1245 struct cls_rgw_reshard_list_ret
{
1246 list
<cls_rgw_reshard_entry
> entries
;
1247 bool is_truncated
{false};
1249 cls_rgw_reshard_list_ret() {}
1251 void encode(bufferlist
& bl
) const {
1252 ENCODE_START(1, 1, bl
);
1253 encode(entries
, bl
);
1254 encode(is_truncated
, bl
);
1258 void decode(bufferlist::const_iterator
& bl
) {
1259 DECODE_START(1, bl
);
1260 decode(entries
, bl
);
1261 decode(is_truncated
, bl
);
1264 static void generate_test_instances(list
<cls_rgw_reshard_list_ret
*>& o
);
1265 void dump(Formatter
*f
) const;
1267 WRITE_CLASS_ENCODER(cls_rgw_reshard_list_ret
)
1269 struct cls_rgw_reshard_get_op
{
1270 cls_rgw_reshard_entry entry
;
1272 cls_rgw_reshard_get_op() {}
1274 void encode(bufferlist
& bl
) const {
1275 ENCODE_START(1, 1, bl
);
1280 void decode(bufferlist::const_iterator
& bl
) {
1281 DECODE_START(1, bl
);
1285 static void generate_test_instances(list
<cls_rgw_reshard_get_op
*>& o
);
1286 void dump(Formatter
*f
) const;
1288 WRITE_CLASS_ENCODER(cls_rgw_reshard_get_op
)
1290 struct cls_rgw_reshard_get_ret
{
1291 cls_rgw_reshard_entry entry
;
1293 cls_rgw_reshard_get_ret() {}
1295 void encode(bufferlist
& bl
) const {
1296 ENCODE_START(1, 1, bl
);
1301 void decode(bufferlist::const_iterator
& bl
) {
1302 DECODE_START(1, bl
);
1306 static void generate_test_instances(list
<cls_rgw_reshard_get_ret
*>& o
);
1307 void dump(Formatter
*f
) const;
1309 WRITE_CLASS_ENCODER(cls_rgw_reshard_get_ret
)
1311 struct cls_rgw_reshard_remove_op
{
1316 cls_rgw_reshard_remove_op() {}
1318 void encode(bufferlist
& bl
) const {
1319 ENCODE_START(1, 1, bl
);
1321 encode(bucket_name
, bl
);
1322 encode(bucket_id
, bl
);
1326 void decode(bufferlist::const_iterator
& bl
) {
1327 DECODE_START(1, bl
);
1329 decode(bucket_name
, bl
);
1330 decode(bucket_id
, bl
);
1333 static void generate_test_instances(list
<cls_rgw_reshard_remove_op
*>& o
);
1334 void dump(Formatter
*f
) const;
1336 WRITE_CLASS_ENCODER(cls_rgw_reshard_remove_op
)
1338 struct cls_rgw_set_bucket_resharding_op
{
1339 cls_rgw_bucket_instance_entry entry
;
1341 void encode(bufferlist
& bl
) const {
1342 ENCODE_START(1, 1, bl
);
1347 void decode(bufferlist::const_iterator
& bl
) {
1348 DECODE_START(1, bl
);
1352 static void generate_test_instances(list
<cls_rgw_set_bucket_resharding_op
*>& o
);
1353 void dump(Formatter
*f
) const;
1355 WRITE_CLASS_ENCODER(cls_rgw_set_bucket_resharding_op
)
1357 struct cls_rgw_clear_bucket_resharding_op
{
1358 void encode(bufferlist
& bl
) const {
1359 ENCODE_START(1, 1, bl
);
1363 void decode(bufferlist::const_iterator
& bl
) {
1364 DECODE_START(1, bl
);
1367 static void generate_test_instances(list
<cls_rgw_clear_bucket_resharding_op
*>& o
);
1368 void dump(Formatter
*f
) const;
1370 WRITE_CLASS_ENCODER(cls_rgw_clear_bucket_resharding_op
)
1372 struct cls_rgw_guard_bucket_resharding_op
{
1375 void encode(bufferlist
& bl
) const {
1376 ENCODE_START(1, 1, bl
);
1377 encode(ret_err
, bl
);
1381 void decode(bufferlist::const_iterator
& bl
) {
1382 DECODE_START(1, bl
);
1383 decode(ret_err
, bl
);
1387 static void generate_test_instances(list
<cls_rgw_guard_bucket_resharding_op
*>& o
);
1388 void dump(Formatter
*f
) const;
1390 WRITE_CLASS_ENCODER(cls_rgw_guard_bucket_resharding_op
)
1392 struct cls_rgw_get_bucket_resharding_op
{
1394 void encode(bufferlist
& bl
) const {
1395 ENCODE_START(1, 1, bl
);
1399 void decode(bufferlist::const_iterator
& bl
) {
1400 DECODE_START(1, bl
);
1404 static void generate_test_instances(list
<cls_rgw_get_bucket_resharding_op
*>& o
);
1405 void dump(Formatter
*f
) const;
1407 WRITE_CLASS_ENCODER(cls_rgw_get_bucket_resharding_op
)
1409 struct cls_rgw_get_bucket_resharding_ret
{
1410 cls_rgw_bucket_instance_entry new_instance
;
1412 void encode(bufferlist
& bl
) const {
1413 ENCODE_START(1, 1, bl
);
1414 encode(new_instance
, bl
);
1418 void decode(bufferlist::const_iterator
& bl
) {
1419 DECODE_START(1, bl
);
1420 decode(new_instance
, bl
);
1424 static void generate_test_instances(list
<cls_rgw_get_bucket_resharding_ret
*>& o
);
1425 void dump(Formatter
*f
) const;
1427 WRITE_CLASS_ENCODER(cls_rgw_get_bucket_resharding_ret
)
1429 #endif /* CEPH_CLS_RGW_OPS_H */