uint32_t max_buckets;
RGWUserCaps caps;
__u8 system;
+ string default_placement;
+ list<string> placement_tags;
RGWUserInfo() : auid(0), suspended(0), max_buckets(RGW_DEFAULT_MAX_BUCKETS) {}
void encode(bufferlist& bl) const {
- ENCODE_START(12, 9, bl);
+ ENCODE_START(13, 9, bl);
::encode(auid, bl);
string access_key;
string secret_key;
::encode(max_buckets, bl);
::encode(caps, bl);
::encode(system, bl);
+ ::encode(default_placement, bl);
+ ::encode(placement_tags, bl);
ENCODE_FINISH(bl);
}
void decode(bufferlist::iterator& bl) {
if (struct_v >= 12) {
::decode(system, bl);
}
+ if (struct_v >= 13) {
+ ::decode(default_placement, bl);
+ ::decode(placement_tags, bl); /* tags of allowed placement rules */
+ }
DECODE_FINISH(bl);
}
void dump(Formatter *f) const;
if (system) { /* no need to show it for every user */
encode_json("system", (bool)system, f);
}
+ encode_json("default_placement", default_placement, f);
+ encode_json("placement_tags", placement_tags, f);
}
bool sys;
JSONDecoder::decode_json("system", sys, obj);
system = (__u8)sys;
+ JSONDecoder::decode_json("default_placement", default_placement, obj);
+ JSONDecoder::decode_json("placement_tags", placement_tags, obj);
}
void rgw_bucket::dump(Formatter *f) const
string name;
list<string> tags;
+ bool tag_exists(const string& tag) {
+ for (list<string>::iterator iter = tags.begin(); iter != tags.end(); ++iter) {
+ if (tag == *iter) {
+ return true;
+ }
+ }
+ return false;
+ }
+
void encode(bufferlist& bl) const {
ENCODE_START(1, 1, bl);
::encode(name, bl);