mirror of
https://github.com/ceph/ceph
synced 2024-12-18 01:16:55 +00:00
rgw: add data_extra pool to bucket
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
This commit is contained in:
parent
afcf016a8a
commit
3677076bb4
@ -21,6 +21,7 @@ void cls_user_bucket::dump(Formatter *f) const
|
|||||||
{
|
{
|
||||||
encode_json("name", name, f);
|
encode_json("name", name, f);
|
||||||
encode_json("data_pool", data_pool,f);
|
encode_json("data_pool", data_pool,f);
|
||||||
|
encode_json("data_extra_pool", data_extra_pool,f);
|
||||||
encode_json("index_pool", index_pool,f);
|
encode_json("index_pool", index_pool,f);
|
||||||
encode_json("marker", marker,f);
|
encode_json("marker", marker,f);
|
||||||
encode_json("bucket_id", bucket_id,f);
|
encode_json("bucket_id", bucket_id,f);
|
||||||
|
@ -17,18 +17,20 @@ struct cls_user_bucket {
|
|||||||
std::string index_pool;
|
std::string index_pool;
|
||||||
std::string marker;
|
std::string marker;
|
||||||
std::string bucket_id;
|
std::string bucket_id;
|
||||||
|
std::string data_extra_pool;
|
||||||
|
|
||||||
void encode(bufferlist& bl) const {
|
void encode(bufferlist& bl) const {
|
||||||
ENCODE_START(6, 3, bl);
|
ENCODE_START(7, 3, bl);
|
||||||
::encode(name, bl);
|
::encode(name, bl);
|
||||||
::encode(data_pool, bl);
|
::encode(data_pool, bl);
|
||||||
::encode(marker, bl);
|
::encode(marker, bl);
|
||||||
::encode(bucket_id, bl);
|
::encode(bucket_id, bl);
|
||||||
::encode(index_pool, bl);
|
::encode(index_pool, bl);
|
||||||
|
::encode(data_extra_pool, bl);
|
||||||
ENCODE_FINISH(bl);
|
ENCODE_FINISH(bl);
|
||||||
}
|
}
|
||||||
void decode(bufferlist::iterator& bl) {
|
void decode(bufferlist::iterator& bl) {
|
||||||
DECODE_START_LEGACY_COMPAT_LEN(6, 3, 3, bl);
|
DECODE_START_LEGACY_COMPAT_LEN(7, 3, 3, bl);
|
||||||
::decode(name, bl);
|
::decode(name, bl);
|
||||||
::decode(data_pool, bl);
|
::decode(data_pool, bl);
|
||||||
if (struct_v >= 2) {
|
if (struct_v >= 2) {
|
||||||
@ -48,6 +50,9 @@ struct cls_user_bucket {
|
|||||||
} else {
|
} else {
|
||||||
index_pool = data_pool;
|
index_pool = data_pool;
|
||||||
}
|
}
|
||||||
|
if (struct_v >= 7) {
|
||||||
|
::decode(data_extra_pool, bl);
|
||||||
|
}
|
||||||
DECODE_FINISH(bl);
|
DECODE_FINISH(bl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -565,6 +565,7 @@ WRITE_CLASS_ENCODER(RGWUserInfo)
|
|||||||
struct rgw_bucket {
|
struct rgw_bucket {
|
||||||
std::string name;
|
std::string name;
|
||||||
std::string data_pool;
|
std::string data_pool;
|
||||||
|
std::string data_extra_pool; /* if not set, then we should use data_pool instead */
|
||||||
std::string index_pool;
|
std::string index_pool;
|
||||||
std::string marker;
|
std::string marker;
|
||||||
std::string bucket_id;
|
std::string bucket_id;
|
||||||
@ -577,6 +578,7 @@ struct rgw_bucket {
|
|||||||
rgw_bucket(const cls_user_bucket& b) {
|
rgw_bucket(const cls_user_bucket& b) {
|
||||||
name = b.name;
|
name = b.name;
|
||||||
data_pool = b.data_pool;
|
data_pool = b.data_pool;
|
||||||
|
data_extra_pool = b.data_extra_pool;
|
||||||
index_pool = b.index_pool;
|
index_pool = b.index_pool;
|
||||||
marker = b.marker;
|
marker = b.marker;
|
||||||
bucket_id = b.bucket_id;
|
bucket_id = b.bucket_id;
|
||||||
@ -592,30 +594,24 @@ struct rgw_bucket {
|
|||||||
void convert(cls_user_bucket *b) {
|
void convert(cls_user_bucket *b) {
|
||||||
b->name = name;
|
b->name = name;
|
||||||
b->data_pool = data_pool;
|
b->data_pool = data_pool;
|
||||||
|
b->data_extra_pool = data_extra_pool;
|
||||||
b->index_pool = index_pool;
|
b->index_pool = index_pool;
|
||||||
b->marker = marker;
|
b->marker = marker;
|
||||||
b->bucket_id = bucket_id;
|
b->bucket_id = bucket_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void clear() {
|
|
||||||
name = "";
|
|
||||||
data_pool = "";
|
|
||||||
index_pool = "";
|
|
||||||
marker = "";
|
|
||||||
bucket_id = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
void encode(bufferlist& bl) const {
|
void encode(bufferlist& bl) const {
|
||||||
ENCODE_START(6, 3, bl);
|
ENCODE_START(7, 3, bl);
|
||||||
::encode(name, bl);
|
::encode(name, bl);
|
||||||
::encode(data_pool, bl);
|
::encode(data_pool, bl);
|
||||||
::encode(marker, bl);
|
::encode(marker, bl);
|
||||||
::encode(bucket_id, bl);
|
::encode(bucket_id, bl);
|
||||||
::encode(index_pool, bl);
|
::encode(index_pool, bl);
|
||||||
|
::encode(data_extra_pool, bl);
|
||||||
ENCODE_FINISH(bl);
|
ENCODE_FINISH(bl);
|
||||||
}
|
}
|
||||||
void decode(bufferlist::iterator& bl) {
|
void decode(bufferlist::iterator& bl) {
|
||||||
DECODE_START_LEGACY_COMPAT_LEN(6, 3, 3, bl);
|
DECODE_START_LEGACY_COMPAT_LEN(7, 3, 3, bl);
|
||||||
::decode(name, bl);
|
::decode(name, bl);
|
||||||
::decode(data_pool, bl);
|
::decode(data_pool, bl);
|
||||||
if (struct_v >= 2) {
|
if (struct_v >= 2) {
|
||||||
@ -635,8 +631,19 @@ struct rgw_bucket {
|
|||||||
} else {
|
} else {
|
||||||
index_pool = data_pool;
|
index_pool = data_pool;
|
||||||
}
|
}
|
||||||
|
if (struct_v >= 7) {
|
||||||
|
::decode(data_extra_pool, bl);
|
||||||
|
}
|
||||||
DECODE_FINISH(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 dump(Formatter *f) const;
|
||||||
void decode_json(JSONObj *obj);
|
void decode_json(JSONObj *obj);
|
||||||
static void generate_test_instances(list<rgw_bucket*>& o);
|
static void generate_test_instances(list<rgw_bucket*>& o);
|
||||||
@ -651,8 +658,19 @@ inline ostream& operator<<(ostream& out, const rgw_bucket &b) {
|
|||||||
out << b.name;
|
out << b.name;
|
||||||
if (b.name.compare(b.data_pool)) {
|
if (b.name.compare(b.data_pool)) {
|
||||||
out << "(@";
|
out << "(@";
|
||||||
|
string s;
|
||||||
if (!b.index_pool.empty() && b.data_pool.compare(b.index_pool))
|
if (!b.index_pool.empty() && b.data_pool.compare(b.index_pool))
|
||||||
out << "{i=" << b.index_pool << "}";
|
s = "i=" + b.index_pool;
|
||||||
|
if (!b.data_extra_pool.empty() && b.data_pool.compare(b.data_extra_pool)) {
|
||||||
|
if (!s.empty()) {
|
||||||
|
s += ",";
|
||||||
|
}
|
||||||
|
s += "e=" + b.data_extra_pool;
|
||||||
|
}
|
||||||
|
if (!s.empty()) {
|
||||||
|
out << "{" << s << "}";
|
||||||
|
}
|
||||||
|
|
||||||
out << b.data_pool << "[" << b.marker << "])";
|
out << b.data_pool << "[" << b.marker << "])";
|
||||||
}
|
}
|
||||||
return out;
|
return out;
|
||||||
|
@ -487,6 +487,7 @@ void rgw_bucket::dump(Formatter *f) const
|
|||||||
{
|
{
|
||||||
encode_json("name", name, f);
|
encode_json("name", name, f);
|
||||||
encode_json("pool", data_pool, f);
|
encode_json("pool", data_pool, f);
|
||||||
|
encode_json("data_extra_pool", data_extra_pool, f);
|
||||||
encode_json("index_pool", index_pool, f);
|
encode_json("index_pool", index_pool, f);
|
||||||
encode_json("marker", marker, f);
|
encode_json("marker", marker, f);
|
||||||
encode_json("bucket_id", bucket_id, f);
|
encode_json("bucket_id", bucket_id, f);
|
||||||
@ -495,6 +496,7 @@ void rgw_bucket::dump(Formatter *f) const
|
|||||||
void rgw_bucket::decode_json(JSONObj *obj) {
|
void rgw_bucket::decode_json(JSONObj *obj) {
|
||||||
JSONDecoder::decode_json("name", name, obj);
|
JSONDecoder::decode_json("name", name, obj);
|
||||||
JSONDecoder::decode_json("pool", data_pool, obj);
|
JSONDecoder::decode_json("pool", data_pool, obj);
|
||||||
|
JSONDecoder::decode_json("data_extra_pool", data_extra_pool, obj);
|
||||||
JSONDecoder::decode_json("index_pool", index_pool, obj);
|
JSONDecoder::decode_json("index_pool", index_pool, obj);
|
||||||
JSONDecoder::decode_json("marker", marker, obj);
|
JSONDecoder::decode_json("marker", marker, obj);
|
||||||
JSONDecoder::decode_json("bucket_id", bucket_id, obj);
|
JSONDecoder::decode_json("bucket_id", bucket_id, obj);
|
||||||
|
Loading…
Reference in New Issue
Block a user