if (!decode_attr(cct, attrs, BUCKET_SYNC_ATTR_PREFIX "state", &state)) {
decode_attr(cct, attrs, "state", &state);
}
- if (!decode_attr(cct, attrs, BUCKET_SYNC_ATTR_PREFIX "full_marker", &full_marker)) {
- decode_attr(cct, attrs, "full_marker", &full_marker);
- }
if (!decode_attr(cct, attrs, BUCKET_SYNC_ATTR_PREFIX "inc_marker", &inc_marker)) {
decode_attr(cct, attrs, "inc_marker", &inc_marker);
}
void rgw_bucket_shard_sync_info::encode_all_attrs(map<string, bufferlist>& attrs)
{
encode_state_attr(attrs);
- full_marker.encode_attr(attrs);
inc_marker.encode_attr(attrs);
}
};
uint16_t state;
- rgw_bucket_shard_full_sync_marker full_marker;
rgw_bucket_shard_inc_sync_marker inc_marker;
void decode_from_attrs(CephContext *cct, map<string, bufferlist>& attrs);
void encode_state_attr(map<string, bufferlist>& attrs);
void encode(bufferlist& bl) const {
- ENCODE_START(1, 1, bl);
+ ENCODE_START(2, 1, bl);
encode(state, bl);
- encode(full_marker, bl);
encode(inc_marker, bl);
ENCODE_FINISH(bl);
}
void decode(bufferlist::const_iterator& bl) {
- DECODE_START(1, bl);
+ DECODE_START(2, bl);
decode(state, bl);
- decode(full_marker, bl);
+ if (struct_v <= 1) {
+ rgw_bucket_shard_full_sync_marker full_marker;
+ decode(full_marker, bl);
+ }
decode(inc_marker, bl);
DECODE_FINISH(bl);
}
} else {
state = StateInit;
}
- JSONDecoder::decode_json("full_marker", full_marker, obj);
JSONDecoder::decode_json("inc_marker", inc_marker, obj);
}
break;
}
encode_json("status", s, f);
- encode_json("full_marker", full_marker, f);
encode_json("inc_marker", inc_marker, f);
}