CLS_LOG(20, "storing entry for key=%s size=%lld count=%lld",
key.c_str(), (long long)update_entry.size, (long long)update_entry.count);
- // Update bucket's placement rule info only when linking bucket, not on
- // usage stats change. */
- if (op.add) {
- entry.placement_rule = update_entry.placement_rule;
- }
-
// sync entry stats when not an op.add, as when the case is op.add if its a
// new entry we already have copied update_entry earlier, OTOH, for an existing entry
// we end up clobbering the existing stats for the bucket
encode_json("creation_time", utime_t(creation_time), f);
encode_json("count", count, f);
encode_json("user_stats_sync", user_stats_sync, f);
- encode_json("placement_rule", placement_rule, f);
}
void cls_user_gen_test_bucket_entry(cls_user_bucket_entry *entry, int i)
uint64_t count;
bool user_stats_sync;
- /* The placement_rule is necessary to calculate per-storage-policy statics
- * of the Swift API. Although the info available in RGWBucketInfo, we need
- * to duplicate it here to not affect the performance of buckets listing. */
- std::string placement_rule;
-
cls_user_bucket_entry() : size(0), size_rounded(0), count(0), user_stats_sync(false) {}
void encode(bufferlist& bl) const {
- ENCODE_START(8, 5, bl);
+ ENCODE_START(9, 5, bl);
uint64_t s = size;
__u32 mt = ceph::real_clock::to_time_t(creation_time);
string empty_str; // originally had the bucket name here, but we encode bucket later
::encode(s, bl);
::encode(user_stats_sync, bl);
::encode(creation_time, bl);
- ::encode(placement_rule, bl);
+ //::encode(placement_rule, bl); removed in v9
ENCODE_FINISH(bl);
}
void decode(bufferlist::iterator& bl) {
- DECODE_START_LEGACY_COMPAT_LEN(6, 5, 5, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(9, 5, 5, bl);
__u32 mt;
uint64_t s;
string empty_str; // backward compatibility
::decode(user_stats_sync, bl);
if (struct_v >= 7)
::decode(creation_time, bl);
- if (struct_v >= 8)
+ if (struct_v == 8) { // added in v8, removed in v9
+ std::string placement_rule;
::decode(placement_rule, bl);
+ }
DECODE_FINISH(bl);
}
void dump(Formatter *f) const;