diff options
author | Yehuda Sadeh <yehuda@inktank.com> | 2013-02-22 16:19:37 -0800 |
---|---|---|
committer | Yehuda Sadeh <yehuda@inktank.com> | 2013-02-22 16:19:37 -0800 |
commit | 8c5766584ee1a21bac802d77b5527c650a459484 (patch) | |
tree | 1c08973c3ae95029b5cdccd054715a4581e58202 /src/rgw/rgw_json_enc.cc | |
parent | 566674f39820c756b11fd7599f6b2f22f97047a2 (diff) | |
download | ceph-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.cc | 30 |
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 |