summaryrefslogtreecommitdiff
path: root/src/rgw/rgw_json_enc.cc
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@inktank.com>2013-02-22 16:19:37 -0800
committerYehuda Sadeh <yehuda@inktank.com>2013-02-22 16:19:37 -0800
commit8c5766584ee1a21bac802d77b5527c650a459484 (patch)
tree1c08973c3ae95029b5cdccd054715a4581e58202 /src/rgw/rgw_json_enc.cc
parent566674f39820c756b11fd7599f6b2f22f97047a2 (diff)
downloadceph-wip-rgw-zone.tar.gz
rgw: fix json decoding of rgw_bucketwip-rgw-zone
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Diffstat (limited to 'src/rgw/rgw_json_enc.cc')
-rw-r--r--src/rgw/rgw_json_enc.cc30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/rgw/rgw_json_enc.cc b/src/rgw/rgw_json_enc.cc
index aa16da1e39a..d01bfedef2f 100644
--- a/src/rgw/rgw_json_enc.cc
+++ b/src/rgw/rgw_json_enc.cc
@@ -436,18 +436,28 @@ void RGWZoneParams::dump(Formatter *f) const
encode_json("user_uid_pool ", user_uid_pool.pool, f);
}
+static void decode_json(const char *field, rgw_bucket& bucket, JSONObj *obj)
+{
+ string pool;
+ JSONDecoder::decode_json(field, pool, obj);
+ if (pool[0] != '.') {
+ pool = string(".") + pool;
+ }
+ bucket = rgw_bucket(pool.c_str());
+}
+
void RGWZoneParams::decode_json(JSONObj *obj)
{
- JSONDecoder::decode_json("domain_root", domain_root.pool, obj);
- JSONDecoder::decode_json("control_pool", control_pool.pool, obj);
- JSONDecoder::decode_json("gc_pool", gc_pool.pool, obj);
- JSONDecoder::decode_json("log_pool", log_pool.pool, obj);
- JSONDecoder::decode_json("intent_log_pool", intent_log_pool.pool, obj);
- JSONDecoder::decode_json("usage_log_pool", usage_log_pool.pool, obj);
- JSONDecoder::decode_json("user_keys_pool", user_keys_pool.pool, obj);
- JSONDecoder::decode_json("user_email_pool", user_email_pool.pool, obj);
- JSONDecoder::decode_json("user_swift_pool", user_swift_pool.pool, obj);
- JSONDecoder::decode_json("user_uid_pool ", user_uid_pool.pool, obj);
+ ::decode_json("domain_root", domain_root, obj);
+ ::decode_json("control_pool", control_pool, obj);
+ ::decode_json("gc_pool", gc_pool, obj);
+ ::decode_json("log_pool", log_pool, obj);
+ ::decode_json("intent_log_pool", intent_log_pool, obj);
+ ::decode_json("usage_log_pool", usage_log_pool, obj);
+ ::decode_json("user_keys_pool", user_keys_pool, obj);
+ ::decode_json("user_email_pool", user_email_pool, obj);
+ ::decode_json("user_swift_pool", user_swift_pool, obj);
+ ::decode_json("user_uid_pool ", user_uid_pool, obj);
}
void RGWZone::dump(Formatter *f) const