{
encode_json("index_pool", index_pool, f);
encode_json("data_pool", data_pool, f);
+ encode_json("data_extra_pool", data_extra_pool, f);
}
void RGWZonePlacementInfo::decode_json(JSONObj *obj)
{
JSONDecoder::decode_json("index_pool", index_pool, obj);
JSONDecoder::decode_json("data_pool", data_pool, obj);
+ JSONDecoder::decode_json("data_extra_pool", data_extra_pool, obj);
}
void RGWZoneParams::decode_json(JSONObj *obj)
RGWZonePlacementInfo& placement_info = piter->second;
bucket.data_pool = placement_info.data_pool;
+ bucket.data_extra_pool = placement_info.data_extra_pool;
bucket.index_pool = placement_info.index_pool;
return 0;
struct RGWZonePlacementInfo {
string index_pool;
string data_pool;
+ string data_extra_pool; /* if not set we should use data_pool */
void encode(bufferlist& bl) const {
- ENCODE_START(3, 1, bl);
+ ENCODE_START(4, 1, bl);
::encode(index_pool, bl);
::encode(data_pool, bl);
+ ::encode(data_extra_pool, bl);
ENCODE_FINISH(bl);
}
void decode(bufferlist::iterator& bl) {
- DECODE_START(1, bl);
+ DECODE_START(4, bl);
::decode(index_pool, bl);
::decode(data_pool, bl);
+ if (struct_v >= 4) {
+ ::decode(data_extra_pool, bl);
+ }
DECODE_FINISH(bl);
}
+ const string& get_data_extra_pool() {
+ if (data_extra_pool.empty()) {
+ return data_pool;
+ }
+ return data_extra_pool;
+ }
void dump(Formatter *f) const;
void decode_json(JSONObj *obj);
};